Thursday, 26 June 2014

No.1 Training for ISTQB Advanced Test Manager 2014

If you are considering training for the ISTQB Advanced Test Manager certification, fortunately there are several options open to you, although one training method stands-out way more than the others.


Firstly, you can go down the traditional route of classroom-led training. This is rapidly becoming outdated due to the cost of attending the training, the time missed from work, and also not being able to ask questions after the training has finished. Also, everybody learns in a different way, and so cramming information into a classroom-led course will certainly not suit everyone.


Secondly, a student can study for the ISTQB Advanced Test Manager themselves on their own. This can be achieved by buying a book and then taking the exam at an examination center. While this is probably the most cheapest training method, it is definitely not the most effective. As everyone learns in a different way, simply reading text may not be the best method for the individual. Reading text should only be one part of the training, a student needs a variety of training methods to ensure the material is absorbed correctly. Also, the student with this method is totally isolated and does not have any support.


The last training method for the ISTQB Advanced Test Manager we are going to talk about is distance-learning. This is now regarding as the No.1 training method. Firstly, it allows the student to study at their own pace, and also wherever they choose, at work, at home, traveling etc. Secondly, the cost of distance-learning (or e-learning) is very low, especially when compared to a classroom-led course, some training providers will provide material for all three ISTQB Advanced courses for the price of one. With this training method, you can also be assured that the training content is always up-to-date with the latest examination syllabus, as any good ISTQB Advanced Training Provider will keep the course bang up to date to keep it in-line with any ISTQB Advanced syllabus changes. Also, a good e-learning course will provide a variety of training methods, such as text, video, workshops, exercises and lots of practice exam questions. Lastly, A good ISTQB Advanced Test Manager e-learning Course will provide you with tutor support, so you can get the answers you need throughout your training and ensure you pass the exam first time!


 



No.1 Training for ISTQB Advanced Test Manager 2014

What is Functional Testing?

Functional Testing is probably the most widely used form of software testing in the Information Technology world today. The vast majority of software producing companies have tight budgets, tight deadlines and lots of competition. The main aim of this type of software testing is to answer the following question:


Does the software do what it was designed to do?


Software developments are nearly always driven by business requirements, as they form the reason why the software is being developed in the first place. Business requirements can be documented in several ways, either grouped under the one single banner of business requirements or separated into sections such as user requirements, functional requirements and system requirements etc. Functional Testing is typically planned to satisfy business requirements as a group or individually. Some requirements are not testable, which does not necessarily mean that there was a mistake, but simply means another form of testing will have to be used to satisfy the requirement. Functional requirements should always be testable however. It is common for company departments and project stakeholders alike to request a list of requirements and their associated test case results. This is why the importance of this type of software testing is ranked highly in the development life-cycle.


Requirements are created at the beginning of the software development life-cycle, so Functional Testing can be a consideration very early on. Questions like “How am I going to test this?” are valid at any stage, and so the earlier on it can be answered the better. Requirement reviews can be said to include Functional Testing as both an input and an output, such is the importance of this type of testing.


Functional Testing is based on the external behavior of the software under test, otherwise known as ‘black-box testing’, which means that no knowledge of the inner design of the code or logic is required. An example of a form of this type of software testing is ‘Security Testing’, which tests the functions relating to threats from malicious persons and viruses etc. Interoperability testing can also be considered to be a form of Functional Testing as the capability of the software product to interact with other specified components or systems is being tested.




What is Functional Testing?

Tuesday, 24 June 2014

The Difference Between Alpha and Beta Testing

Before any software product can be released it must be tested. Typically a formal test strategy is planned and executed on the software before it can be considered for release. Often after the formal phases of testing have been completed, additional testing is performed called Alpha and Beta testing.


Alpha testing is done before the software is made available to the general public. Typically, the developers will perform the Alpha testing using white box testing techniques. Subsequent black box and grey box techniques will be carried out afterwards. The focus is on simulating real users by using these techniques and carrying out tasks and operations that a typical user might perform. Normally, the actual Alpha testing itself will be carried out in a lab type environment and not in the usual workplaces. Once these techniques have been satisfactorily completed, the Alpha testing is considered to be complete.


