Types of testing
Types of testing
There is lot of ways to group the tests into types. It is important to know and understand each of them. It may seem strange– why do you need to know so much theory just to see if the program works. But remember that you don’t only check the capacity of the program, but also prevents the emergence of possible mistakes in future. While working, you will look at the product from different angles. You should assess it as a programmer and imagine where you could make a mistake when writing the code and what you wouldn’t consider in his place. You must see the program as the client and think: “Is it convenient to work with?” “Does it have all the necessary functions or can it be improved?” You must approach to the program as a hacker and find the vulnerabilities that could lead to the program failure or leak of information. There are many types of tests for this purpose. If your boss doesn’t want to waste time explaining what exactly you must test in the program, he/she can just call a certain type of testing so that you understand what kind of work needs to be done.
Now let’s consider the classification of tests.
Look at the first classification of testing. It depends on how deep is the tester’s knowledge about the product – if we can use only program interface or its sources as well. It is a testing classification by the tester’s knowledge of the system. It has three types: black box testing, white box testing and gray (glass) box testing. The most common one is the black box testing. The other two are very rare.
The black box testing is the testing of the part of the program, accessible through its interface. In this case it is considered that we know about the program as much as the final user, and therefore testing program code is not necessary. Such tests may include testing the boundary values of input and output information, testing according to the ready test cases and use-cases and checking the program transition from one state to the other. They can also include functional tests (that will be described below), such as the testing of usability, performance and technical requirements for PC.
The black box testing can be conducted by usability testing companies to ensure that the system works properly (functional testing, i.e. checking if the system performs its functions) and to check that it deals with the task as necessary (non-functional testing, i.e. testing such qualities, as speed of work, safety and comfort).
There are four ways of the black box testing: the testing of grade equivalence, boundary values, checking according to the table of use options and transition of states.
The white box testing is the testing of software performance based on the knowledge of its program code. It is important to check all the conditions of transitions inside the functions, the fullness of their coverage and the correctness of formula calculation. In this testing you perform a check without launching the program. Reading the program code, you test the test the correctness of implementation of the operation cycles and transitions inside the program.
The gray box testing includes both previous ones. This implies that you look at the product as the final user, but can also check the code if necessary.