KEMBAR78
risk based testing and regression testing | PPTX
Risk Based Testing and
Regression Testing
Presented by:
Toshi Patel
Mtech (3ed sem)
1
Contents
• Introduction to testing
• Need of testing
• Risk Based Testing
• Objectives
• Testing is risk based
• Benefits
• Advantages of Risk based testing
• Regression Testing
• Problems and challenges
• Software regression process
• Software regression strategy
• Benefits 2
Introduction to
Testing
• According to IEEE Standard 829-2008-
Testing is the process of analyzing a software item to
detect the differences btw existing and required
conditions i.e. bugs and to evaluate the features of the
software item
• According to IEEE Standard 610.12-1990-
Testing is the process of operating a system or
component under specified condition, observing or
recording the results, and making an evaluation of some
aspect of the system or component
3
Need Of Testing
• Inspecting the products in order to determine whether
they meet the requirements
• Detecting the defects of the system
• Assurance of products without defects
• In reality, there is no perfect testing system that can
detect all defects. It reduces defect risks as much as
possible
• Testing promotes quality of products
4
Risk Based Testing
• Risk based testing is basically a testing done for the
project based on risks
• Risk based testing uses risk to prioritize and emphasize
the appropriate tests during test execution
• Risk-based testing involves key business and technical
project stakeholders to align the focus and sequence of
testing with what quality means
• Risk-based testing also means managing project risks,
which are possible events or outcomes that endanger
successful completion of the project
5
Objectives
• Risk-based testing starts early in the project, identifying risks to
system quality and using that knowledge of risk to guide testing
planning, specification, preparation and execution
• Risk-based testing involves measuring how well we are doing
at finding and removing defects in critical areas
• Risk-based testing can also involve using risk analysis to
identify proactive opportunities to remove or prevent defects
through non-testing activities and to help us select which test
activities to perform
6
Testing is risk-based
• Risk-based testing includes the following steps:
1. Make a prioritized list of risks
2. Perform testing that explores each risk
3. As risks evaporate and new ones emerge, adjust your test effort to stay
focused on the current risk set
• Risk analysis is a real discipline
• Risk analysis continues throughout the project
• Risk analysis for testing must always include the user/customer
point of view
1. Simple stakeholder analysis and impact estimation would do wonders
2. After specifying quantified quality requirements, risk assessment is a ten
times easier
7
Testing is risk-based (cont)
• Risks collected by Heuristic analysis :
• Bottom-Up (Inside-Out):
• Vulnerabilities, Threats and Victims per module
• Top-Down (Outside-In): Assessing predefined risk categories
• Quality criteria
– "Functionality, Reliability, Usability, Efficiency,
Maintainability,
• Generic risk lists
– "anything new is more risky than tried-and-true", "distribution
brings its own risks"
• Domain specific risk catalogs
• Collected experiences from fault analysis on the spot
• Project post-mortem for high level findings
8
Benefits
• Running the tests in risk order gives the highest
likelihood of discovering defects in severity order
• Allocating test effort based on risk is the most efficient
way to minimize the residual quality risk upon release
• Measuring test results based on risk will allows the
organization to know the residual level of quality risk
during test execution and to make smart release
decisions
• If schedule requires, dropping tests in reverse risk order
reduces the test execution period with the least possible
increase in quality risk
9
Advantages of Risk Based Testing
• Improved Quality
– all critical functions tested
• Reduced Time and Money in Testing
– effort not wasted on non critical or low risk
functions
• Improved customer confidence
– due to customer involvement and good reporting
and progress tracking
10
Regression testing
• Regression testing is the execution of a set of
test cases on a program in order to ensure that its
revision does not produce unintended faults, does not
"regress" - that is, become less effective than it has
been in the past
• Regression testing is a type of software testing that
seeks to uncover new software bugs, or regressions,
in existing functional and non-functional areas of a
system after changes such as enhancements, patches
or configuration changes, have been made to them
11
Problem And Challenges
• Major problems in software regression testing:
- How to identify software changes in a systematic
way?
- REQ. specification changes
- Design specification changes
- Implementation (or source code) changes
- User manual changes
- Environment or technology changes
- Test changes
12
Software Regression Process
Step #1: Software Change Analysis
- Understand and analyze various software
changes
Step #2: Software Change Impact Analysis
- Understand and analyze software change
impacts
Step #3: Define Regression Test Strategy and Criteria
Step #4: Define, select, and reuse test cases to form a
regression test suite
13
Software Regression Process
Step #5: Perform re-testing at the different levels
- re-testing at the unit level
- re-testing at integration level
- re-testing at the function level
- re-testing at the system level
Step #6: Report and analyze regression test results
14
Software Regression Strategy
• Software test strategy provides the basic strategy and
guidelines to test engineers to perform software
regression testing activities in a rational way
• Software Regression strategy usually refers to-
a rational way to define regression testing scope,
coverage criteria, re-testing sequence (or order) and
re-integration orders
• Software regression test models are needed to support
the definition of software regression test strategy, test
cases, and coverage criteria
15
Software Regression Strategy(cont)
• Typical regression test models:
control flow graph, state-based behavior diagram
object-oriented class diagram
scenario-based model
component-based Regression model
16
Benefits
• Regression testing increases our chances of detecting
bugs caused by changes to a software and
application- either enhancements or defect fixes
• Regression testing also detects undesirable side
caused always by changing the operating
environment
• Regression test is much useful for a new way about
doing integration testing
17
18

