EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Lecture 21
Regression Testing Path Spectra
Lecture 21 Regression Testing Path Spectra EE 382V Spring 2009 - - PowerPoint PPT Presentation
Lecture 21 Regression Testing Path Spectra EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Todays Agenda (1) Regression Test Selection Presentation by David (skeptic) Path Spectra Presentation by Sidd
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Regression Testing Path Spectra
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Java program
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
provide confidence that
quality.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
introduced due to changes.
test suite.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
matrix C.
matrix C, identify a subset of T that can identify all regression faults. (Safe RTS)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
and run test cases.
provide the most benefit when the time is limited?
test cases in T?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
between P and P’.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Test Type Output Edges Traversed t1 Empty File (entry, D), (D, S1), (S1, S2) (S2, P3) (P3, S9), (S9, S10), (S10, exit) t2 1 Error (entry, D) (D, S1), (S1, S2), (S2, P3), (P3, P4), (P4, S5), (S5, exit) t3 1 2 3 2 (entry, D) (D, S1), (S1, S2), (S2, P3), (P3, P4), (P4, S6), (S6, S7), (S7, S8), (S8, P3), (P3, S9), (S9, S10), (S10, exit)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Test Type Output Edges Traversed t1 Empty File (entry, D), (D, S1), (S1, S2) (S2, P3) (P3, S9), (S9, S10), (S10, exit) t2 1 Error (entry, D) (D, S1), (S1, S2), (S2, P3), (P3, P4), (P4, S5), (S5, exit) t3 1 2 3 2 (entry, D) (D, S1), (S1, S2), (S2, P3), (P3, P4), (P4, S6), (S6, S7), (S7, S8), (S8, P3), (P3, S9), (S9, S10), (S10, exit)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Test History Edge TestsOnEdge(edge) (entry, D) 111 (D, S1) 111 (S1, S2) 111 (S2, P3) 111 (P3, P4) 011 (P3, S9) 101 (P4, S5) 010 (P4, S6) 001 (S5, exit) 010 (S6, S7) 001 (S7, S8) 001 (S8, P3) 001 (S9, S10) 101 (S10, exit) 101
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Select all test cases that visited (P4, P5) and (S6, S7)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Program Differencing Tool => Identify Changes between Po and Pn
Profiling Tool => Collect Coverage of T on Po Regression Test Selection
Delta
(Dangerous Entities)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
software?
al.’s RTS for procedural languages?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
dynamic binding, and (3) exception handling
handle in RTS?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
dynamic binding, and (3) exception handling
handle in RTS?
type of a receiver object.
6 void bar(A p) { 7 A.foo(); 8 p.m(); 9 } 4 public void m(){...}; 1 class B extends A { 2 }; 3 class C extends B { 5 }; 6 void bar(A p) { 7 A.foo(); 8 p.m(); 9 } 4 public void m(){...}; 1 class B extends A { 2 }; 3 class C extends B { 5 };
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
main code and its libraries?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
main code and its libraries?
the internal methods override external methods.
class B extends A { public void foo() {...}; } class C extends B { public void bar() {...}; }; class B extends A { public void foo() {...}; public void bar() {...}; } class C extends B { };
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
2001 techniques?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
techniques?
are affected by modification can be partitioned using a class hierarchy analysis
subclasses as well as classes that have direct dependence on them through explicit references.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
does not use partitioning analysis)
(without CFG edge level analysis)
selected tests) vs. re-running all tests
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
with applications to the Y2K problem
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
collector was called.
true and false?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
run on input year = 2001?
program execution in comparison to input year= {1900, 1901, 1902, .... 1999}?
set of inputs (in order to do this profile comparison)?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
how can we reason about path-profile differences (divergences?
about program path profiles for a set of inputs?
paths?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
desirable program behavior and to prevent undesirable program behavior (regression faults) through testing.
subset of T that have a potential to reveal regression faults.
tool, (2) coverage gathering tool, and (3) test selection algorithm.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
practical impact on software evolution.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
by source code change between Po and Pn?
such representation?
concisely represent the differences? If so, can inconsistencies be used for identifying potential bugs introduced by code modifications?
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
knowledge discovery => software metrics & visualization
project final report.