Have you ever thought why do you need to categorize software testing into different types? What is the benefits of dividing software testing in different types? One of the main purpose of software testing is to identify defects in the software. Defects in software testing can be defined as variance from requirement or user expectation. Based on this simple definition, it is very easy to categorize defects. For example:
Identify these different defects require different skill set, different techniques and different type of test cases. Testing is divided into different types to reflect, what kind of defects can be uncovered by those activities. This division also helps management in managing these activities effectively. Also, it is very rare to have someone with skills in all the types of testing and this division helps in getting proper resources for team.
Hope you understand importance of this categorization and also how important it is to have understanding of different types. This understanding will enable you to spot more defects which in turn will improve quality and make you more effective software tester.
There are many ways in which software testing can be categorized. Some of them are described as follows:
Categorization of testing based on the time it is executed in the Software Development Life Cycle
Testing can also be categorized based on how it is executed. Execution could be in the form of verification or static analysis or it could be validation or dynamic analysis. Verification and validation can be categorized further according to how it is done.
In very simple terms, verification is the human examination or review of the work product. There are many forms of verification which ranges from informal verification to formal verification. Verification can be used for various phases in SDLC and can be in the form of formal inspection, walkthrough or buddy-checking.
Validation or dynamic analysis is the most frequent activity that as a tester you perform. Whether you are doing black box testing, non functional testing or any type of testing, chances are that you are performing validation or dynamic analyses. Validation or dynamic analyses is associated with the execution, and could be related to the execution of test cases or testing in general. There are many ways in which testing can be executed, for example