There are 4 main levels of testing namely,
Unit testing
Mostly done by the developers. They will verify the internal structure of the code. Unit test cases will be created by developers to perform unit testing. One should have knowledge on the code to perform unit testing. Tested in the development environment.
Integration Testing
Done by the testers. Involves testing the application by modules and once the modules are working fine they will start combining (integrating) the modules and verifies whether the inter related functionalities between the modules are working fine. Integration test cases will be created by the testers. Tested in the test environment.
System Testing
Done by the testers. Testing the application as a whole to verify whether the end product meets the customer requirements. System test cases will be created by the testers. Tested in the test environment.
Acceptance Testing
Done by the testers or by the customers or by both. The application will be tested on the simulated real environment. It is called as UAT (User acceptance testing). It will be carried out on two different situations
1),Before accepting the build from the developers the testers will be doing sanity check kind of thing called smoke testing to verify whether the major functionalities are working fine without any crash so that the application can be subjected to more rigorous testing.
2),Done by separate team of testers in the simulated real time environment before delivering the build to the customers. This is called as Alpha Testing. Done by the customers in the real time environment by releasing the beta version of software to the limited number of customers. This is called as Beta Testing.
Testing Life Cycle
1.Requirement Analysis
The testing team will study the requirements delivered by the customers to understand and identify the functional & non functional requirements. They will understand the priorities and they will prepare Requirement traceability matrix. They will also identify whether the automation is feasible or not.
2.Test Planning
The manger involves in preparing the test plan. They will estimate the cost and effort for the project. Manager will calculate for the number of resources required to test the application & number of days needed to complete testing with the given number of resources. Manager will identify the roles & responsibilities for each tester. The test team will identify the tools and also for the training if needed.
3.Test cases Development
The testers will be involved in creating the test cases and test scripts for automation based on the requirements of the application. Rework on test cases and scripts will be performed based on the review comments. Test data will be identified & created by the testers.
4. Test environment Setup
Testers will be identifying the hardware and software requirements from the specification document. In this phase testers will be ready with the test environment setup and they will look for the connectivity related stuff.
5.Test Execution
In this phase of the STLC the testers will be actually executing the application with the set of test cases or scripts that they are ready with.
6.Test Reporting
Testers will document the test results and they will map the defects to the test cases. They will raise the defects in the defect tracker and track them till closure.
7.Test Result analysis
There will be CCB (Change Control Board) meeting with the client, where they will be analyzing the bugs and determine whether they are valid and can be assigned to the suitable team. They will also determine whether it is a defect or CR (Change Request).
8.Defect Retesting
Once the defect has been fixed by the developers, the testers will be doing a regression testing & retesting of the application.
9.Test Closure
Once the exit criteria have been met, the testers will stop the testing and they will prepare the test metrics. They will document the challenges they faced during testing and they will analyze the results to know the severity of the bugs in each modules so that they will come to know about the defect distribution rate.