Software Testing Life Cycle
What is a Lifecycle?
Lifecycle in
simple term refers to the sequence of changes from one form to other form.
These changes can happen to any tangible or intangible things. Every entity has
a lifecycle from its inception to retire / demise.
In a similar
fashion, Software is also an entity. Just like developing software involves a
sequences of steps, testing also has steps which should be executed in a
definite sequence. This phenomenon of executing the testing activities in a
systematic and planned way is called testing life cycle.
What is Software Testing Life Cycle (STLC)
Software
Testing Life Cycle refers to a testing process which has specific steps to be
executed in a definite sequence to ensure that the quality goals have been met.
In STLC process, each activity is carried out in a planned and systematic way.
Each phase has different goals and deliverables. Different organizations have
different phases in STLC; however the basis remains the same.
Below are the phases of STLC:
Requirements
phase
Planning
Phase
Analysis phase
Design Phase
Implementation
Phase
Execution
Phase
Conclusion
Phase
Closure
Phase
#1. Requirement Phase:
During this
phase of STLC, analyze and study the requirements. Have brain storming sessions
with other teams and try to find out whether the requirements are testable or
not. This phase helps to identify the scope of the testing. If any feature is
not testable, communicate it during this phase so that the mitigation strategy
can be planned.
#2. Planning Phase:
In practical
scenarios, Test planning is the first step of the testing process. In this
phase we identify the activities and resources which would help to meet the
testing objectives. During planning we also try to identify the metrics, the
method of gathering and tracking those metrics.
On what
basis the planning is done? Only requirements?
The answer
is NO. Requirements do form one of the bases but there are 2 other very
important factors which influence test planning. These are:
– Test
strategy of the organization.
– Risk
analysis / Risk Management and mitigation.
#3. Analysis Phase:
This STLC
phase defines “WHAT” to be tested. We basically identify the test conditions
through the requirements document, product risks and other test basis. The test
condition should be traceable back to the requirement. There are various
factors which effect the identification of test conditions:
– Levels and
depth of testing
– Complexity
of the product
– Product
and project risks
– Software
development life cycle involved.
– Test
management
– Skills and
knowledge of the team.
–
Availability of the stakeholders.
We should
try to write down the test conditions in a detailed way. For example, for an
e-commerce web application, you can have a test condition as “User should be
able to make a payment”. Or you can detail it out by saying “User should be
able to make payment through NEFT, debit card and credit card”. The most
important advantage of writing the detailed test condition is that it increases
the test coverage, since the test cases will be written on the basis of the
test condition, these details will trigger to write more detailed test cases
which will eventually increase the coverage. Also identify the exit criteria of
the testing, i.e determine some conditions when you will stop the testing.
#4. Design Phase:
This phase
defines “HOW” to test. This phase involves the following tasks:
– Detail the
test condition. Break down the test conditions into multiple sub conditions to
increase coverage.
– Identify
and get the test data
– Identify
and set up the test environment.
– Create the
requirement traceability metrics
– Create the
test coverage metrics.
#5. Implementation Phase:
The major
task in this STLC phase is of creation of the detailed test cases. Prioritize
the test cases also identify which test case will become part of the regression
suite. Before finalizing the test case, It is important to carry out the review
to ensure the correctness of the test cases. Also don’t forget to take the sign
off of the test cases before actual execution starts. If your project involves
automation, identify the candidate test cases for automation and proceed for
scripting the test cases. Don’t forget to review them!
#6. Execution Phase:
As the name
suggests, this is the Software Testing Life Cycle phase where the actual
execution takes place. But before you start your execution, make sure that your
entry criterion is met. Execute the test cases, log defects in case of any
discrepancy. Simultaneously fill your traceability metrics to track your
progress.
#7. Conclusion Phase:
This STLC
phase concentrates on the exit criteria and reporting. Depending on your
project and stakeholders choice, you can decide on reporting whether you want
to send out a daily report of weekly report etc. There are different types of
reports ( DSR – Daily status report, WSR – Weekly status reports) which you can
send, but the important point is, the content of the report changes and depends
upon whom you are sending your reports. If Project managers belong to testing
background then they are more interested in the technical aspect of the
project, so include the technical things in your report ( number of test cases
passed, failed, defects raised, severity 1 defects etc.). But if you are
reporting to upper stakeholders, they might not be interested in the technical
things so report them about the risks that have been mitigated through the
testing.
#8. Closure Phase:
Tasks for
the closure activities include the following:
– Check for
the completion of the test. Whether all the test cases are executed or
mitigated deliberately. Check there are no severity 1 defects opened.
– Do lessons
learnt meeting and create lessons learnt document.( Include what went well,
where are the scope of improvements and what can be improved)
HAPPY
TESTING!!
Comments
Post a Comment