Title: Analyzing Regression Test Selection Techniques
1Analyzing Regression Test Selection Techniques
2Outline
- Introduction
- Concepts and Assumptions
- Analysis Framework
- Examples Techniques
- Conculsion and Discussion
3Outline
- Introduction
- Concepts and Assumptions
- Analysis Framework
- Examples Techniques
- Conculsion and Discussion
4Introduction
- What is Regression Testing?
- -Everybody knows
- Retest-all strategy VS. Test Selection
- Notions P,P,S,S,T,T,
5Typical Selective Retest Process
1. Select T'T, a set of tests to execute on P'
Regression Test Selection Problem
2.Test P with T, to establish the correctness
of P with respect to T
Test Suite Execution Problem
3.If necessary, create T, a set of new
functional or structural tests for P
Coverage Identification Problem
4.Test P with T, to establish the correctness
of P with respect to T
Test Suite Execution Problem
5.Create T, a new test suite and test history
for P, from T, T and T
Test Suite Maintenance
6Typical Selective Retest Process
1. Select T'T, a set of tests to execute on P'
Regression Test Selection Problem
2.Test P with T, to establish the correctness
of P with respect to T
Test Suite Execution Problem
3.If necessary, create T, a set of new
functional or structural tests for P
Coverage Identification Problem
4.Test P with T, to establish the correctness
of P with respect to T
Test Suite Execution Problem
5.Create T, a new test suite and test history
for P, from T, T and T
Test Suite Maintenance
7Test Selection Techniques
- Specification-based VS. Code-based
- Three distinct goals of code-based test selection
techniques
-Coverage Techniques
Compare and Evaluation !!!
-Minimization Techniques
-Safe Techniques
8Outline
- Introduction
- Concepts and Assumptions
- Analysis Framework
- Examples Techniques
- Conculsion and Discussion
9Concepts and Assumptions
- Fault-realing for P cause P to fail
-No Effective procedure by which to find tests in
T that are fault-realing for P 1
-Under certain conditions, a technique can select
a Superset of the set of fault-revealing for P
- Modification-revealing casue the outputs of P
and P to differ.
10Concepts and Assumptions
- Modification-revealing Fault-revealing ???
- P-Correct-for-T Assumption For each test t in T,
when P was tested with t, P halted and produced
the correct output
- Obsolet-Test-Identification Assumption There is
an effective procedure for determining, for each
test in t, whether t is obsolete for P.
Test t is obsolete for P if and only if t either
specifies an input to P that, according to S,
is invalid for P, or t specifies an invalid
input-output relation for P
11Concepts and Assumptions
- Up to now, we can find the fault-revealing test
cases by - 1. Run our procedure for identifying
obsolete test in T. - 2. Remove them.
- 3. Find the modification-revealing test
cases. - - In the set of non-obsolete test cases,
modification-revealingfault-revealing -
12Concepts and Assumptions
Obsolete
Fault-Revealing
Nonbsolete
Fault-Revealing Modification-Revealing
???
13Concepts and Assumptions
- Modification-traversing a test t is
modification-traversing for P and P if and only
if it (a) executes new or modified code in P, or
(b) formerly executed code that has since been
deleted
14Concepts and Assumptions
Obsolete
Fault-Revealing
Nonbsolete
Fault-Revealing Modification-Revealing
???
Modification-Traversing
15Concepts and Assumptions
- Controlled Regression Testing Assumption when P
is tested with t, we hold all factors that might
infuence the output of P, except for the code in
P, constant with respect to their states when we
tested P with t.
16Why We Need Define These Concepts and Assumptions?
- Evaluate test selection techniques in terms of
their ablities to select and avoid discarding
fault-revealing tests.
- Three classes can be used to distinguish
techniques even CRTA is not satisfied.
- Coverage techniques may omit tests from T that
may reveal faults in P
17Outline
- Introduction
- Concepts and Assumptions
- Analysis Framework
- Examples Techniques
- Conculsion and Discussion
18Analysis Framework
- Incusiveness
- Precision
- Efficiency
- Generality
19Analysis Framework-Inclusiveness
20Analysis Framework-Inclusiveness
- There is no algorithm to determine the
inclusiveness!
- We can prove M is not safe.
- We can compare techinques in terms of
inclusiveness
- We can experiment to approximate
21Analysis Framework-Precision
22Analysis Framework-Precision
- There is no algorithm to determine the precision!
- We can compare techinques in terms of precision.
- We can prove M is not precise
- We can show M is precise.
- We can experiment to compare.
23Analysis Framework-Efficiency
- Time Space
- Cost of selecting T lt the cost of running T-T
- Three Factors
- 1.preliminary phase vs. critical phase
- 2.automatability
- 3. calculation informatin on program
modifications - 4.ability to handle multiple modifications
24Analysis Framework-Generality
- Should function for some identifiable and
practical class of program
- Should handle realistic program modifications
- Should be independent of assumptions about
testing or maintenance enviroments.
- Should be independent of particular program
analysis tools
- Should support intraprocedural or interprocedural
test selection
25Analysis Framework-Tradeoffs
- Precision vs. Efficiency
- - both safe and unsafe
- Inclusiveness vs.Efficiency
- -not safe
- Generality vs. Inclusiveness, Efficiency or
Precision
- Multiple modication vs. Efficiency
26Outline
- Introduction
- Concepts and Assumptions
- Analysis Framework
- Examples Techniques
- Conculsion and Discussion
27Refresh
Obsolete
Fault-Revealing
Nonbsolete
Fault-Revealing Modification-Revealing
Modification-Traversing
28Depiction of inclusiveness and precision
29Retest-all
30Optimum
31Examples Dataflow
- Caculate d-u pairs for both P and P
- Identify and select d-u pairs that are new in, or
modified for P
- Some techniques also select deleted d-u pairs
- Incremental / Nonincremental
32Examples Dataflow-Inclusion
33Examples Dataflow-Precision
34Examples Dataflow
35Examples Dataflow-Effiency
- Incremental- O(TPP)
- Nonincremental-
-
36Examples Dataflow-Generity
- Applied to procedural programs generally.
- Function for all program changes except those
that do not alter d-u association - Some techiques applied to intraprocedural
programs while others applied to interprocedural
programs - Incremental approach requires incremental
dataflow analysis tools.
37Examples Graph Walk Techniques
- Collects traces for tests with CFG edges.
- Performs synchronous depth-first traversals of
the two graphs, selects those are not lexically
identical.
38Examples Graph Walk Techniques-Inclusiveness
- 1 shows that for controlled regression testing,
the techniques will select all modification-traver
sing test. - So, it is safe.
39Examples Graph Walk Techniques-Precision
- Not precise
- Multiply-visisted-node
40Examples Graph Walk Techniques
41In practice
42Improved version
43Examples Graph Walk Techniques-Efficiency
- Generally
- Property not hold1
44Examples Graph Walk Techniques-Generality
- Apply to procedural languages generally
- All type of modifications
- Both interprocedure and intraprocedure
- No assumption on test suite or coverage
- Require tools for constructing dataflow and tools
for dataflow analysis
45Examples Path Analysis
- Takes set of program paths in P expressed as an
algebraic expression
- Manipulates the expression to get a set of
cycle-free exemplar paths.
- Compare such paths in P with P
- Tests that traverse modified exemplar paths will
be selected
46Examples Path Analysis-Inclusiveness
- Selects only modified paths and omits the cancel
and new paths. - Not safe.
47Examples Path Analysis-Precision
- It will select all the test cases that are
modification-traversing and execute modified
exemplar paths.
48Examples Path Analysis
49Examples Path Analysis-Efficiency
50Examples Path Analysis-Generality
- Assumption low-level program designs are
depicted by language-independent algebraic
representations. - Does not handle test cases for additions or
deletings of code. - Does not require any coverage criterian or test
generation technique. - Require tool for collecting traces at the
statement level.
51Conclusions
- Framework for evaluating regression test
selection technique that classifies techniques in
terms of inclusiveness, precision, efficiency,
and generality. - Several test selection techiques are evaluated
52Reference
- 1G.Rotherel. Efficient, Effective Regression
Testing Using Safe TestSelection Techniques.