The Five Stages of Software Testing
On a broader level the stages of software testing can be classified into two categories – the first four stages are the verification stages and the last one is the validation stage. The difference between these two categories is that during the verification stages the software is tested based on the process used for its development whereas in the validation stage the actual product is checked for its functionality. Accordingly, the verification stages employ what in the technical lingo are known as the white box testing techniques whilst the validation stage uses black box testing techniques. The white box testing techniques focus on the structure and the logic that comprise the skeletal system of the software. The black box techniques on the other hand test the software against the program specifications.
Let’s now take a close look at the five stages of software testing protocol.
Stage – 1: Unit Testing
This is the stage where the developers dissect the software and scrutinize its smallest units to find out any grass root level problems. Here the focus is on analyzing and testing each and every unit of every module to see whether it’s working properly.
Stage – 2: Integration Testing
Moving on from the units, the next stage involves testing how well the various modules and components are integrated within the developed software. The integration is checked both ways that is top-down as well as bottom-up, so as to bring out the design, construction and architectural defects in the software. It’s at this stage that most of the basic design flaws of the software will become obvious. The various interfaces will also be tested for defects at this stage.
Stage – 3: Sub-System and System Testing
This stage focuses on validating and analyzing that the software and all its sub-systems comply with the requirements as specified by the client. It’s at this stage the software is tested as a whole.
Stage – 4: Testing Systems Engineering
The objective of this fourth stage of software testing is to see whether the software works well when integrated with external components like computer systems and other software, as specified in the software requirements provided by the end user or client. It’s important to note here that the software will not be used on the developer’s computer system, so testing must be made keeping in mind the computer system on which the software will ultimately be used.
Stage – 5: User Testing
This final stage is also known as acceptance testing stage, wherein the end user or some representative tests the final software to see if its complete and it actually performs the functions it is supposed to perform.
Image by: Sidharth Thakur