Automated Fitness Guided Fault Localization Josh Wilkerson, Ph.D. candidate Natural Computation Laboratory.

Slides:



Advertisements
Similar presentations
ICSE Doctoral Symposium | May 21, 2007 Adaptive Ranking Model for Ranking Code-Based Static Analysis Alerts Sarah Smith Heckman Advised by Laurie Williams.
Advertisements

Time-Aware Test Suite Prioritization Kristen R. Walcott, Mary Lou Soffa University of Virginia International Symposium on Software Testing and Analysis.
Visual Data Mining: Concepts, Frameworks and Algorithm Development Student: Fasheng Qiu Instructor: Dr. Yingshu Li.
Analysis of Variance Outlines: Designing Engineering Experiments
First Step Towards Automatic Correction of Firewall Policy Faults Fei Chen Alex X. Liu Computer Science and Engineering Michigan State University JeeHyun.
Benjamin J. Deaver Advisor – Dr. LiGuo Huang Department of Computer Science and Engineering Southern Methodist University.
Experimental Evaluation in Computer Science: A Quantitative Study Paul Lukowicz, Ernst A. Heinz, Lutz Prechelt and Walter F. Tichy Journal of Systems and.
Reliability and Software metrics Done by: Tayeb El Alaoui Software Engineering II Course.
SOA for An Empirical Study of Regression Test Selection Techniques. by TODD L. GRAVES Los Alamos National Laboratory MARY JEAN HARROLD Georgia Institute.
Domain Testing Based on Character String Predicate Ruilian Zhao Computer Science Dept. Beijing University of Chemical Technology Michael R. Lyu Computer.
Parameterizing Random Test Data According to Equivalence Classes Chris Murphy, Gail Kaiser, Marta Arias Columbia University.
Visual Debugging Tools for Concurrent Models of Computation Elaine Cheong 15 May 2002 EE290N: Advanced Topics in System Theory.
© 2006 Fraunhofer CESE1 MC/DC in a nutshell Christopher Ackermann.
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
State coverage: an empirical analysis based on a user study Dries Vanoverberghe, Emma Eyckmans, and Frank Piessens.
Automated Diagnosis of Software Configuration Errors
Determining the Significance of Item Order In Randomized Problem Sets Zachary A. Pardos, Neil T. Heffernan Worcester Polytechnic Institute Department of.
Software Faults and Fault Injection Models --Raviteja Varanasi.
SHOWTIME! STATISTICAL TOOLS IN EVALUATION CORRELATION TECHNIQUE SIMPLE PREDICTION TESTS OF DIFFERENCE.
Part III Exchange Rate Risk Management Information on existing and anticipated economic conditions of various countries and on historical exchange rate.
Overview of MSP Evaluation Rubric Gary Silverstein, Westat MSP Regional Conference San Francisco, February 13-15, 2008.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
November 2011CSC7302: Testing & MetricsL4-IntegrationTesting:1 Integration Testing The software testing process where individual units are combined and.
An Automated Approach to Predict Effectiveness of Fault Localization Tools Tien-Duy B. Le, and David Lo School of Information Systems Singapore Management.
2011/08/09 Sunwook Bae. Contents Paper Info Introduction Overall Architecture Resource Management Evaluation Conclusion References.
Testing : A Roadmap Mary Jean Harrold Georgia Institute of Technology Presented by : Navpreet Bawa.
Chapter 6 : Software Metrics
User Authentication Using a Haptic Stylus REU fellow(s): Janina Grayson 1 Adam Scrivener 2 Faculty mentor: Paolo Gasti, PhD 1, Kiran Balagani, PhD 1 Graduate.
© SERG Dependable Software Systems (Mutation) Dependable Software Systems Topics in Mutation Testing and Program Perturbation Material drawn from [Offutt.
Constrained Evolutionary Optimization Yong Wang Associate Professor, PhD School of Information Science and Engineering, Central South University
TestFul: Automatic Unit-Test Generation for Java Classes Matteo Miraz, Pier Luca Lanzi DEI – Politecnico di Milano (Italy)
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Bug Localization with Machine Learning Techniques Wujie Zheng
Requirements-based Test Generation for Functional Testing (© 2012 Professor W. Eric Wong, The University of Texas at Dallas) 1 W. Eric Wong Department.
Test Suite Reduction for Regression Testing of Simple Interactions between Two Software Modules Dmitry Kichigin.
Assisting GPRA Report for MSP Xiaodong Zhang, Westat MSP Regional Conference Miami, January 7-9, 2008.
When to Test Less Presented by Lan Guo. Introduction (1) Methods of software testing: functional, coverage, and user-oriented Phases of software testing:
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Curiosity-Driven Exploration with Planning Trajectories Tyler Streeter PhD Student, Human Computer Interaction Iowa State University
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University July 21, 2008WODA.
Testing: A Roadmap Mary Jean Harrold College Of Computing Georgia Institute Of Technology Presented By Prashanth L Anmol N M.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Re-Configurable Byzantine Quorum System Lei Kong S. Arun Mustaque Ahamad Doug Blough.
Bug Localization with Association Rule Mining Wujie Zheng
Automatically detecting and describing high level actions within methods Presented by: Gayani Samaraweera.
Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T.
2007 MIT BAE Systems Fall Conference: October Software Reliability Methods and Experience Dave Dwyer USA – E&IS baesystems.com.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Improving Structural Testing of Object-Oriented Programs via Integrating Evolutionary Testing and Symbolic Execution Kobi Inkumsah Tao Xie Dept. of Computer.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement.
Identifying “Best Bet” Web Search Results by Mining Past User Behavior Author: Eugene Agichtein, Zijian Zheng (Microsoft Research) Source: KDD2006 Reporter:
Wireless Network Management SANDEEP. Network Management Network management is a service that employs a variety of tools, applications, and devices to.
1 CS510 S o f t w a r e E n g i n e e r i n g Delta Debugging Simplifying and Isolating Failure-Inducing Input Andreas Zeller and Ralf Hildebrandt IEEE.
Fitness Guided Fault Localization with Coevolutionary Automated Software Correction Case Study ISC Graduate Student: Josh Wilkerson, Computer Science ISC.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
Test Case Purification for Improving Fault Localization presented by Taehoon Kwak SoftWare Testing & Verification Group Jifeng Xuan, Martin Monperrus [FSE’14]
1 Visual Computing Institute | Prof. Dr. Torsten W. Kuhlen Virtual Reality & Immersive Visualization Till Petersen-Krauß | GUI Testing | GUI.
Tung Dao* Lingming Zhang+ Na Meng* Virginia Tech*
Verification and Testing
Authors: Nirav Desai, prof. hema gaikwad
Fault Injection: A Method for Validating Fault-tolerant System
Test Case Purification for Improving Fault Localization
Automated Fitness Guided Fault Localization
Using Automated Program Repair for Evaluating the Effectiveness of
Design of Experiments CHM 585 Chapter 15.
STEPS Site Report.
Mitigating the Effects of Flaky Tests on Mutation Testing
Presentation transcript:

Automated Fitness Guided Fault Localization Josh Wilkerson, Ph.D. candidate Natural Computation Laboratory

Page  2 Technical Background  Software testing –Essential phase in software design –Subject software to test cases to expose errors –Locate errors in code Fault localization Most expensive component of software debugging [1] –Tools and techniques available to assist Automation of this process is a very active research area

Page  3 Technical Background  Fitness Function (FF) –Quantifies program performance Sensitive to all objectives of the program Graduated –Can be generated from: Formal/informal specifications Oracle (i.e., software developer) –Correct execution: high/maximum fitness –Incorrect execution: quantify how close to being correct the execution was

Page  4 The FGFL System  Fitness Guided Fault Localization (FGFL) system –Novel application of FFs to fault localization –Ensemble of techniques Three techniques currently implemented –Modular test case generation component Currently random with promotion for full fitness range coverage

Page  5 FGFL Technique: Trace Comparison  Trace Comparison Technique –Enhanced version of execution slice comparison fault localization technique [2] –Execution trace: list of lines executed in a given run of a program –Positive test case: results in correct program execution (indicated by FF) –Negative test case: results in incorrect program execution (indicated by FF) –Basic concept: Lines unique to negative test case traces  highly suspicious Lines shared by positive/negative test case traces  moderately suspicious Lines unique to positive test case traces  not suspicious

Page  6 FGFL Technique: Trace Comparison  Error on line 6  Bold lines indicate execution  Highly suspicious lines  Moderately suspicious lines Positive Test Case: 1: Loop(i = 1…Size) 2: Loop(j = 1…Size-1) 3: If(data[j] > data[j+1]) 4: temp = data[j] 5: data[j] = data[j+1] 6: data[j+1] = data[j] Negative Test Case: 1: Loop(i = 1…Size) 2: Loop(j = 1…Size-1) 3: If(data[j] > data[j+1]) 4: temp = data[j] 5: data[j] = data[j+1] 6: data[j+1] = data[j] Result: 1: Loop(i = 1…Size) 2: Loop(j = 1…Size-1) 3: If(data[j] > data[j+1]) 4: temp = data[j] 5: data[j] = data[j+1] 6: data[j+1] = data[j]

Page  7 FGFL Technique: TBLS  Trend Based Line Suspicion (TBLS) Technique –Based on the algorithm used by the Tarantula fault localization technique [3,4,5] –Basic concept: lines containing an error are going to be executed more by negative test cases –Each line has an associated suspicion level –For each execution trace Suspicion Adjustment Amount (SAA) calculated based on the fitness of the execution –High fitness: negative SAA –Low fitness: positive SAA SAA added to suspicion for all lines in the trace

Page  8 FGFL Technique: TBLS  Example: –Five test cases used One positive Four negative (varying performance) –Results: Suspicion Levels: 1: Loop(i = 1…Size) 2: Loop(j = 1…Size-1) 3: If(data[j] > data[j+1]) 5 4: temp = data[j] 5 5: data[j] = data[j+1] 5 6: data[j+1] = data[j]

Page  9 FGFL Technique: Fitness Monitor  Run-time fitness monitor technique –Novel technique –Basic concept: lines that cause a decrease in fitness consistently are likely to contain an error –Program is instrumented to enable calculation fitness after every line execution –Fitness fluctuation lines are found in the trace –Fitness regions are generated around fluctuation lines Start with just fluctuation line Expanded out until fitness becomes stable –If execution of the region results in an overall drop in fitness  the fluctuation line becomes more suspicious –No change in suspicion otherwise

Page  10 FGFL Technique: Fitness Monitor  Example: –Fitness plots for five test cases 1: Loop(i = 1…Size) 2: Loop(j = 1…Size-1) 3: If(data[j] > data[j+1]) 4: temp = data[j] 5: data[j] = data[j+1] 6: data[j+1] = data[j]

Page  11 FGFL: Result Combination  Technique results combined using a voting system  Each technique is given an equal number of votes –Number of votes equal to the number of lines in the program –Techniques do not have to use all votes  Suspicion values adjusted to reflect confidence in result –Suspicion values scaled relevant to maximum suspicion possible for the technique  Votes are applied proportional to the confidence of the result  Method chosen to help reduce misleading results

Page  12 Experimental Setup  Statistical analysis program (46-50 lines) –Seven versions –Each version has error(s) seeded –Variety of error types –10 sets of test cases generated, each consisting of 75 test cases  Goal: –Proof of FGFL concept –Expose strengths and weaknesses of techniques –Determine synergies between techniques and strength of ensemble approach

Page  13 Results  Program lines ordered from most suspicious to least  Average rank of the line(s) containing the error in ordered list: Program Version Trace Comp. TBLS Fitness Mon. Trace Comp. & TBLS TBLS & Fitness Mon. Trace Comp. & Fitness Mon. All  Best performance: full ensemble and trace comparison paired with fitness monitor  Program version 6: incorrect branch predicate, making branch unreachable  Need a technique based on statement reachability

Page  14 Ongoing Work  Techniques are still under active development  Investigating the enhancement of other state-of-the-art fault localization techniques through a FF  Development of new techniques exploiting the FF  Use of multi-objective FF with FGFL  Testing FGFL on well known, benchmark problems

Page  15 References [1] I. Vessey, “Expertise in Debugging Computer Programs: An Analysis of the Content of Verbal Protocols,” IEEE Transactions on Systems, Man and Cybernetics, vol. 16, no. 5, pp. 621–637, September [2] H. Agrawal, J. R. Horgan, S. London, and W. E. Wong, “Fault localization using execution slices and dataflow sets,” in Proceedings of the 6th IEEE International Symposium on Software Reliability Engineering, 1995, pp. 143–151. [3] J. A. Jones, M. J. Harrold, and J. Stasko, “Visualization of test information to assist fault localization,” in Proceedings of the 24th International Conference on Software Engineering. New York, NY, USA: ACM, 2002, pp. 467–477. [4] J. A. Jones and M. J. Harrold, “Empirical evaluation of the tarantula automatic fault-localization technique,” in Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering. New York, NY, USA: ACM, 2005, pp. 273–282. [5] J. A. Jones, “Semi-automatic fault localization,” Ph.D. dissertation, Georgia Institute of Technology, 2008.

Page  16 Questions?