Software Testing Tutorial #7 - Software Testing Life Cycle (STLC)
Summary
TLDRThis tutorial introduces the Software Testing Life Cycle (STLC), explaining its role in software development. It walks through each phase of STLC, including requirements analysis, test planning, test case design, test environment setup, test execution, and reporting. The video emphasizes the importance of understanding these phases for those aiming to work in software testing, highlighting how STLC fits into both waterfall and agile methodologies. The presenter also touches on differences in documentation and reporting between agile and waterfall approaches, offering tips for interviews and practical project work.
Takeaways
- π οΈ Software Testing Life Cycle (STLC) is a key process that fits within the Software Development Life Cycle (SDLC) to test any application or software.
- π The first phase of STLC is Requirements Analysis, where the testing team understands and analyzes the software requirements to create potential test cases.
- π Test Planning follows the analysis phase, where the team creates a test plan, detailing the scope, test timelines, resources, and strategies.
- π In the Test Case Design and Development phase, testers develop test cases using design techniques like equivalence partitioning and boundary value analysis.
- π§ Test Environment Setup is the fourth phase, where a testing environment is prepared to execute test cases. This could involve setting up test data and ensuring proper deployment of the code.
- π Test Execution involves running the test cases in the test environment and verifying if the software meets the expected results.
- π Test Reporting follows test execution, where a summary of the testing process, including passed and failed test cases, is documented and shared with the team.
- ποΈ Test Closure is the final phase, where all testing activities are summarized and documents are handed over to the relevant teams for future reference.
- π In Agile methodologies, the testing cycle is shorter and more iterative, but the same core phases of STLC apply with quick sprint planning, test case development, and automated reporting.
- π Understanding STLC thoroughly is essential for testers to quickly adapt and work efficiently in any organization, ensuring proper software testing and quality assurance.
Q & A
What is the Software Testing Life Cycle (STLC)?
-The Software Testing Life Cycle (STLC) is a series of phases or processes within the software development life cycle that is used to test a software application or product. It defines the various stages involved in testing, starting from the requirement analysis phase to the test closure phase.
What is the importance of understanding STLC for a software testing job?
-Understanding STLC is crucial for a software testing job because it provides a clear structure of the testing process, helping testers to understand what activities are expected at each stage. This knowledge enables them to collaborate effectively with the development team and ensure thorough testing of the product.
What is the first phase of the Software Testing Life Cycle, and what activities are involved in it?
-The first phase of the Software Testing Life Cycle is 'Requirement Analysis'. In this phase, the testing team analyzes the requirements to understand what needs to be tested. The team identifies any gaps or ambiguities in the requirements and provides feedback to the development team or the product owner.
What is the purpose of the Test Planning phase?
-The purpose of the Test Planning phase is to create a test plan based on the analyzed requirements. This includes determining the scope of testing, resources needed, test schedule, risk assessment, and defining the overall testing strategy.
What does the Test Case Design and Development phase involve?
-The Test Case Design and Development phase involves designing and creating test cases based on the analyzed requirements. Techniques like equivalence partitioning and boundary value analysis are applied to ensure comprehensive coverage of all scenarios.
What is Test Environment Setup, and why is it necessary?
-Test Environment Setup involves configuring the hardware and software environment where testing will be conducted. It is necessary to ensure that the testing team has a stable and suitable environment to execute the test cases and validate the software functionality.
What activities are performed during the Test Execution phase?
-During the Test Execution phase, the testers run the test cases that were developed in the previous phase and record the results. They verify whether each test case passes or fails based on the expected outcomes and report any defects found during testing.
What is the Test Reporting phase, and what information is included in a test report?
-The Test Reporting phase involves documenting the results of the testing process. The test report includes details like which test cases passed or failed, any open defects, the overall testing status, and the level of confidence in the software's stability.
What happens during the Test Closure phase?
-During the Test Closure phase, the testing team finalizes the testing process by preparing closure documents that include all testing-related artifacts, test cases, and summary reports. These documents are handed over to the maintenance team or relevant stakeholders.
How does the STLC differ in Waterfall and Agile methodologies?
-The core phases of STLC remain the same in both Waterfall and Agile methodologies. The primary difference lies in the timing and documentation process. In Waterfall, each phase is completed sequentially, often over a longer period, whereas in Agile, the phases are repeated in short iterations or sprints, and documentation is less formal and more collaborative.
Outlines
π Introduction to Software Testing Life Cycle (STLC)
In this paragraph, the concept of the Software Testing Life Cycle (STLC) is introduced. It explains that STLC is a structured process that is integrated into the broader Software Development Life Cycle (SDLC). The importance of understanding STLC before entering a software testing role is emphasized, as it prepares testers to work effectively within a team. The paragraph briefly outlines that STLC consists of several phases and starts with requirements analysis.
π Requirements Analysis in STLC
This paragraph focuses on the first phase of STLC: requirements analysis. The example of an e-commerce project is used to illustrate how a customer (organization) provides detailed requirements to the development company. The role of testers in this phase is to analyze the requirements thoroughly, identify potential test cases, and ensure all necessary details are captured. Testers communicate with development or product teams to clarify any gaps in the requirements.
π Test Planning Phase
The test planning phase is detailed here. Once the requirements are understood, the testing team creates a test plan, outlining the testing scope, timeline, and criteria for success. The process differs slightly between the Waterfall and Agile approaches, but both require careful planning to ensure thorough testing. The paragraph highlights the importance of this phase, where responsibilities are assigned, and the testing strategy is formed.
π Test Case Design and Development
In this phase, the focus shifts to designing and developing test cases. Testers use various techniques like equivalence partitioning and boundary value analysis to create detailed test cases based on the requirements. These test cases are structured in a test management tool, categorized by features or requirements. The development of test cases ensures that each functionality of the software is tested systematically.
π₯ Test Environment Setup
This paragraph explains the importance of setting up the test environment. The test environment must be prepared before executing test cases, and depending on the complexity of the project, a separate team may be responsible for this setup. Testers ensure the environment is ready and includes the necessary test data to conduct tests effectively. This phase is crucial for validating the software under real-world conditions.
π Test Execution
Test execution is where testers run the prepared test cases in the test environment. This phase verifies whether the software functions correctly by checking if the test cases pass or fail. Each functionality, such as adding or removing items from a cart in an e-commerce app, is tested. Testers record the outcomes, noting any issues or bugs that arise during execution.
π Test Reporting and Exit Criteria
After test execution, the results are compiled into a test report. This report outlines which test cases passed, which failed, and any defects that need to be resolved by the developers. If there are unresolved defects, the team may decide to accept them for future fixes. The test report is essential for evaluating the overall quality and readiness of the software for production.
π Test Closure Activities
The final phase of the STLC is test closure. After testing is complete, all necessary documentation is prepared and shared, including test plans, summary reports, and artifacts. This documentation is vital for the ongoing maintenance of the software, providing a clear record of what was tested and the outcomes. The test closure phase ensures that the testing process is fully documented and any relevant information is preserved for future reference.
π Agile vs. Waterfall in STLC
This paragraph contrasts how STLC operates in Agile versus Waterfall models. While the phases remain the same, Agile projects involve shorter cycles, meaning testing and reporting happen more frequently (e.g., after each sprint). Waterfall projects tend to run longer, with test closure activities occurring at the end of the project. The Agile approach promotes more collaboration and faster feedback during each sprint.
Mindmap
Keywords
π‘Software Testing Life Cycle (STLC)
π‘Requirement Analysis
π‘Test Planning
π‘Test Case Design and Development
π‘Test Environment Setup
π‘Test Execution
π‘Defect Reporting
π‘Test Reporting
π‘Test Closure
π‘Agile vs. Waterfall
Highlights
Introduction to Software Testing Life Cycle (STLC) and its importance in the software development process.
STLC is a process that fits within the Software Development Life Cycle (SDLC) to ensure thorough testing of any software.
The first phase of STLC is Requirements Analysis, where testers review and understand customer needs and project requirements.
Requirement analysis includes understanding features such as browser compatibility, login functionality, and adding/removing items from a cart in an e-commerce example.
Test Planning is the second phase, where the team decides how the requirements will be tested and develops a test plan.
In Agile, test planning is done in iterations or sprints, and the plan may be shorter compared to Waterfall methodology.
The third phase is Test Case Design and Development, where test cases are created based on design techniques such as equivalence partitioning and boundary value analysis.
Test Environment Setup, the fourth phase, involves preparing the environment where the test cases will be executed, which may require collaboration with a separate team.
Test Execution, the fifth phase, where test cases are executed to verify whether functionalities like adding and removing items work as expected.
Test Reporting, the sixth phase, involves summarizing the test execution results and providing a report on overall testing status, including defects.
In the Test Closure phase, documentation is prepared for the final release, summarizing all test artifacts, plans, and results for future maintenance teams.
STLC applies to both Waterfall and Agile methodologies, but timelines and documentation expectations differ between the two approaches.
In Agile, STLC phases such as reporting and closure are often automated and focus on shorter cycles like sprints, whereas Waterfall typically involves longer cycles.
Agile testing emphasizes collaboration among business analysts, developers, and testers, ensuring that everyone stays aligned during testing.
STLC knowledge is critical for both job interviews and practical work in software testing teams, regardless of the development methodology used.
Transcripts
hello everyone welcome again in this
software testing tutorial
we are going to learn software testing
life cycle
or stlc so what exactly software testing
life cycle
software testing life cycle is a process
that you follow
within the software development life
cycle to test
any application or any software all
right
so when you have software development
life cycle software testing life cycle
fits within the development life cycle
and it is the process
of testing any software so we need to
understand a software testing life cycle
thoroughly before we can
you know get into any software testing
job because
once you get into the software testing
job or you are trying to get into
software testing job you need to
understand
how software testing life cycle or the
process is actually
so that you can you know you know the
process and you can actually
work with the team and come up to speed
very quickly when you join any
organization
so let's understand what exactly
software testing life cycle
is so it is the set of processes or the
phases basically
right so it's it's different phases are
there in software testing life cycle the
first phase
is the requirements analysis now in any
software development the first thing um
that you will get is the requirements
right so the first phase in
stlc as well is a requirements
analysis okay
when we say requirement analysis say for
example i am a software
development organization or say for
example there is an organization abc
named which is the organization who
takes the project to develop software
for the customers
okay now this organization how will they
um you know basically start developing
something
if they don't know what customer wants
right so
there will be a customer okay there will
be a customer
and the customer you know usually it
will be organization right so i've just
made a person there because some person
or a group of person
people will be representing that
customer organization
and they will come down and they'll
you know provide or they'll
give the requirement or they'll dictate
the requirement
to this particular abc organization say
for example
this is the organization right so xyz
is the organization who wants to develop
uh
e-commerce so let's take e-commerce app
ecommerce
website okay so what they'll do is
they'll come to this particular
organization or they'll provide
a bid bidding and there'll be couple of
organization that will be bidding
and then once this organization has
won the bid that yes we'll develop a
e-commerce website for you
they'll start explaining what all they
want in the e-commerce website
right so they'll say we want the website
to work on all different browsers chrome
firefox
right so that's one of the requirement
we want the login functionality using
google account facebook account right
so login functionality need to be there
add
add card add items to cart
okay then remove items to cart
so these are some of the requirement
right so there will be n number of
requirement there so this is just an
example i am showing you
how the requirements will come through
okay
so once all these requirements are being
captured into a document
okay so if it is waterfall approach you
will be having a
lengthy requirements document that will
be capturing all these requirement
how the look and feel will be of the
website and
those requirements will come through to
the abc organization there will be some
team in the abc organization which will
start developing the website okay and
you as a tester will be part of that
team
to basically analyze the requirement and
start
testing once the website is being built
okay
so in the requirement analysis
requirement analysis phase of software
testing life cycle what
you do as a tester or a testing team is
you get go through these requirements
okay
and these requirements you understand
and you analyze those requirements
okay you analyze what all possibilities
what all test cases will be there
and that all analysis happens into the
requirement analysis
phase so basically testing team
understand the requirement if there are
any gaps that provide the feedback to
the requirements team or the development
team or product owner in current case
so if if say for example you are working
on agile development approach
then you will get the requirement in the
form of
user storage so you will analyze those
and based on that analysis you will
start
your testing work okay so once the
analysis is done
the next phase is basically
the planning phase okay so test
planning
okay let me get rid of it
okay so the next phase is test planning
so what happens in test planning so you
have analyzed all the requirement and
now you understand
what all needs to be built and what all
requirements are there and how you are
going to test right
so once you as a team or tester
understand the requirement
then you start the planning now in the
test planning you start with the test
plan
okay so if you are working in the
waterfall approach you will write the
complete master test plan and then the
phase
test plan separately but if it is you
know agile
then in that case you will still do
planning in each iteration or each
sprint
right you will write a quick plan for
whatever requirement say for example you
have
um you know taken requirement one two
three
four five in one sprint okay then for
all these requirements you will start
the plan you will
you'll do some little bit of planning
how you are going to test these
requirement
who is going to test what will be you
know like the timeline so
in in terms of timeline it's anyways uh
two weeks in sprint
but if it is you know like waterfall
then you put all those details into your
test plan right so what is the scope
what is out of scope
what is entry exit criteria so all these
details go into the
test planning when you do test planning
you write the test plan right
um in agile it is not that lengthy test
plan but still
you need to do a fair bit of planning
before you can
actually start testing the user stories
that you
pick into the sprints okay the third
phase
is the test preparation
okay or test development so test case
design and
creation okay
so what you do is basically or i'll say
test case design and development
development okay so you develop your
test cases
so when you say test case design so you
apply all the tests you know um
test design techniques right equivalence
equivalence partitioning
boundary value analysis which i'll
explain in upcoming tutorials
so you'll apply all those techniques to
design your test cases what all test
cases need to be
you know added for the functionality and
then you develop those test cases you
write
those test cases into the test
management tool
so you categorize those into different
you know
feature wise or the requirement-wise you
make those test cases and develop those
test cases
right so that's the third phase the next
phase
is around uh the environment setup okay
so once you are your test cases are
ready so you have this test environment
set up so
usually if your team
testing team has the capability to set
up the test environment
you can do it yourself or there will be
uh you know
a team separate team which will help you
okay so
uh to say for example if you are you
know
i'll say another team
so if say for example your application
is really complex one
which requires a lot of integration
usually in banking sector
that happens or telecom in that case
there will be a separate team which will
maintain the test environment for you
and in the test environment setup all
the test environment
related detail or test environment will
be you know
ready and made available to the testing
team
and then you have to basically ensure
your test data and everything is
is set up there so test data preparation
you have to do
and provide to the separate team or
if your team is capable or testing team
is capable to manage the test
environment test data
they can do the whole environment setup
themselves
but test data you have to provide to the
team if
the test environment is being managed by
other team right
so this fourth phase is basically test
environment setup because
test environment is required for any of
the testing that you need to do right
where you will execute your test cases
that you have written here
so once the test cases have been written
you will have the environment where you
where you'll have this e-commerce say
for example e-commerce website
code deploy and then when you launch the
website in the browser
in the test environment it will be
visible and then you can verify
the website look and feel adding items
so all the features that are available
there
in that particular release you can start
you know testing that so test
environment setup is
necessary so that's the fourth step
fifth step
is test execution
all right so once the
environment is ready and you have test
cases ready
all right so the next step is the test
execution
so how will you verify that the
uh test cases that you have developed
verify are meet or pass or fail
right so those that
that happens only when you will execute
so when
you execute your test cases you verify
that the website is being launched okay
so you open the browser you launch the
website
and then you add the item to the cart if
the item is getting added
the test case is passive for example you
have a test case for adding item into
the card
if the item you remove gets removed
successfully
that test cases pass if any of these you
know
um operations fail then the test case
fail right so in the test execution you
execute the test case
and then verify whether the test case
got passed or failed
so that's the another phase of software
testing
life cycle so these are step-by-step
phases that happen
into the software testing life cycle or
sdlc
so after test execution has been
completed
right so after test execution has been
completed the next
phase is the
exit criteria and reporting so basically
test reporting you can say
test reports okay
or test reporting so in test reporting
what you do is once your test cases
or all the testing that has been planned
has been completed you need to provide
the report
right so say for example execution
happened if there were test cases that
failed
then those test cases will be reassigned
to the developer or basically the
defects will be resigned to the
developer to fix
they'll come back to you to the testing
to verify again
and once all the testing has been passed
then you provide the report or
even if there are open defects and those
defects are accepted by the
relevant stakeholders and they say yes
these defects we will fix in next
release
then you start preparing the test report
and what you prepare
prepare in the report is how overall
testing went through what all testing
has been done what was in scope
and what is the overall confidence right
so which will help you to decide
or which will help the team to decide go
and know whether they
need to deploy in production or they
want to you know like
fix more defector or make the software
more stable
right so test reporting um is the
reports that you produce
after the testing has been done right
and then the seventh phase is around
the test closure okay test closure
so test closure what you do is in test
closure
now after the overall testing has been
completed
and the you know software has been
deployed in
production so in test closure activities
what you do is you produce all the
documents that
are helpful for other teammates say for
example there is another team who is
maintaining that particular software in
production
then in the closer documentation you
have all the documentation around
the test cases where the test cases are
what testing has been done what all
artifacts have been produced in terms of
test plan
summary reports etc all those details
along with the development document need
to be
you know produced for the test closure
activity so once
the complete testing has been completed
or
the overall testing for the project has
been completed you provide
the test closure summary report of the
test closure documentation
okay so all the test closure phase has
the activities different activities and
depending on
which type of software you're testing
based on the context
you have to provide the relevant
documentation for
that okay now these are
the seven phases in software
testing life cycle right so this is the
process of software testing life cycle
which you need to understand and
understand very clearly for interview
purposes and even
for working in any of the software
testing project
now this stlc remains
same for the waterfall or agile it
doesn't matter the only difference
basically happens is you know in the
closure
activities you do not provide closer
reports in agile for
every sprint okay you do have the
reports but those reports are automated
out of the tools say for example if you
are using
jira they are out of the jira itself you
have the gadgets and you can pull the
reports of the execution for each sprint
um
you know automatically in india but in
agile the test closure report will
happen
off for the release not every sprint
right so which is basically
similar what we do in the waterfall
approach the only difference is in the
terms of timeline in waterfall
project might run for a year but agile
usually the delivery happens every month
or you know every three months at the
max
so you have to provide disclosure you
know reports or
activities after every you know three
months in a child or after every month
right it's as per the organization's
requirement
but in terms of phases it's same you
have to follow
you know similar uh phases or
the test activities in software testing
life cycle it doesn't matter you are
working v model
waterfall model or agile scrum
approaches right so
if you are working in two weeks two to
four weeks
scrum in a child you will do
you will do user story analysis which is
requirement analysis
based on that you will understand the
acceptance criteria if there are any
gaps you will discuss with the business
analyst
then you will plan the test cases right
or you will do the planning
what strategy you will apply to test the
user stories that you have picked in
these
in this two to four week cycle right in
the sprint
and you will develop a quick short one
to two page plan
okay that plan will be for your sprint
for the iteration of two to four weeks
then you will design your test cases
okay in the tool you will quickly design
the scenarios and the test cases
and this is all very collaborative in
agile that's the good thing that you
will be
on a daily basis you will be
communicating with business analysts
with the developers
to understand the overall you know
requirement and
make making sure that everyone is on the
same page okay
then in the test environment setup
mostly another team does
that if you are doing it um you know you
you do it
you know quickly within the sprint and
then execute and then report which is
automated
right so stlc
understanding of stlc how it is you know
used within software development life
cycle is very important so these are
some of the key
steps and points that you need to
understand for working in any of the
software testing
teams or for interview purposes
so that's all for this tutorial hope it
was helpful and clear
please do share and subscribe and thank
you very much for watching
Browse More Related Video
Software Testing Tutorial #6 - Software Development Life Cycle (SDLC)
ISTQB FOUNDATION 4.0 | Tutorial 10 | 2.1 Impact of SDLC on Testing | Good Practices of Testing CTFL
Project Based Internship Klinikgo Health System Analyst - Company Coaching Video 1
Lecture 07: Life Cycle Model (Contd.)
Software Testing Tutorial #9 - V Model in Software Engineering
Agile vs Waterfall Methodology | Difference between Agile and Waterfall | Intellipaat
5.0 / 5 (0 votes)