0% found this document useful (0 votes)
168 views24 pages

STLC

This document discusses the Software Testing Life Cycle (STLC). It defines STLC and explains that it is a sequence of testing activities performed by the testing team to ensure software quality. It then describes the six major phases of STLC: Requirement Analysis, Test Planning, Test Case Designing, Test Environment Setup, Test Execution, and Test Closure. The document also compares STLC to the Software Development Life Cycle (SDLC), noting they are related but STLC only focuses on testing phases. Finally, it outlines seven fundamental principles of software testing.

Uploaded by

Aryaman Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
168 views24 pages

STLC

This document discusses the Software Testing Life Cycle (STLC). It defines STLC and explains that it is a sequence of testing activities performed by the testing team to ensure software quality. It then describes the six major phases of STLC: Requirement Analysis, Test Planning, Test Case Designing, Test Environment Setup, Test Execution, and Test Closure. The document also compares STLC to the Software Development Life Cycle (SDLC), noting they are related but STLC only focuses on testing phases. Finally, it outlines seven fundamental principles of software testing.

Uploaded by

Aryaman Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Unit I

Testing Fundamental Principles

By Dr. Vibha Kaw Raina


STLC - Overview
STLC stands for Software Testing Life Cycle. STLC is a sequence of
different activities performed by the testing team to ensure the quality
of the software or the product.

• STLC is an integral part of Software Development Life Cycle


(SDLC). But, STLC deals only with the testing phases.

• STLC starts as soon as requirements are defined or SRD (Software


Requirement Document) is shared by stakeholders.

• STLC provides a step-by-step process to ensure quality software.


STLC - Overview
• In the early stage of STLC, while the software or the product is
developing, the tester can analyze and define the scope of testing,
entry and exit criteria and the Test Cases. It helps to reduce the test
cycle time along with better quality.

• As soon as the development phase is over, the testers are ready


with test cases and start with execution. This helps to find bugs in
the initial phase.
STLC Phases

STLC has the following different phases, but it is not mandatory to


follow all phases. Phases are dependent on the nature of the
software, or the product, time and resources allocated for the testing
and the model of SDLC that is to be followed.
STLC Phases

There are 6 major phases of STLC −

Requirement Analysis − When the SRD is ready and shared with the stakeholders,
the testing team starts high level analysis concerning the AUT (Application under
Test).

Test Planning − Test Team plans the strategy and approach.

Test Case Designing − Develop the test cases based on scope and criteria.
Test Environment Setup − When integrated environment is ready to validate the
product.
Test Execution − Real-time validation of product and finding bugs.
Test Closure − Once testing is completed, matrix, reports, results are documented.
COMPARISON - STLC and SDLC
 

• STLC is part of SDLC. It can be said that STLC is a subset of the


SDLC set.
• STLC is limited to the testing phase where quality of software or
product ensures. SDLC has vast and vital role in complete
development of a software or product.
• However, STLC is a very important phase of SDLC and the final
product or the software cannot be released without passing
through the STLC process.
• STLC is also a part of the post-release/ update cycle, the
maintenance phase of SDLC where known defects get fixed or a
new functionality is added to the software.
COMPARISON - STLC and SDLC
 

Phase SDLC STLC

 Business Analyst  Testing team reviews


gathers requirements. and analyzes the SRD
 Development team document.
analyzes the  Identifies the testing
requirements. requirements - Scope,
 After high level, the Verification and
development team Validation key points.
Requirement Gathering starts analyzing from  Reviews the
the architecture and requirements for
the design logical and functional
perspective. relationship among
various modules. This
helps in the
identification of gaps
at an early stage.
COMPARISON - STLC and SDLC
 

 The architecture of  In STLC, either the


SDLC helps you Test Architect or a
develop a high-level Test Lead usually
and low-level design plan the test
of the software based strategy.
on the requirements.  Identifies the
Design  Business Analyst testing points.
works on the mocker  Resource
of UI design. allocation and
 Once the design is timelines are
completed, it is finalized here.
signed off by the
stakeholders.
COMPARISON - STLC and SDLC
 

 Development  Testing team


team starts writes the test
developing the scenarios to
software. validate the
 Integrate with quality of the
different systems. product.
 Once all  Detailed test cases
integration is are written for all
Development
done, a ready to modules along
test software or with expected
product is behaviour.
provided.  The prerequisites
and the entry and
exit criteria of a
test module are
identified here.
COMPARISON - STLC and SDLC
 

 Development  The Test team


team sets up a confirms the
test environment set
environment up based on the
with developed prerequisites.
product to  Performs smoke
Environment Set up validate. testing to make
sure the
environment is
stable for the
product to be
tested.
 The actual testing  System Integration
