Software Testing Life Cycle (STLC)
Software Testing Life Cycle (STLC)
1. Requirement Gathering
2. Test planning
3. Test case Development
4. Set up the test environment (Test, Int, Prod)
5. Test case Execution
6. Test cycle Closure/Maintenance
1. Requirement Gathering
Requirement Gathering is the very first Step in the STLC process. The
document containing these requirements is called the Specification
Document. This is a very important part of the software because all the
development would be revolving around this document.
It is always advised to get a sign off from the client for the requirements
document, to reiterate the correctness of the specification that the client is
looking for. It is with these requirements that testers would be able to come
up with the test cases.
Requirements will be either in the form of a document or User Stories. In Agile
a requirement is called User story. Each user story can be further broken
down into several tasks and assigned to different members of the team.
The requirements are received from clients/stakeholders who are in need of
the product/service. A BA (business analyst) is normally the person who
prepares this document after discussions with the client. It is advisable to
have the client, the BA, product owner or manager along with team leads
(including QA lead) and architects should be attending the requirement
gathering meeting.
Entry Criteria
Activities
Deliverables
• RTM
• Automation feasibility report.
Exit Criteria
• RTM
• Automation Feasibility report
2. Test Planning
Once the requirement analysis is over next is the planning phase. Team
lead/Test Lead or sometimes Manager will prepare the Test Plan document.
This plan will be kept in share drives or test management tools like Rally, ALM,
etc. so that they are accessible to everyone.
The test plan document is a single point of reference when it comes to all
testing activities. It also works like the document that is shared between the
Dev team, Business Analysts, Project Managers, and the other teams for
concurrence.
Owing to this transparency of the QA team’s work to the external teams will
increase to a great extent. The main input needed for the test plan is the
signed of requirement document.
Test plan Document may have the following Sections:
1. Entry Criteria
It specifies the conditions which must be satisfied for the testing process to
begin. The most common entry for testing is a stable build that has passed
the smoke test within the minimum number of failures or the data setup is
ready or the hardware is ready etc.
2. Scope
The scope of the Testing will be listed in this section.
The scope of the testing refers to the list of requirements from the
requirement document that are feasible for testing in that particular release
or iteration.
There will also be a traceability matrix created which will map the
requirements to feasibility, test cases, test case runs, test case status and
defects. This matrix will clearly indicate the status of the testing and quality
of the product.
3. Out of Scope
Out of Scope feature will be listed in this section.
Any features or requirements which are not covered as part of the current
release will be marked as out of scope. There can be several reasons for
marking an item as out of scope. Data setup not available, dependency on
other modules, application not ready, not feasible for testing are some of
these reasons.
4. Assumptions
Assumptions are listed in this section.
As the name suggests this section would contain the list of things we think
would be ready when we are starting the testing. Some of the items covered
in this section are application is up and running, resources are available,
hardware setup is up and running. Each project can have a different set of
assumptions.
5. Schedules
Here we can write about how many test cycles are needed. Start date and
end date of each cycle, the sequence of testing, etc. This section will contain
an estimate of the number of test cases available and how long it will take to
script and test each of these.
Then based on the number of resources available a timeline is reached for
test case creation, data preparation (if applicable), and test case execution
and reporting.
If Expected Result and Actual result matches Status will be pass else fail.
4. Setting up Test Environment
While the testing is in progress the team would be having a daily status
reporting to the test lead or manager to track the progress. The team may
also need to be constantly in touch with the developers to help them
understand the issues and defects.
In case any bug fixes are received, the team needs to make sure the issues
are actually fixed and also validate that the fix has not adversely affected
any other functionality
6. Testing closure/Maintenance
Once all the test cases are completed and most of the defects are tracked
to closure, the test process is also closed. All the deliverables’s as mentioned
in the test plan is shared with the development team along with the
certification of whether or not the build is a go or no-go to the next stage.
Hope this section was useful to you in understanding the STLC process.
Though we have talked about the 6 steps there are always customizations
that we need to do to make things smoother for the project.
With Scrum and agile being the buzz words, the STLC has been reduced to a
minimum with no proper test plan and in most cases no detailed test cases
as well. But always remember the process is important and the more you do
away with the greater is the risk.
Why do we need STLC?
Software testing ensures the high quality of the software product and is
essentially a very important part of software development. The software
testing life cycle ensures that the testing process is carried out in a well-
planned and sequential order thus promising better testing results.
The Software Testing Life Cycle can embrace 4 different testing models
namely the agile model, the waterfall model, the V model, and the spiral
model.
Conclusion
A systematic and sequential approach is always beneficial for any process.
The software testing life cycle is such a systematic and sequential way of
conducting software testing that promises a more effective and efficient
testing results.
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
×