Levels of testing
1) Unit Level
2) Module Level
3) Integration Level
4) System Testing
5) User Acceptance Testing(UAT)
Lets see the details of each level
1) Unit Level:
Unit is a smallest flow of an application.
Developer is responsible for Unit Level testing where he is assigned with the multiple units and developes the code for those units.
Later its his responsibility to check whether each and every unit is working as expected or not.
2) Module Level:
Multiple units are combine to form a module.
Developers as well as testers are responsible for module testing. Developer will perform White-Box testing in developement environment and after releasing the module to test team testers will perform Black-box testing in test environment.
3) Integration Level:
The process of combining all the developed modules is known as Integration and to check whether the data flow is navigating from one module to another is Integration Level Testing.
Both the developers and testers are responsible for this testing.
In Integration Level testing there are two programs which are used in major, those are
i) Stub
ii) Driver
Both are nothing but a Dummy Modules. These modules contain a dummy code for a temporary usable purpose.
Stub: In Top-down approach to integrate modules, while integration if any mandatory module is missing or not ready, then it is replaced with 'Stub'.
For example, in a situation where one has three different modules: Login, Home, User. Suppose login module is ready for test, but the two minor modules Home and User, which are called by Login module are not ready yet for testing.
At this time, a piece of dummy code is written, which simulates the called methods of Home and User. These dummy pieces of code are the stubs.
Driver: In Bottom-up approach, if any module is missing, the dummy module used there is called a 'Driver'.
Taking the same example as above. Suppose this time, the User and Home modules are ready, but the Login module is not ready to test.
Now since Home and User return values from Login module, so a dummy piece of code is written, which simulates the Login module. This dummy code is then called Driver.
4) System Testing:
It is also knows as non-functional testing.
once the application is stable in test environment , System testing is performed to calculate the Response Time.
System testing tests the design and behavior of the system and also the expectations of the customer. It is performed to test the system beyond the bounds mentioned in the Software Requirement Specification(SRS) document.
There are following types of System Testing :
i) Performance Testing
ii) Load Testing
iii) Stress Testing
iv) Scalability Testing
These are the testings which are performed under System Testing strategy.
5) User Acceptance Testing:
Once the build is stable in test environment and before delivering it to client, the client will send the User Acceptance Test cases to testing team for execution.
User Acceptance test cases are executed in Test environment and if all the Test Cases are results in pass, the build is delivered to client.
This Process is called Alpha Testing.
Client will again execute the Test cases in Stage environment. If All the test cases are pass client will deploy the build in live environment.
This Process is called Beta Testing.