Contrary
to popular belief, Software Testing is not a just a single activity. It
consists of series of activities carried out methodologically to help certify
your software product. These activities (stages) constitute the Software
Testing Life Cycle (STLC).
|
The
different stages in Software Test Life Cycle -
Each
of these stages has a definite Entry and Exit criteria, Activities &
Deliverables associated with it. 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 we will focus of activities and deliverables
for the different stages in STLC. Let’s look into them in detail.
Requirement Analysis
During
this phase, test team studies the requirements from a testing point of view to
identify the testable requirements. The QA team may interact with various
stakeholders (Client, Business Analyst, Technical Leads, and System Architects etc.)
to understand the requirements in detail. Requirements could be either
Functional (defining what the software must do) or Non Functional (defining
system performance /security availability). Automation feasibility for the
given testing project is also done in this stage.
Activities
·
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
·
RTM
·
Automation
feasibility report. (if applicable)
Test Planning
This
phase is also called Test Strategy phase. Typically, in this stage, a
Senior QA manager will determine effort and cost estimates for the project and
would prepare and finalize the Test Plan.
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
·
Test plan /strategy document.
·
Effort estimation document.
Test Case Development
This
phase involves creation, verification and rework of test cases & test
scripts. Test data ,
is identified/created and is reviewed and then reworked as well.
Activities
·
Create
test cases, automation scripts (if applicable)
·
Review
and baseline test cases and scripts
·
Create
test data (If Test Environment is available)
Deliverables
·
Test
cases/scripts
·
Test
data
Test Environment Setup
Test
environment decides the software and hardware conditions under which a work
product is tested. Test environment set-up is one of the critical aspects of
testing process and can be done in parallel with Test Case Development
Stage. Test team may not be involved in this activity if the
customer/development team provides the test environment in which case the test
team is required to do a readiness check (smoke testing) of the given
environment.
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
·
Environment
ready with test data set up
·
Smoke
Test Results.
During
this phase test team will carry out the testing based on the test plans and the
test cases prepared. Bugs will be reported back to the development team for
correction and retesting will be performed.
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
·
Completed
RTM with execution status
·
Test
cases updated with results
·
Defect
reports
Test Cycle Closure
Testing
team will meet , discuss and analyze testing artifacts to identify strategies
that have to be implemented in future, taking lessons from the current test
cycle. The idea is to remove the process bottlenecks for future test cycles and
share best practices for any similar projects in future.
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
·
Test
Closure report
·
Test
metrics
Finally, summary of STLC along with Entry
and Exit Criteria
STLC
Stage
|
Entry
Criteria
|
Activity
|
Exit
Criteria
|
Deliverables
|
Requirement
Analysis
|
Requirements
Document available (both functional and non-functional)
|
Analyse
business functionality to know the business modules and module specific functionalities.
|
Signed
off RTM
|
RTM
|
Acceptance
criteria defined.
|
Identify
all transactions in the modules.
|
Test
automation feasibility report signed off by the client
|
Automation
feasibility report (if applicable)
|
|
Application
architectural document available.
|
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).
|
||||
Test
Planning
|
Requirements
Documents
|
Analyze
various testing approaches available
|
Approved
test plan/strategy document.
|
Test
plan/strategy document.
|
Requirement
Traceability matrix.
|
Finalize
on the best suited approach
|
Effort
estimation document signed off.
|
Effort
estimation document.
|
|
Test
automation feasibility document.
|
Preparation
of test plan/strategy document for various types of testing
|
|||
Test
tool selection
|
||||
Test
effort estimation
|
||||
Resource
planning and determining roles and responsibilities.
|
||||
Test
case development
|
Requirements
Documents
|
Create
test cases, automation scripts (where applicable)
|
Reviewed
and signed test Cases/scripts
|
Test
cases/scripts
|
RTM
and test plan
|
Review
and baseline test cases and scripts
|
Reviewed
and signed test data
|
Test
data
|
|
Automation
analysis report
|
Create
test data
|
|||
Test
Environment setup
|
System
Design and architecture documents are available
|
Understand
the required architecture, environment set-up
|
Environment
setup is working as per the plan and checklist
|
Environment
ready with test data set up
|
Environment
set-up plan is available
|
Prepare
hardware and software requirement list
|
Test
data setup is complete
|
Smoke
Test Results.
|
|
Finalize
connectivity requirements
|
Smoke
test is successful
|
|||
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
|
||||
Test
Execution
|
Baselined
RTM, Test Plan , Test case/scripts are available
|
Execute
tests as per plan
|
All
tests planned are executed
|
Completed
RTM with execution status
|
Test
environment is ready
|
Document
test results, and log defects for failed cases
|
Defects
logged and tracked to closure
|
Test
cases updated with results
|
|
Test
data set up is done
|
Update
test plans/test cases, if necessary
|
Defect
reports
|
||
Unit/Integration
test report for the build to be tested is available
|
Map
defects to test cases in RTM
|
|||
Retest
the defect fixes
|
||||
Regression
testing of application
|
||||
Track
the defects to closure
|
||||
Test
Cycle closure
|
Testing
has been completed
|
Evaluate
cycle completion criteria based on - Time, Test coverage , Cost , Software
Quality , Critical Business Objectives
|
Test
Closure report signed off by client
|
Test
Closure report
|
Test
results are available
|
Prepare
test metrics based on the above parameters.
|
Test
metrics
|
||
Defect
logs are available
|
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
|