Software Testing Life Cycle And Test Deliverables
Software Testing Life Cycle (STLC) is a sequence of activities performed during the testing process to ensure the quality of the product is achieved. It deals with only testing phases. These activities start with test planning and continue to test closure. The testing processes will depend on the system and software context and the level of risk associated with the software but can be divided into following different phases
It is the first step in the software testing life cycle. In this phase testing team understands the requirement in terms of testing perspective and identifies the testable requirement. If any requirement is missing or having conflict then the testing team will follow up with various stakeholders like Business Analyst, Technical leads, etc. to understand the requirement in detail. The requirement could be functional or non-functional (security, performance, etc.) requirements.
Test Planning :
In this phase, the goals and objectives of the project is recognized with the associated scope and risks. Testing approach is defined which includes the testing techniques, coverage with the items to be tested. Test strategy for testing is built and schedule for test analysis and design tasks, test implementation, execution, and evaluation task are made. One of the most important activities performed during this phase is defining the exit criteria which will define what tasks and checks must be completed for a particular level of testing before declaring testing is completed.
Test Design :
In this phase testing objectives are converted into test conditions and test designs. Taking the test plans as input, test designs, and test procedures (scripts) are created. The test basis (such as the product risk analysis, requirements, architecture, design specifications, and interfaces) are used to build tests. A peer review of tests is also being done at this phase. Test conditions are also identified based on the analysis of test items and their specifications. The testability of the requirements and system is evaluated, and the environment setup is done during this phase.
In this phase test cases are executed by following test procedure, based on the priority using the test execution tool, and the outcome of the test case is recorded. If there is any deviation in the actual result of execution with the expected results, then the test case is marked as ‘Failed’, and incidents are raised. Testcase is marked as ‘blocked’ if it is not possible to execute them due to defect. Once the defect is resolved all the failed and blocked test cases are re-executed.
Reporting and Exit Criteria
In this phase exit criteria are evaluated for each test level. It is an activity where test execution is assessed against the defined objectives. It declares if the given testing activity or level is completed. Assessment is done to verify whether some more tests are required to design if the coverage expected is not meet, or if the risks have increased for the project or if the exit criteria specified should be changed. The test summary report is also prepared and shared across stakeholders in this phase.
In this final phase, a meeting is held between testing team members to evaluate cycle completion criteria based on Test coverage, Quality, Cost, Time, Business Objectives. Fact-checking is done on ‘What all went good’, ‘what went wrong’, and ‘what all can be improved’ from current STLC as input to upcoming test cycles, which will help to improve bottleneck in the STLC process. Finalize and archive testware is done, such as scripts, the test environment, and any other test infrastructure, for later reuse. The monitoring of the software is done to ensure it is working seamlessly in a real environment.
Thus, the various test deliverable which is given to the stakeholders in the software testing life cycle is below: