Software testing life cycle comprises of many testing related activities that will be carried out prior to development, during development and post development. Software testing life cycle helps in identifying what all test activities to be carried out and when to accomplish the testing activities. At every stage of development there will be a testing activity. There will not be a standardized Testing life cycle, different organization will be having different testing process, but every organization involved in Software business development business will be having a testing life cycle. In this article we will be discussing in detail about the different phases in STLC.
Software testing life cycle consists of 7 phases: Planning, Analysis, Design, Creation and Verification, Execution, Final Testing, Actions after implementation.
1) Planning: In this phase Testing Manager plans about the test testing activities and also activities which might influence testing activities. Manager has to understand the requirements. Manager has to think about the features to be tested and features not to be tested. Plans and identifies all the areas where testing efforts needs to be applied. How much testing has to be performed by looking into the budget and the risk factors. Entry and Exit Criteria has to be defined. Type of testing that will be performed has to be identified. Activities performed during Planning phase are follows:
i) High Level Test Plan.
ii) Scope of testing.
iii) Features to be tested and features not to be tested.
iv) Entry and Exit criteria.
v) Identifying Approaches for testing.
vi) Deadlines & Scheduling
vii) Pass/Fail Criteria.
viii) Quality Assurance Plan.
ix) Reviews to be performed, when?
x) Problem Reporting Procedures.
xi) Problem Classifications.
xii) Metrics of Project.
xiii) Hardware and Software requirements.
xiv) Deliverables.
xv) Risk factors and Contingency plans.
Involvement of software testers begins in the planning phase of the software development life cycle. During the design phase, testers work with developers in determining what aspects of a design are testable and with what parameters those tests will work.
2) Analysis: Base upon the High Level Test Plan document analysis will be done where decide what types of testing should be carried out at different stages of SDLC, do we need or plan to automate, if yes then when the appropriate time to automate is, what type of specific documentation I need for testing. Activities performed during Analysis phase are:
i) Types of testing to be performed during different stages of development life cycle to be identified.
ii) Preparing test case formats with time estimates and priorities.
iii) Develop Functional validation matrix based upon business requirement.
iv) Initiate test case writing according to functional validation matrix.
v) Map baseline data to test cases to business requirements.
vi) Ensure all the business requirements even the smallest is covered in test cases and in functional validation matrix.
vii) If automation testing is performed then extent of automation testing to be performed to be identified.
viii) Time at which the automation testing will be performed.
ix) Identifying documents required for automation testing.
x) Identify test cases to be automated.
xi) Automation team begin to setup variable files and high level scripts.
xii) Define areas of Stress testing and performance testing.
xiii) Begin development of Baseline database as per test case data requirements.
xiv) Define procedures for baseline data maintenance like backups, restore.
xv) Begin planning the number of test cycles required for the project, and Regression Testing.
xvi) Begin review of documentation, i.e. Functional Design, Business Requirements, Product Specifications, Product Externals etc..
xvii) Review test environments and lab, both Front End and Back End.
Success of project also depends upon how frequent and how effective interaction between various teams takes place like development team, testing team, business analyst’s team and clients. Any faults or mistakes in the plan will appear in such meetings. This provides an opportunity to have a rethinking & refining the strategies decided for testing.
3) Design: Activities involved in Design phase are mentioned below:
i) Verify test plan and revise the test plan based on changes.
ii) Revise test cycle matrix.
iii) Define Risk Assessment Criteria.
iv) Revise test cases.
v) Revise and finalization of matrix for functional validations.
vi) Identifying suitable test cases for automation if automation testing will be performed.
vii) Creating scripts for test cases decided for automation.
viii) Preparation of test data.
ix) Defining Unit Test standards.
x) Revising and finalizing testing environment.
xi) Identify performance testing and stress testing standards and parameters.
4) Construction and Verification or Creating Test Cases: In this phase major activity is to create and finalize the test cases to be used in actual testing phase. Stress and Performance testing plans needs to be completed. Test Plan needs to be finalized and needs to be completed. Unit Testing test cases needs to be prepared and to be shared with development team so that quality of the software will be improved. Activities involved during Creating Test Cases phase are mentioned below:
i) Completion of all plans (Test Plan, Performance testing plan, stress testing plan)
ii) Completion of creating all the test cases that will be used for testing.
iii) Complete Test Cycle Matrix.
iv) Complete scripts to be used for automation testing.
5) Execution: In this phase actual testing is carried out. All the test cases created will be executed and if any deviations are found then bug will be reported and after bug fixation re-testing and regression testing will be performed. Activities performed during Execution are as mentioned below:
i) Execute all the test cases that are created for manual testing and automation testing.
ii) Report bugs if any deviations found and Verification of bugs will be on going activity.
iii) Update test cases if needed.
iv) Addition of test cases.
v) Regression testing and Retesting.
vi) Bug life cycle will be followed.
6) Final Testing: All the test cases related to Performance testing and stress testing will be executed. Performance testing and stress testing will be performed at the last because code will be stable and then code optimization can be done. Documentation for testing is to be completed, providing different matrices like testing matrices, acceptance testing, recovery testing. Activities involved during Final Testing are mentioned below:
i) Execute all the test cases that are created for manual testing and automation testing.
ii) Execute test cases for performance and stress testing.
iii) Prepare and share defect matrix.
iv) Document test cycles, regression testing, and update accordingly.
v) Update estimates for test cases and test plans.
7) Actions after Implementation: Actions after implementation is also called as post mortem of testing activity. Testing process is evaluated and lessons learnt during testing. Documentation of steps to be taken to tackle similar problems in future projects. Cleaning up of test environment is done and test machines are restored to base lines in this stage. Activities performed during this phase are mentioned below:
i) Evaluation of entire testing process.
ii) Documentation of lessons learnt from hindrances. Identification of approaches to be followed in the event of occurrence of similar defects & problems in the future.
iii) Rethinking to refine the testing process.
iv) Create plan with goals and milestone how to improve processes.
v) Clean up test environment, tag and archive tests and data for that release, restore test machines to baseline, and etc.
Phases and activities mentioned may not be used in an organization but some of the activities will be in practice.