Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the testing process to ensure software quality goals are met. STLC involves both verification and validation activities. Contrary to popular belief, Software Testing is not just a single/isolate activity, i.e. testing. It consists of a series of activities carried out methodologically to help certify your software product. STLC stands for Software Testing Life Cycle.
STLC Phases
Requirement Analysis
Test Planning
Test Case Development
Test Environment Setup
Test Execution
Test Cycle Closure
STLC Phases along with Entry and Exit Criteria
STLC Phases
There are following six major phases in every Software Testing Life Cycle Model (STLC Model):
Requirement Analysis
Test Planning
Test case development
Test Environment setup
Test Execution
Test Cycle closure
STLC Model Phases
Each of these stages has a definite Entry and Exit criteria, Activities & Deliverables associated with it.
What is Entry and Exit Criteria in STLC?
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
You have Entry and Exit Criteria for all levels in the Software Testing Life Cycle (STLC)
In an Ideal world, you will not enter the next stage until the exit criteria for the previous stage is met. But practically this is not always possible. So for this tutorial, we will focus on activities and deliverables for the different stages in STLC life cycle. Let's look into them in detail.
Requirement Phase Testing
Requirement Phase Testing also known as Requirement Analysis in which test team studies the requirements from a testing point of view to identify testable requirements and the QA team may interact with various stakeholders to understand requirements in detail. Requirements could be either functional or non-functional. Automation feasibility for the testing project is also done in this stage.
Activities in Requirement Phase Testing
Identify types of tests to be performed.
Gather details about testing priorities and focus.
Prepare Requirement Traceability Matrix (RTM).
Identify test environment details where testing is supposed to be carried out.
Automation feasibility analysis (if required).
Deliverables of Requirement Phase Testing
RTM
Automation feasibility report. (if applicable)
Test Planning in STLC
Test Planning in STLC is a phase in which a Senior QA manager determines the test plan strategy along with efforts and cost estimates for the project. Moreover, the resources, test environment, test limitations and the testing schedule are also determined. The Test Plan gets prepared and finalized in the same phase.
Test Planning Activities
Preparation of test plan/strategy document for various types of testing
Test tool selection
Test effort estimation
Resource planning and determining roles and responsibilities.
Training requirement
Deliverables of Test Planning
Test plan /strategy document.
Effort estimation document.
Test Case Development Phase
The Test Case Development Phase involves the creation, verification and rework of test cases & test scripts after the test plan is ready. Initially, the Test data is identified then created and reviewed and then reworked based on the preconditions. Then the QA team starts the development process of test cases for individual units.
Test Case Development Activities
Create test cases, automation scripts (if applicable)
Review and baseline test cases and scripts
Create test data (If Test Environment is available)
Deliverables of Test Case Development
Test cases/scripts
Test data
Test Environment Setup
Test Environment Setup decides the software and hardware conditions under which a work product is tested. It is one of the critical aspects of the testing process and can be done in parallel with the Test Case Development Phase. Test team may not be involved in this activity if the development team provides the test environment. The test team is required to do a readiness check (smoke testing) of the given environment.
Test Environment Setup Activities
Understand the required architecture, environment set-up and prepare hardware and software requirement list for the Test Environment.
Setup test Environment and test data
Perform smoke test on the build
Deliverables of Test Environment Setup
Environment ready with test data set up
Smoke Test Results.
Test Execution Phase
Test Execution Phase is carried out by the testers in which testing of the software build is done based on test plans and test cases prepared. The process consists of test script execution, test script maintenance and bug reporting. If bugs are reported then it is reverted back to development team for correction and retesting will be performed.
Test Execution Activities
Execute tests as per plan
Document test results, and log defects for failed cases
Map defects to test cases in RTM
Retest the Defect fixes
Track the defects to closure
Deliverables of Test Execution
Completed RTM with the execution status
Test cases updated with results
Defect reports
Test Cycle Closure
Test Cycle Closure phase is completion of test execution which involves several activities like test completion reporting, collection of test completion matrices and test results. Testing team members meet, discuss and analyze testing artifacts to identify strategies that have to be implemented in future, taking lessons from current test cycle. The idea is to remove process bottlenecks for future test cycles.
Test Cycle Closure Activities
Evaluate cycle completion criteria based on Time, Test coverage, Cost,Software, Critical Business Objectives, Quality
Prepare test metrics based on the above parameters.
Document the learning out of the project
Prepare Test closure report
Qualitative and quantitative reporting of quality of the work product to the customer.
Test result analysis to find out the defect distribution by type and severity.
Deliverables of Test Cycle Closure
Test Closure report
Test metrics
STLC Phases along with Entry and Exit Criteria
STLC Stage
Entry Criteria
Activity
Exit Criteria
Deliverables
Requirement Analysis
Requirements Document available (both functional and non functional)
Acceptance criteria defined.
Application architectural document available.
Analyse business functionality to know the business modules and module specific functionalities.
Identify all transactions in the modules.
Identify all the user profiles.
Gather user interface/ authentication, geographic spread requirements.
Identify types of tests to be performed.
Gather details about testing priorities and focus.
Prepare Requirement Traceability Matrix (RTM).
Identify test environment details where testing is supposed to be carried out.
Automation feasibility analysis (if required).
Signed off RTM
Test automation feasibility report signed off by the client
RTM
Automation feasibility report (if applicable)
Test Planning
Requirements Documents
Requirement Traceability matrix.
Test automation feasibility document.
Analyze various testing approaches available
Finalize on the best-suited approach
Preparation of test plan/strategy document for various types of testing
Test tool selection
Test effort estimation
Resource planning and determining roles and responsibilities.
Approved test plan/strategy document.
Effort estimation document signed off.
Test plan/strategy document.
Effort estimation document.
Test case development
Requirements Documents
RTM and test plan
Automation analysis report
Create test cases, test design, automation scripts (where applicable)
Review and baseline test cases and scripts
Create test data
Reviewed and signed test Cases/scripts
Reviewed and signed test data
Test cases/scripts
Test data
Test Environment setup
System Design and architecture documents are available
Environment set-up plan is available
Understand the required architecture, environment set-up
Prepare hardware and software development requirement list
Finalize connectivity requirements
Prepare environment setup checklist
Setup test Environment and test data
Perform smoke test on the build
Accept/reject the build depending on smoke test result
Environment setup is working as per the plan and checklist
Test data setup is complete
Smoke test is successful
Environment ready with test data set up
Smoke Test Results.
Test Execution
Baselined RTM, Test Plan , Test case/scripts are available
Test environment is ready
Test data set up is done
Unit/Integration test report for the build to be tested is available
Execute tests as per plan
Document test results, and log defects for failed cases
Update test plans/test cases, if necessary
Map defects to test cases in RTM
Retest the defect fixes
Regression Testing of application
Track the defects to closure
All tests planned are executed
Defects logged and tracked to closure
Completed RTM with execution status
Test cases updated with results
Defect reports
Test Cycle closure
Testing has been completed
Test results are available
Defect logs are available
Evaluate cycle completion criteria based on - Time, Test coverage, Cost, Software Quality, Critical Business Objectives
Prepare test metrics based on the above parameters.
Document the learning out of the project
Prepare Test closure report
Qualitative and quantitative reporting of quality of the work product to the customer.
Test result analysis to find out the defect distribution by type and severity
What is Bug? A bug is the consequence/outcome of a coding fault. Defect in Software Testing A Defect in Software Testing is a variation or deviation of the software application from end user’s requirements or original business requirements. A software defect is an error in coding which causes incorrect or unexpected results from a software program which does not meet actual requirements. Testers might come across such defects while executing the test cases. These two terms have very thin line of differnce, In the Industry both are faults that need to be fixed and so interchangebaly used by some of the Testing teams. When testers execute the test cases, they might come across such test results which are contradictory to expected results. This variation in test results is referred to as a Software Defect. These defects or variations are referred by different names in different organizations like issues, problems, bugs or incidents. Bug Report in Software Testi...
Error, Defect, Fault, Bug and failure Most of these terms- error, defect, fault, failure and bugs are used interchangeably but there is difference between them. Some of these terms are very much different from others. Error An error is a mistake made by human that leads to discrepancy between the actual and the expected result. Defect A defect is a problem in the functioning of a software system during testing. ISTQB defines a defect as “A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g., an incorrect statement or data definition.” Fault A fault is an incorrect step, process or data definition in a software product. Bug A bug is a flaw in a software system that causes the system to behave in an unintended manner. Failure A failure is the inability of a software system to perform its operations within the specified performance benchmark. As per ISTQB , “a defect, if encountered during execution, may caus...
Manual Testing Manual testing is a software testing process in which test cases are executed manually without using any automated tool. All test cases executed by the tester manually according to the end user's perspective. It ensures whether the application is working, as mentioned in the requirement document or not. What is Automation Testing? Automation testing is a Software testing technique to test and compare the actual outcome with the expected outcome. This can be achieved by writing test scripts or using any automation testing tool. Test automation is used to automate repetitive tasks and other testing tasks which are difficult to perform manually. Performance Testing Performance Testing is a software testing process used for testing the speed, response time, stability, reliability, scalability and resource usage of a software application under particular workload. The main purpose of performan...
Comments
Post a Comment