The next phase of testing is known as Beta testing. Unlike Alpha testing, people outside of the company are included to perform the testing. As the aim is to perform a sanity check before the products release, there may be defects found during this stage, so the distribution of the software is limited to a selection of users outside of the company. Typically, outsourced testing companies are used as their feedback is independent and from a different perspective than that of the software development company employees. The feedback can be used to fix defects that were missed, assist in preparing support teams for expected issues or in some cases even enforce last minute changes to functionality.


In some cases, the Beta version of software will be made available to the general public. This can give vital ‘real-world’ information for software/systems that rely on acceptable performance and load to function correctly.


The types of techniques used during a public Beta test are typically restricted to Black box techniques. This is due to the fact that the general public does not have inside knowledge of the software code under test, and secondly the aim of the Beta test is often to gain a sanity check, and also to retrieve future customer feedback from how the product will be used in the real world.


Various sectors of the public are often eager to take part in Beta testing, as it can give them the opportunity to see and use products before their public release. Many Software Testing Companies use this phase of testing to assist with marketing their product. For example, Beta versions of a software application get people using the product and talking about it which (if the application is any good) builds hype and pre-orders before its public release.



The Difference Between Alpha and Beta Testing

Monday, 23 June 2014

Do we really need software testing?

For any company developing software, at some point pressure to reach the deadline in order to release the product on time will come into play. Additional pressure from project stakeholders, such as ‘Marketing’ will not want to delay the release date as significant effort and money may have already been spent on an expected release date.


Quite often, planned time to test the software (e.g. ascertain its quality – QA) will become reduced so as not to impact the release date. From a pure business perspective, this can be seen as a positive step as the product is reaching the intended customers on time. Careful consideration should be taken though as to the overall impact of a customer finding a ‘bug’ in the released product. Maybe the bug is buried deep within a very obscure functional area of the software product, and as the impact only results in a typo within a seldom-used report, the level of impact is very low. In this case, the effect on the business for this software company would probably be insignificant. But what if the bug resulted in the program crashing and losing data? Maybe this software product is used within an air traffic control system? As you can imagine, the impact of this type of bug could be incredibly high and may result in loss of life and destroying the entire company responsible. So basically, the level of risk of a bug being found (likelihood) and what is the effect of the bug (impact) prove to be critical in how much software testing is performed prior to a products release.


Due to the complexity of modern software it is impossible to ensure that software is bug-free…….it really is!


Imagine a simple form on a software application that was designed to accept one of ten specific values, in order to test this completely, you would need to create a test case for each and every permutation of the entries that could be entered by the user, for example:


10(inputs) to the 10(values)th power


10 to the 10th power


Result = 10,000,000,000 test cases


So, if you were the tester hired to perform the testing, and it only took you one second to perform each test case, it would take around 317 years to complete. Therefore, the test planning should take into consideration what is actually ‘achievable.’


Software testing (synonymous with the term Quality Assurance) itself can have many different purposes (quality assurance, validation, performance etc). This is a key decision when planning the QA /software testing, as not testing enough or testing in the wrong areas will inevitably result in missed bugs. The aim should be first ascertaining ‘why’ we are going to test and not simply ‘what’ we are going to test.


Software testing and or Quality Assurance is still a kind of art, mainly due to a limited understanding of the complexities of modern software. Recent years has seen the development of software testing certification such as ISTQB.  This is good news for the software industry as a whole, as the more experienced a software tester is then the level of quality of the software they are testing can only increase.


Software testing cannot ensure software is bug-free, but it CAN increase software quality.


If we aim for perfection, we may just achieve excellence!




Do we really need software testing?

Tuesday, 17 June 2014

Web Testing - In Simple Words

A couple weeks ago I have received a new assignment – to write an article about Web testing. As a new tester, I don’t have years and years of experience behind me, but I do have some experience plus, hours and hours of researching and reading.  I’ve gone through some articles some of which were hard to understand to a beginner tester, or (even harder) for someone not familiar with software testing at all. So, what I would like to do is to write about web testing in simple and easy language.


