This post is part of a series on the Fundamentals of Software Testing. In this post, our author Alex explains the Software Testing Life Cycle .
1. What is Software Testing Life Cycle?
Software Testing Life Cycle (STLC) is described as a string of activities handled by testing team in their testing process over a particular product. This process contains 6 different steps where each of steps individually performs a specific responsibility contributed in a whole testing mechanism.
Also, every step has some Entry Criteria (a set of actions should be done to start the test) as well as Exit Criteria (a set of actions should be achieved before finishing the test). Basically, these criteria will decide if the tester can shift to next stage of Testing Life Cycle or not. To better understand this sequence, we will go through step by step in detail as follows.
2. Software Testing Life Cycle Phases and Process
2.1 Requirement Analysis
At the first step, Testing team interprets the requirements collected from customers/users with both functional and non-functional elements to clarify which is testable or not.
If there is any ambiguity occurred, QA team may collaborate with stakeholders( Business Analyst, System Architects and so on) as well as clients to better understand requirements before conducting the test.
Since the QA team gets ready to the test, they should have an approval from clients before starting.
Activities to be achieved:
- Analyze the System Requirements collected from clients and stakeholders
- Prepare Requirement Traceability Matrix
- Identify the testing techniques and testing types
- Prioritize the feature needed to be primarily targeted on the test
- Analyze the Automation feasibility
- Identify the details about the testing environment where the actual test will be executed
Expected results:
- Requirement Traceability Matrix (RTM)
- Automation feasibility report
2.2 Test Planning
After passing the Requirement Analysis phase, QA manager (or Leader) will develop the Test Plan and Test strategy documents. Also, this is the stage where the team discusses the foreseen cost and effort should be invested.
Activities to be achieved:
- Estimate the testing effort
- Define the Testing Approach
- Prepare Test Plan and Test Strategy documents
- Assign particular tasks and duties to each team member associated with available resources.
- Select Testing tool.
Expected results:
- Test Plan document
- Test Strategy document
- Testing Approach
- Resources, individual’s roles and duties, as well as skill, requires.
- Testing tool
2.3 Test Case Development
Test case will be built and verified in this step. Also, scripts for automation will be verified if needed and Test Data will be created.
Activities to be achieved:
- Verify test cases and automation scripts
- Make a Test Data
Expected results:
- Test cases
- Test scripts (for automation if needed)
- Test Data
2.4 Environment Setup
To carry out the test, we need to start from the environment created for testing where a set of software and hardware related to the test object needed to be installed. Furthermore, there might be third-party committed if it is crucial towards the project. The installation will be checked once the establishment of needed instruments is done. If the installation successfully passed the test, Test Data will be designed. There is the number of issues may come so a Smoke Testing is needed after creating Test Data. This basically aims to inspect whether the core features are in any troubles or not.
Activities to be achieved:
- The Requirement and Architecture document, the list of needed software and hardware must be shown up.
- Set up test environment
- Create test data
- Install, build and execute Smoke testing
Expected results:
- Test Environment
- Test Data
- Results of Smoke testing
2.5 Test Execution
It is not hard to realize that the test will be done in the given environment installed in the previous stage. During the test, found bugs will be recorded under the specific test cases. Then, Developers will take the responsibility to fix these bugs and QA will check this case over again.
Activities to be achieved:
- Execute of Test Cases
- Report test results
- Log defects for the failed test cases
- Verify and retest of the defect
- Closure the defects
Expected results:
- Test Execution Report
- Updated test cases with specific results
- Bugs/Errors Report
2.6 Test Cycle Closure
To finish the Testing Cycle, QA will have a further meeting about testing artefacts which aims to gain more experiences and learn from the failure to improve the product in the future. Thus so, any future project will have a chance to avoid the possible troubles which already happened in the previous testing project.
Activities to be achieved:
- Evaluate the test completion on the basis of Test Coverage and Software Quality
- Form the lessons learned from the project.
- Analyze the test results to discover the allocation of bugs
- Test Closure Report preparation
Expected results:
- Report of Test Closure
Read more on the Fundamentals of testing with other posts in the series on What is Software Testing and Levels of Software Testing.