Upload
toshi-patel
View
146
Download
0
Embed Size (px)
Citation preview
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
• Benefits2
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 stayfocused 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/customerpoint of view
1. Simple stakeholder analysis and impact estimation would do wonders
2. After specifying quantified quality requirements, risk assessment is a tentimes 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 risk9
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 riskfunctions
• Improved customer confidence
– due to customer involvement and good reportingand progress tracking
10
Regression testing
• Regression testing is the execution of a set of
test cases on a program in order to ensure that itsrevision does not produce unintended faults, does not"regress" - that is, become less effective than it hasbeen in the past
• Regression testing is a type of software testing thatseeks to uncover new software bugs, or regressions,in existing functional and non-functional areas of asystem after changes such as enhancements, patchesor 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