If you google “definition of web testing”, one of the first links will lead you to Wikipedia, where you will find out that “Web testing is the name given to software testing that focuses on web applications. Complete testing of a web-based system before going live can help address issues before the system is revealed to the public. Issues such as the security of the web application, the basic functionality of the site, its accessibility to handicapped users and fully able users, as well as readiness for expected traffic and number of users and the ability to survive a massive spike in user traffic, both of which are related to load testing.” (http://en.wikipedia.org/wiki/Web_testing)

In different words, all of us would prefer to use well designed, easy to access and manage, fast and secure web sites. It is very frustrating to wait for a new page to open, or to find out that link, what was supposed to bring us to a larger picture leads to an irrelevant information. And most of all, we would want to be sure that all our personal and (more important) financial information are secure. Well, here comes web testing! The main purpose of software testers performing web testing is to make sure that a good quality product (in our case web site) joins the World Wide Web.


There a few methods or techniques that are used by testers to make sure that the web site works as expected. I would like to talk about them more specifically.


Let’s start with Functionality testing, the technique that focuses on testing functionality of the web application, and all of the components. You want to make sure that the application behaves as expected, and in order to do that you have to remember a few things:



  • Links. They are used to bring users from one page to another. It is important to ensure that all the links on the web page exist, and bring you where they said they will.

  • Forms. The purpose of forms is to collect information from users and store it into the database. So basically, when testing a form you need to check that all the fields are valid, check default values and mandatory fields (there should be an error message if they are not populated), negative inputs, options to create, modify, delete or view the forms.

  • Cookies. The information gathered from a form you filled in in order to get an access to a web site is stored on your web browser as a cookie. When you return to the web site, it creates a customized page using cookie. So you should spend some time making sure that they work properly. Some of the actions can include enabling and disabling cookies from your browser, checking the application after corrupting or removing cookies.

  • Database. A structures set of data stores on the server called a database. The main qualities of a database should be reliability, consistency and security. When testing a database you want to ensure that queries are executed without errors, check for data integrity while editing, deleting  or modifying forms or doing any other database related activities.


Beside those things, it would be a good idea to get familiar with specific functional requirements for your application, and verify that each function is included and works as it is described.


The next thing I’d like to talk about is Usability testing, which evaluates how easy the application is to use. There are two parts testers should focus on – site map or navigation bar checking and content checking.



  • Site map or navigation bar contains different buttons, boxes, links that help users to navigate through the application. You want to ensure that the web page navigation is easy to use, all the controls are present and functional, the menu is accessible and consistent on each page, and the instructions are provided are clear.

  • The content checking includes such things as checking for spelling and grammatical mistakes, proper font size and colors, that images and tables are aligned with the text, any web references are hyper-linked.


Interface testing verifies that all the interactions between the web server, the application server and the database are executed properly. When testing interfaces don’t forget to check for the following things:



  • What happens if the connection between any of the servers are reset or lost;

  • How does the application respond if a request was interrupted;

  • Error handling;

  • Make sure that database responds to a request as expected.


The next in our list is Compatibility testing which is responsible for ensuring that the application works in different environments, and includes:



  • Browser compatibility – makes sure that the web site works the same way on different browsers, like Internet Explorer, Chrome, Firefox, Safari, etc.

  • Operating system compatibility – your application may appear differently on different OS, and variety of operating systems (Windows, MAC, Solaris, etc.) makes that part of the testing substantial.

  • Mobile browsing (Smartphones, Tablets, etc.)

  • Printer compatibility.


Let’s move to Performance testing which is determining whether or not the web application is working properly under the heavy loads. You want to make sure that the application you are testing can handle such things as:



  • Large number of users at the same time

  • Large amount of data from each user

  • Long period of continuous use


Automation tools are great for that type of testing as they can simulate multiple simultaneous users for the long period of time.


And, the last thing I wanted to discuss is Security testing, whose main goal is to make sure that the company’s and users personal information (Like credit card number, phone number, address, password, etc.) are secure and protected. As a company we don’t want customers to get where they are not supposed to get without an authorization. And as a customer I would like to know that all my actions are protected, and unauthorized individuals would not get access to my personal data. Here some things you should pay attention to when verifying the security level of the system:



  • Check if you can get to secure pages without authorization;

  • Check if you can pass with invalid password/username;

  • Check if you can enter internal pages entering URLs in the browser;

  • Check if a user can navigate to encrypted SSL pages;

  • Check if a session will expire if the web site is not being used for a pre-defined amount of time;

  • Check what happens if a user tries to continue his actions after the session is expired;

  • Check if the directory setup is correct, and not allowing users to access any internal information.


I think I have highlighted all the main parts of Web Testing. And I hope you found the information presented in the article practical and helpful.


Author: Marina Kalashnikova (Testing4Success Intern)



Web Testing - In Simple Words