Just like developers follow the Software Development Life Cycle (SDLC) likewise testers also follow the Software Testing Life Cycle which is called STLC. It is the sequence of activities carried out by the testing team from the beginning of the project till the end of the project.
Software Testing Life Cycle is a testing process which is executed in a sequence, in order to meet the quality goals. It is not a single activity but it consists of many different activities which are executed to achieve a good quality product.
Software Development Life Cycle
STLC stands for Software Testing Life Cycle. STLC is a sequence of different activities performed by the testing team to ensure the quality of the software or the product:
- STLC is an integral part of the Software Development Life Cycle (SDLC). But, STLC deals only with the testing phases.
- STLC starts as soon as requirements are defined or SRD (Software Requirement Document) is shared by stakeholders.
- STLC provides a step-by-step process to ensure quality software.
- In the early stage of STLC, while the software or the product is developing, the tester can analyze and define the scope of testing, entry and exit criteria and also the Test Cases. It helps to reduce the test cycle time along with better quality.
Phases of STLC
STLC has the following different phases but it is not mandatory to follow all phases. Phases are dependent on the nature of the software or the product, time and resources allocated for the testing and the model of SDLC that is to be followed.
- Requirement analysis
- Test Planning
- Test case development
- Environment Setup
- Test Execution
- Test Cycle Closure
Each of the step mentioned above has some Entry Criteria (it is a minimum set of conditions that should be met before starting the software testing) as well as Exit Criteria (it is a minimum set of conditions that should be completed in order to stop the software testing) on the basis of which it can be decided whether we can move to the next phase of Testing Life cycle or not.
Entry Criteria: Entry Criteria gives the prerequisite items that must be completed before testing can begin.
Exit Criteria: Exit Criteria defines the items that must be completed before testing can be concluded
Requirement Analysis
This is the very first phase of the Software testing Life cycle (STLC). In this phase the testing team goes through the Requirement document with both Functional and non-functional details in order to identify the testable requirements.
In case of any confusion the QA team may set up a meeting with the clients and the stakeholders(Technical Leads, Business Analyst, System Architects and Client etc.) in order to clarify their doubts.
Once the QA team is clear with the requirements they will document the acceptance Criteria and get it approved by the Customers.
Activities to be done in Requirement analysis phase are given below:
- Analyzing the System Requirement Specifications from the testing point of view
- Preparation of RTM that is Requirement Traceability Matrix
- Identifying the testing techniques and testing types
- Prioritizing the feature which need focused testing
- Analyzing the Automation feasibility
- Identifying the details about the testing environment where actual testing will be done.
Deliverables (Outcome) of Requirement analysis phase are:
- Requirement Traceability Matrix (RTM)
- Automation feasibility report
Test Planning
Test Planning phase starts soon after the completion of the Requirement Analysis phase. In this phase the QA manager or QA Lead will prepare the Test Plan and Test strategy documents. As per these documents they will also come up with the testing effort estimations.
Activities to be done in Test Planning phase are given below:
- Estimation of testing effort
- Selection of Testing Approach
- Preparation of Test Plan, Test strategy documents
- Resource planning and assigning roles and responsibility to them
- Selection of Testing tool
Deliverables (Outcome) of Test Planning phase are:
- Test Plan document
- Test Strategy document
- Best suited Testing Approach
- Number of Resources, skill required and their roles and responsibilities
- Testing tool to be used
Test Case Development
Test case in simple terms refers to a documentation which specifies input, preconditions, set of execution steps and expected result. A good test case is the one which is effective at finding defects. and also covers most of the scenarios/combinations on the system under test.
Detailed study of the System under test
- Before writing test cases, it is very important to have a detailed knowledge about the system which you are testing. It can be any application or any website or any software. Try and get as much information as possible through available documentation such as requirement specs, use cases, user guides, tutorials, or by having hands on the software itself.
- Gather all the possible positive scenarios and also the odd cases which might break the system (Destructive testing) such as stress testing, uncommon combinations of inputs etc.
Written in simple language
- While writing a test case, it is highly recommended to write in a simple and understandable language.
- It is equally important to write your steps to the point and accurately.
- Exact and consistent names for e.g. of forms, or fields under test must be used to avoid ambiguity.
Environment Setup
In environment setup phase need to prepare hardware and software requirement list for the Test Environment.The test team is required to do smoke testing and test data of the given environment and cover all the critical aspects of the testing process.
Test Execution
Manner of executing and testing the actual system result against the expected result is test execution. Test execution can be done manually and by using an automation suit. During the execution tester needs to make sure that the user’s need of the software is occupied in the software. Test execution is conducted by referring to the document created during test design as a step by step process. Tester needs to keep track while executing the test cases.
Test Cycle Closure
This is the very last phase of the Software testing Life cycle (STLC). In the last phase of STLC several activities are involved like test case reports, test result reports, test matrices and all stakeholders meet and discuss current status and what is the scope of improvement and what plan has to be implemented in future.