In the SDLC, testing is rather an important phase. In this phase, the software is checked whether it meets the requirements? Behaves as expected by the developers? Performs as expected and usable as expected in the desired environment? Achieves the desired result? All of these are checked and once the results are satisfied then the product will be moved to delivery. There are four levels of software testing:
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
Among these levels let us see the first two levels in detail in this post and for the rest click here.
It is basically done by the developers to make sure that their code is working fine and meet the user specifications. The smallest independent and testable part of the source code is referred to as a unit. It is the first step in software testing environment and is generally conducted by the developers or their teammates. The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect. Each unit is tested separately before integrating them into modules to test the interfaces between modules.
Unit testing is carried on the smallest testable component of the project so the number of test cases and test data are less, and it is not always possible to check all the scenarios for functional and information flow of software application. If unit testing is carried out properly then it would also result in a lot of cost saving as the cost of fixing a defect in the final stages of software development is much higher than of fixing them in the initial stages.
Once the unit testing phase is over, integration testing is done. In Integration testing, the individual tested units are grouped as one and the interface between them is tested. Integration testing identifies the problems that occur when the individual units are combined i.e it detects the problem in the interface of the two units.
There are three different types of integration testing approach in software testing.
- Big Bang
- Top Down
- Bottom Up
Big Bang Integration testing approach is performed by integrating all the modules simultaneously to create a software system as a whole. The test is performed on the created system to see if the original requirement is met with or not.
In Top down integrated testing approach, all Top level integrated modules are tested first and its submodules are tested subsequently from top to bottom hierarchy in a step by step manner.
In Bottom-up integrated testing approach, all bottom (Sub Modules) level integrated submodules are tested first and its main modules tested from bottom to top hierarchy in a step by step manner.
These two forms the first two stages of testing. These stages play an important role in the SDLC and determine the quality of the product to be delivered.