In the testing phase, testers play a key role, along with support from other team members. After code has been delivered to the test environment, testers execute test cases according to test plan through a series of scenarios on the new program.
Testers use several types of testing methods to break the code. The most common ones are functional testing, load testing, automated testing and data testing. Each type of testing has its own setups and methods of execution. By combining all the methods, testers maximize their opportunities to find as many defects as they can within the allotted time.
Testers must also report the defects found. Some organizations purchase expensive testing suites with bug-reporting features while other organizations use freeware or even just word documentation. Whichever tools the testers use, their defect documentation must include detailed steps for reproduction and expected and actual results. The purpose of the report is to convey the bug in an understandable manner to the rest of the project team.
If there exist too many defects or defects that halt the entire effort, then testers must conduct a triage meeting involving the entire team to immediately eliminate the problems.
The testing phase may last a few rounds with bug fixing happening at the same time, and code may be re-delivered several times. Each time testers receive new code, they must apply regression testing to ensure that the new code did not break existing functionalities.
At the end of this phase, testers approve the application for production with no or minimal defects.