risk based testing and regression testing

  • 1.
    Risk Based Testingand Regression Testing Presented by: Toshi Patel Mtech (3ed sem) 1
  • 2.
    Contents • Introduction totesting • Need of testing • Risk Based Testing • Objectives • Testing is risk based • Benefits • Advantages of Risk based testing • Regression Testing • Problems and challenges • Software regression process • Software regression strategy • Benefits 2
  • 3.
    Introduction to Testing • Accordingto IEEE Standard 829-2008- Testing is the process of analyzing a software item to detect the differences btw existing and required conditions i.e. bugs and to evaluate the features of the software item • According to IEEE Standard 610.12-1990- Testing is the process of operating a system or component under specified condition, observing or recording the results, and making an evaluation of some aspect of the system or component 3
  • 4.
    Need Of Testing •Inspecting the products in order to determine whether they meet the requirements • Detecting the defects of the system • Assurance of products without defects • In reality, there is no perfect testing system that can detect all defects. It reduces defect risks as much as possible • Testing promotes quality of products 4
  • 5.
    Risk Based Testing •Risk based testing is basically a testing done for the project based on risks • Risk based testing uses risk to prioritize and emphasize the appropriate tests during test execution • Risk-based testing involves key business and technical project stakeholders to align the focus and sequence of testing with what quality means • Risk-based testing also means managing project risks, which are possible events or outcomes that endanger successful completion of the project 5
  • 6.
    Objectives • Risk-based testingstarts early in the project, identifying risks to system quality and using that knowledge of risk to guide testing planning, specification, preparation and execution • Risk-based testing involves measuring how well we are doing at finding and removing defects in critical areas • Risk-based testing can also involve using risk analysis to identify proactive opportunities to remove or prevent defects through non-testing activities and to help us select which test activities to perform 6
  • 7.
    Testing is risk-based •Risk-based testing includes the following steps: 1. Make a prioritized list of risks 2. Perform testing that explores each risk 3. As risks evaporate and new ones emerge, adjust your test effort to stay focused on the current risk set • Risk analysis is a real discipline • Risk analysis continues throughout the project • Risk analysis for testing must always include the user/customer point of view 1. Simple stakeholder analysis and impact estimation would do wonders 2. After specifying quantified quality requirements, risk assessment is a ten times easier 7
  • 8.
    Testing is risk-based(cont) • Risks collected by Heuristic analysis : • Bottom-Up (Inside-Out): • Vulnerabilities, Threats and Victims per module • Top-Down (Outside-In): Assessing predefined risk categories • Quality criteria – "Functionality, Reliability, Usability, Efficiency, Maintainability, • Generic risk lists – "anything new is more risky than tried-and-true", "distribution brings its own risks" • Domain specific risk catalogs • Collected experiences from fault analysis on the spot • Project post-mortem for high level findings 8
  • 9.
    Benefits • Running thetests in risk order gives the highest likelihood of discovering defects in severity order • Allocating test effort based on risk is the most efficient way to minimize the residual quality risk upon release • Measuring test results based on risk will allows the organization to know the residual level of quality risk during test execution and to make smart release decisions • If schedule requires, dropping tests in reverse risk order reduces the test execution period with the least possible increase in quality risk 9
  • 10.
    Advantages of RiskBased Testing • Improved Quality – all critical functions tested • Reduced Time and Money in Testing – effort not wasted on non critical or low risk functions • Improved customer confidence – due to customer involvement and good reporting and progress tracking 10
  • 11.
    Regression testing • Regressiontesting is the execution of a set of test cases on a program in order to ensure that its revision does not produce unintended faults, does not "regress" - that is, become less effective than it has been in the past • Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them 11
  • 12.
    Problem And Challenges •Major problems in software regression testing: - How to identify software changes in a systematic way? - REQ. specification changes - Design specification changes - Implementation (or source code) changes - User manual changes - Environment or technology changes - Test changes 12
  • 13.
    Software Regression Process Step#1: Software Change Analysis - Understand and analyze various software changes Step #2: Software Change Impact Analysis - Understand and analyze software change impacts Step #3: Define Regression Test Strategy and Criteria Step #4: Define, select, and reuse test cases to form a regression test suite 13
  • 14.
    Software Regression Process Step#5: Perform re-testing at the different levels - re-testing at the unit level - re-testing at integration level - re-testing at the function level - re-testing at the system level Step #6: Report and analyze regression test results 14
  • 15.
    Software Regression Strategy •Software test strategy provides the basic strategy and guidelines to test engineers to perform software regression testing activities in a rational way • Software Regression strategy usually refers to- a rational way to define regression testing scope, coverage criteria, re-testing sequence (or order) and re-integration orders • Software regression test models are needed to support the definition of software regression test strategy, test cases, and coverage criteria 15
  • 16.
    Software Regression Strategy(cont) •Typical regression test models: control flow graph, state-based behavior diagram object-oriented class diagram scenario-based model component-based Regression model 16
  • 17.
    Benefits • Regression testingincreases our chances of detecting bugs caused by changes to a software and application- either enhancements or defect fixes • Regression testing also detects undesirable side caused always by changing the operating environment • Regression test is much useful for a new way about doing integration testing 17
  • 18.