Software Testing Life Cycle (STLC) defines the steps/ stages/ phases in testing of software. However, there is no fixed standard STLC in the world and it basically varies as per the following:
*Software Development Life Cycle
*Whims of the Management
Nevertheless, Software Testing Life Cycle, in general, comprises of the following phases:
*Requirements/ Design Review. You review the software requirements/design, if they exist. In final, you make the "Review Defect" reports.
*Test Planning. Once you have gathered a general idea of what needs to be tested, you вЂplan' for the tests. You need to create test plan, estimation and schedule.
*Test Designing. You design or detail your tests on the basis of detailed requirements and design of the software. You will create the test cases, scripts, data and the requirements traceability matrix.
*Test Environment Setup. You setup the test environment (server, client, network, etc) with the goal of replicating the end-users' environment.
*Test Execution. You execute your Test Cases or Scripts in the Test Environment to see whether they pass. In the end you will have test results and defect reports.
*Test Reporting. You prepare various reports for various stakeholders. There will be many results, that you must save in your documentation - like metrics and reports.
Note that the STLC phases mentioned above do not necessarily have to be in the order listed; some phases can sometimes run in parallel (For instance, Test Designing and Test Execution). And, in extreme cases, the phases might also be reversed (For instance, when there is Cursing prior to Testing).
Interestingly, no matter how well-defined a Software Testing Life Cycle you have in your project or organization, there are chances that you will invariably witness the following widely-popular cycle:
In this type of STLC, you skip phases like design review, test planning, etc - in the hope that the skipping will save you some time and/or cost.