DejaVOO: A Regression Testing Tool for Java                                                                        Softwar...
Upcoming SlideShare
Loading in …5

DejaVOO: A Regression Testing Tool for Java Software


Published on

Published in: Business, Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

DejaVOO: A Regression Testing Tool for Java Software

  1. 1. DejaVOO: A Regression Testing Tool for Java Software * Alessandro Orso, Donglin Liang, Mary Jean Harrold and Manas Tungare — Georgia Institute of Technology 1. Regression Testing 5. Our Safe Regression Test Selection Algorithm: Characteristics • Performed on new versions of the software to provide confidence that: • It handles Java object-oriented features resulting in simple components and complex – the changed parts behave as intended interactions – the unchanged parts are not adversely affected by the modifications – inheritance • Can be very expensive, especially in some contexts – polymorphism and dynamic binding – daily re-testing after nightly builds – exception handling – frequent re-testing during development • It handles incomplete programs that play an important role in object-oriented software – for the extreme programming paradigm – components – applications using libraries (e.g., AWT) – subsystems 2. Regression Test Selection 6. DejaVOO: An Implementation of our Regression Test Selection A safe algorithm T-T’ Algorithm for Java Software • requires certain assumptions for safety Program T • ensures that T’ contains all test cases in T that P T’ can expose a fault in P’ Architecture of DejaVOO – same execution environment Execute P / Record coverage – deterministic test runs P’ Version –… P of P Coverage Events T’ JVM Profiler T Matrix Test T’ Selection JVM: Java Virtual Machine 3. Potential Savings Tool ous Danger P 12 12 JIG for P Profiler: JVM Profiling Interface Graph Entities JABA P’ JIG for P' Traversal JABA: Java Architecture for Time to Bytecode Analysis Identify dangerous entities select T’ Time to select T’ + Time to run T’ Time to run 3 3 9 9 < Time to run T T Savings Time to run T’ Prototype GUI for DejaVOO 6 6 • It shows a SeeSoft view of the source code of P 4. Our Safe Regression Test Selection Algorithm: Overview • It highlights the lines of code that have been modified • It displays the test cases to be rerun c. Differentiate G, G’ to find dangerous entities a. Construct graph representations for P and P’ • It lets the user selectively shows which test cases traverse which parts of the G G’ Dangerous Edge G G’ code and vice-versa if() if() if() if() 1 1 2 2 1 1 2 2 doA doB doA doC doA doB doA doC b. Associate test cases in T with entities in P d. Select test cases based on dangerous entities 7. Empirical Studies: Sizes of Selected Subsets of T Subjects % Test Cases Selected 100 • Siena: Event notification system (185 methods), 90 TC TC 80 tc1 tc2 tc3 tc1 tc2 tc3 70 En En 7 versions, 138 test cases, 70% method coverage 60 • Jedit: Text editor (3495 methods), 50 40 en1 X en1 X 30 11 versions, 189 test cases, 75% method coverage 20 • Jmeter: Web-application test tool (109 methods), 10 0 Siena Jedit Jmeter RegExp en2 X X en2 X X 5 versions, 50 test cases, 67% method coverage V1-V7 V1-V11 V1-V5 V1-V9 • RegExp: Regular-expression library (168 methods), Program Name 10 versions, 66 test cases, 46% method coverage * This work was supported in part by a grant from Boeing Aerospace Corporation to Georgia Tech, by National Science Foundation award CCR-9707792 to Ohio State University, and awards CCR-9988294, CCR-0096321, and EIA-0196145 to Georgia Tech, and by the State of Georgia to Georgia Tech under the Yamacraw Mission.