Levels of Testing!! Before starting the post on Levels of Testing, let’s see what is Software Testing.
Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product.
Let’s see what are the levels of testing:
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Let’s see levels of testing in detail.
Unit Testing is done to check whether the individual modules of the source code are working properly. i.e. testing each and every unit of the application separately by the developer in developer’s environment. It is AKA Module Testing or Component Testing
Integration Testing is the process of testing the connectivity or data transfer between the couple of unit tested modules. It is AKA I&T Testing or String Testing
It is sub divided into Top Down Approach, Bottom Up Approach and Sandwich Approach (Combination of Top Down and Bottom Up). This process is carried out by using dummy programs called Stubs and Drivers. Stubs and Drivers do not implement the entire programming logic of the software module but just simulate data communication with the calling module.
Big Bang Integration Testing:
In Big Bang Integration Testing, the individual modules are not integrated until all the modules are ready. Then they will run to check whether it is performing well. In this type of testing, some disadvantages might occur like, defects can be found at the later stage. It would be difficult to find out whether the defect arouse in interface or in module.
Top Down Integration Testing
In Top Down Integration Testing, the high level modules are integrated and tested first. i.e Testing from main module to sub module. In this type of testing, Stubs are used as temporary module if a module is not ready for integration testing.
Bottom Up Integration Testing
In Bottom Up Integration Testing, the low-level modules are integrated and tested first i.e Testing from sub-module to main module. Same like Stubs, here drivers are used as a temporary module for integration testing.
It is called by the Module under Test.
It calls the Module to be tested.
SYSTEM TESTING (END TO END TESTING):
It’s a black box testing. Testing the fully integrated application this is also called as end to end scenario testing. To ensure that the software works in all intended target systems. Verify thorough testing of every input in the application to check for desired outputs. Testing of the users experience with the application.
To obtain customer sign-off so that software can be delivered and payments received.
Types of Acceptance Testing are Alpha, Beta & Gamma Testing.
Alpha testing is mostly like performing usability testing which is done by the in-house developers who developed the software. Sometimes this alpha testing is done by client or outsiders with the presence of developers or testers.
Beta testing is done by limited number of end users before delivery, the change request would be fixed if the user gives feedback or reports defect.
Gamma testing is done when the software is ready for release with specified requirements; this testing is done directly by skipping all the in-house testing activities.