There are different types of Software Testing categories based on the scope and types of testing processes. The main categories are listed below.
White Box testing
In White Box Testing, the software tester has proper access to the program/ code and he can debug the code to identify the error. This is also known as structural testing due to familiarity of the program structure to be tested. Example of white box testing is “Unit Testing” which is done after each module or program is coded and restricted only to the code level.
Black Box testing
In Black box testing, the software tester only knows the system as a whole and its main functionality. He does not know the individual functionalities of each member modules or programs and he has to complete the testing based on the given inputs and expected results. Example of black box testing is “System Testing” where the combined functionality of a developed system is tested.
In the static testing, the code or program is checked without running the same. The Static Testing is done by the experienced programmers who have clear knowledge of programming language, used algorithm or logic in the program and the expected execution result of the program or code. Based on his experience he should be able to do the static testing using Code Inspections, Reviews, and Walk-through etc.
In Dynamic testing the code is tested with different types of inputs which are dynamic in nature. In dynamic testing, the program is executed and the output is checked against the expected result to test for deviations. Unit Testing, Integration Testing, System Testing all can be termed as dynamic testing.
In manual testing, testing activities are performed manually by testers without the help of any Software Testing Tools. Absence of any software testing tools ensures proper execution of all the test cases one by one. Reviews and Unit Testing are considered as manual testing.
In automated testing, the testing activities are carried out with the help of different Software Testing Tools. In this process, one script or test case is prepared manually and after that the same test case is repeated multiple times with the help of software testing tools. Automated testing is mainly used for Performance Testing where application load can be tested. Performance Testing requires huge number of test cases to be executed within a very short period of time or at the same time, which is not possible to do manually.
Verification is the set of activities carried out to check whether we are building the system right or not. It’s all about verifying the functionalities of each module and programs. All the set of white box testing activities are the perfrect example of Verification.
Validation is the set of activities carried out to check whether we are building the right system or not. It’s all about validating all the end-functionalities after building the complete system. All the set of black box testing activities are the perfect example of Validation.