is carried
COMPARISON out in
- STLC and SDLC testing starts based
  It
this phase. on the test cases.
includes unit  Defects reported, if
testing, any, get retested
integration and fixed.
testing, system Regression testing

testing, defect is performed here
retesting, and the product is
regression testing, signed off once it
etc. meets the exit
Testing  The Development criteria.
team fixes the bug
reported, if any
and sends it back
to the tester for
retesting.
 UAT testing
performs here
after getting sign
off from SIT
testing.
COMPARISON - STLC and SDLC
 

 Once sign-off is  Smoke and sanity


received from testing in
various testing production
team, application environment is
is deployed in prod completed here as
environment for soon as product is
Deployment/ Product real end users. deployed.
Release
 Test reports and
matrix preparation
are done by
testing team to
analyze the
product.
COMPARISON - STLC and SDLC

 It covers the  In this phase,


post the maintaining
deployment of test cases,
supports, regression suits
enhancement and automation
Maintenance
and updates, if scripts take
any. place based on
the
enhancement
and updates.
STLC - Testing Fundamental Principles
 

• The common objective of testing is finding bugs as early as


possible. And, once the bugs are fixed, make sure it is working as
expected and not breaking any other functionality.
• To achieve these goals, seven basic principles are given for
software testing −
What Testing shows?
Testing can show that defects are present but there is no way to prove
that there is no defect in the product. Testing phases make sure that the
application under test is working based on the given requirement and
it helps to reduce the probability of undiscovered defects in the
application. But, even if no defects are found, it does not mean that it
is correct. We can assume that AUT(Application under test) is
matching with our exit criteria and maintaining the requirements
according to SRD.
Testing Fundamental Principles
 

• Is Exhaustive Testing possible?

100% coverage or testing of all combinations of inputs and


possible combinations are not possible except of trivial
cases. Instead of exhaustive testing, risk analysis and
priorities are used to define the scope of testing. Here, most
of the real time scenarios can consider including most
probable negative scenario as well. This will help us track
the failure.
Testing Fundamental Principles
 

• Early Testing
Testing activities should start as soon as possible and be
focused on defined objectives in Test Strategy and expected
results. Early stage of testing helps to identify Requirement
Defect or design level discrepancies. If these types of bugs
are captured in initial stage, it helps us save time and is cost-
effective too. The answer to why testing should start at an
early stage is very simple – as soon as the SRD is received,
the testers can analyze the requirement from the testing
perspective and can notice a requirement discrepancy.
Testing Fundamental Principles
 

• Defect Clustering

Based on previous product defect analysis, it can be said that most of


the defects are identified from small set of modules which are critical
for application. These modules can be identified based on complexity,
different system interaction or dependency on different other modules.
If testers can identify these crucial modules, they can focus more on
these modules to identify all possible bugs. In a study, it is found that
8 out of 10 defects are identified from 20% functionality of AUT.
Testing Fundamental Principles
 

Pesticide Paradox
• What is pesticide paradox – if pesticides are frequently used on
crops, there comes when the insects develop a certain kind of
resistance and gradually the pesticides thus sprayed seem to be
ineffective on the insects.
• The same concept is applicable on testing also. Here, insects are
bugs while pesticides are test cases that are used to run again and
again. If the same sets of test cases are executed again and again,
these test cases become ineffective after certain timeframe and the
testers will not be able to identify any new defect.
• To overcome these conditions, test cases should be revised and
reviewed time to time and new and different test cases can be
added. This will help in identifying new defects.
Testing Fundamental Principles
Testing is Context Dependent
• This principle states that two different type of application can’t be
tested using same approach until both applications are of same
nature. For example, if a tester uses the same approach for Web
Based Application and Mobile Application, that is completely
wrong and there is high risk of poor quality of product release.
• Testers should use different approaches, methodologies, techniques
and coverage for different types and nature of applications.
Testing Fundamental Principles
 

Absence of Error – Fallacy


• This principle states finding defects and fixing them until
the application or system is stable, is time consuming and
eats up on the resources. Even after fixing 99% of the
defects, there is a high risk of unstable application.
• The first essential thing is to verify the stability of the
application and the prerequisites of the environment. If
these two conditions fulfill, only then we can start with
the detailed testing.
 

References

• https://www.softwaretestinghelp.com/7-principles-of-software-
testing/
• https://www.geeksforgeeks.org/software-engineering-seven-pri
nciples-of-software-testing/
• https://www.tutorialspoint.com/stlc/stlc_testing_fundamental_
principles.htm

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy