Scalable Isolation of Failure- Inducing Changes via Version Comparison

Size: px
Start display at page:

Download "Scalable Isolation of Failure- Inducing Changes via Version Comparison"

Transcription

1 Scalable Isolation of Failure- Inducing Changes via Version Comparison Mohammadreza Ghanavati, Artur Andrzejak, Zhen Dong Heidelberg University 1

2 Debugging in Large-Scale Software Root Cause Manual Tedious Time Consuming Expensive Bug Symptom Automated Debugging 2

3 Selected Works on Automated Debugging Automated Debugging Slicing-based Debugging Statistical Debugging Delta Debugging Spectrum-based Debugging Formula-based Debugging Static Slicing (81) Tarantula (01) DD (99,01) Renieris (03) Darwin (09) Dynamic slicing (88, 93) CBI (03) HDD (05) Wong (10) Error Invariants (11) Whyline (08) Holmes (08) 3

4 More Works on Automated Debugging Automated Debugging Slicing-based Debugging Statistical Debugging Delta Debugging Spectrum-based Debugging Machine Learningbased Methods Formula-based Debugging Data-Mining-based Methods Model-based Methods Static Slicing (81) Tarantula (01) DD (99,01) Renieris (03) Brun: for Latent Code Errors (04) Darwin (09) Cellier: FCA (08) DeMillo: modeling failure(97) Dynamic slicing (88, 93) CBI (03) HDD (05) Wong (10) Briand: Decision tree algorithm(07) BugAssist (11) Nessa: N-grams (09) Mateis: functional dependency model(2000) Whyline (08) Wong: crosstab analysis-based method (08) Wong: backpropagation neural network(09) Error Invariants (11) Watowa: dependency model(02) Holmes (08) Sources: 1. A. Orso: Automated Debugging: Are We There Yet?, Dagstuhl Seminar Feb W. E. Wong and V. Debroy A Survey of Software Fault Localization, Technical Report UTDCS-45-09, The University of Texas at Dallas, Nov

5 Challenges of Automated Debugging In most AD approaches, result is a (ranked) set of suspicious statements to be examined by the developer Usability problems reported in Parnin and Orso (ISSTA '11) 1. Specificity is reported as a relative fraction of total #LOC 2. No further help with bug understanding (no explanations) For (1): suspect set is typically ~ 0.1-1% of total #LOC OK for small projects: 1k LOC => 10 LOC Infeasible for large ones: 1 mio LOC => 10k LOC!!! Can we keep the set of suspects small and independent of project size? 5

6 Exploiting SW Development Processes Development process in large SW projects: Incremental SW development with many intermediate versions (subjected to tests) Observation: even in large projects, fraction of code changed between commits is roughly constant Assuming frequent & regular commits Ignore topic merges (i.e. a feature branch merged into main branch) Code version i Code changes Tests Code version i+1 Code changes Tests 6

7 Exploiting SW Development Processes Idea: investigate only the changes of the code Constant size of suspect set Behavior of previous version provides prior knowledge source of additional information Drawback: not all defects can be discovered But: better a practical technique for some bugs than an impractical one for all Code version i Code changes Tests Code version i+1 Code changes Tests Suspicious changes 7

8 Successful at: Memory Leak Isolation Identical (but arbitrary) workload (unit / integ. tests etc.) Software version i Software version i+1 new 1 allocated released new 1 allocated released Problem! allocated allocated new k released new k released allocated allocated new n released new n released Felix Langner, Artur Andrzejak: Detection and Root Cause Analysis of Memory- Related Software Aging Defects by Automated Tests, MASCOTS

9 Intersect Compare coverage & filter suspects Artur Andrzejak Overview of the Approach Source Version i Source Version i+1 Difference set Instrument version i Execute & get code coverage Prg. source Failure stack trace Stack trace analysis Backward slices Instrument version i+1 1: Find the differences of versions 2: Retrieve failure site from the stack trace 3: Compute backward slices for each version 4: Compute the intersections of steps 2 & 3 5: Instrument the intersection 6: Execute failed test on each instrumented version obtained from step 5 to get code coverage profiles 7: Get list of suspects with filtering Execute & get code coverage Suspect Report 9

10 Assume 2 versions: Difference set Version i as passing version Version i+1 as failing version Using version history tools like SVN, GIT or diff command: Code version i Diff tool Difference Set Code version i+1 10

11 Stack Trace Analysis Stack trace: resulted from running test case on the failing version Failure site = topmost non-exceptionhandling entry of the stack We compute the backward slice for both failing and passing version (with failure site as seed statement) Backward Slicing S B (B) = {A A--> *B} A fragment of stack trace S B (B) = essentially, all statements which could have reached seed B 11

12 source code Artur Andrzejak Intersectinig & Instrumenting execution of test case T in version i deleted changes execution of test case T in version i+1 compute backward slice from failure site and intersect with changes backward slice added changes Instrument CHANGES failure site Intersected changes test result Instrument only: added intersected changes (+) in version i+1 deleted intersected changes (-) in i 12

13 Intersect Compare coverage & filter suspects Artur Andrzejak Getting Code Coverage Source Version i Source Version i+1 Difference set Instrument version i Execute & get code coverage Prg. source Failure stack trace Stack trace analysis Backward slices Instrument version i+1 Execute & get code coverage Execute & get code coverage: re-execution of the test case T (failing for version i+1) on both of instrumented versions Get coverage profile for version i Get coverage profile for version i+1 Suspect Report 13

14 Comparing the Coverage Information The following statements are included in the set of suspects: All statements added to or changed in failing version i+1 which are in the failing coverage profile All statements deleted from passing version i which are in the passing coverage profile Final result: The resulting list of suspicious statements with the locations 14

15 Implementation & Evaluation Setup Implementation: Using WALA tool for static analysis Building call graph Computing backward slice using thin slicing* Using UNIX diff command for finding differences Using Shrike library for instrumenting (from WALA) Application: Apache Hadoop, release alpha Test cases: 4 real bugs from Hadoop bug repository *Manu Sridharan, Stephen J. Fink, Ratislav Bodik, Thin slicing, in PLDI

16 Real Test Cases From Apache Hadoop Bug issue Broken by Issue Failing Test HDFS-3856 HADOOP-8689 TestHDFSServerPorts HDFS-4887 HDFS-4840 TestNNThroughputBenchmark HDFS-4282 HADOOP-9103 TestEditLog.testFuzzSequences Yarn-960 Yarn-701 TestBinaryTokens, TestMRCredentials We use real bugs from Hadoop issue tracking system between 15 th August 2012 and 27 th July

17 Test Case Requirements No consideration of third-party libraries Well documented bugs for result validation Existence of a passing version for the failing test Note: test case Yarn-960 did not satisfy first requirement: the failure stack trace contains only third party libraries. We do not consider this test case (no fundamental limitation). 17

18 Complexity Evaluation: Code Size Bslice IS Cov Report (#LOC) Report=1 Report= Passing Failing Passing Failing Passing Failing Report=1 HDFS-3856 HDFS-4887 HDFS-4282 Dif (#LOC)= Dif (#LOC)= 1030 Dif (#LOC)= 1325 In 2 out of 3 cases no false positives (high specificity) All of the steps in our approach are needed to reach high specificity Empty suspect list for one bug, but at least our approach can indicate the method related to the defect 18

19 Performance Evaluation (1): Overheads Comparison Issue HDFS-3856 HDFS-4887 HDFS-4282 Version Original version Run time (s) Size (MB) Full inst. Bslice inst. Our approach Passing / / / 1.00 Failing / / / 1.00 Passing / / / 1.00 Failing / / / 1.00 Passing / / / 1.02 Failing / / / 1.02 Our approach has negligible instrumentation overheads 19

20 Performance Evaluation (2): Comparison of Running Times Slicing Inst. Run Test time Total / Test time = 3.3 Total / Test time = 2.4 Total / Test time = 2.4 HDFS-3856 HDFS-4887 HDFS-4282 The total time of our approach requires at most 3.3 times the duration of the failed test 20

21 Drawbacks of Our Approach Does not work if the actual bug has been introduced already in an older version (or before) but manifests only with recent changes (yielding version i+1) Evaluation on only four bugs: insufficient sample size to draw general conclusions 21

22 Future Work Extended evaluation. Evaluation of the approach on more bugs (also artificial defects) and other applications More runtime facts. Extension of dynamic analysis with other runtime information, like value of conditional expressions Adaptivity. Modification of the steps of our method depending on the sizes of intermediate results 22

23 Future Work Supporting failure understanding. Study of runtime data collection during the passing and failing to improve bug understanding Enhancing tools for continuous integration. Integration of our methods in wide-spread testing tools like Jenkins to support wide-spread adoption 23

24 Summary Objective: A scalable approach to isolating failure-inducing changes Idea: Exploiting version differences together with static and dynamic code analysis Strength of the approach: Applicable to very large projects Suspect set is proportional to the size of recent code changes Runtime overhead is in the order of executing a test triggering bug search Integration into existing testing processes feasible Evaluation: On a large-scale project (Apache Hadoop) and real bugs Promising result with high accuracy(near to zero false positives), low complexity, low performance degradation Limitations: Just crashing errors, no latent errors 24

25 References M. Renieris and S. P. Reiss, Fault Localization with Nearest Neighbor Queries, in ASE W. E. Wong, V. Debroy and B. Choi, A Family of Code Coverage-based Heuristics for Effective Fault Localization. Journal of Systems and Software, 83(2): , February M. Weiser. Program slicing. IEEE Trans. Softw. Eng., 10(4): , 1984 M. Sridharan, S. J. Fink, and R. Bodik. Thin slicing. In PLDI, D. Qi, A. Roychoudhury, Z. Liang, and K. Vaswani. Darwin: an approach for debugging evolving programs. In ESEC/FSE, G. Misherghi and Z. Su. HDD: hierarchical delta debugging. In ICSE,2006. B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable statistical bug isolation. In PLDI, 2005 B. Liblit. Cooperative Bug Isolation: Winning Thesis of the 2005 ACM Doctoral Dissertation Competition, volume 4440 of Lecture Notes in Computer Science. Springer, 2007 J. A. Jones and M. J. Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. In ASE, T. M. Chilimbi, B. Liblit, K. Mehra, A. V. Nori, and K. Vaswani. Holmes: Effective statistical debugging via efficient path profiling. In ICSE, W. E. Wong, T. Wei, Y. Qi, and L. Zhao, A Crosstab-based Statistical Method for Effective Fault Localization, in Proceedings of the 1st International Conference on Software Testing, Verification and Validation, pp , Lillehammer, Norway, April 2008 F. Wotawa, On the relationship between model-based debugging and program slicing, Artificial Intelligence, 135(1-2): , February 2002 F. Wotawa, M. Stumptner, and W. Mayer, Model-based debugging or how to diagnose programs automatically, in Proceedings of the 15th International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems: Developments in Applied Artificial Intelligence, pp , Cairns, Australia, June W. E. Wong and Y. Qi, BP Neural Network-based Effective Fault Localization, International Journal of Software Engineering and Knowledge Engineering 19(4): , June S. Nessa, M. Abedin, W. Eric Wong, L. Khan, and Y. Qi, Fault Localization Using N-gram Analysis, in Proceedings of the 3rd International Conference on Wireless Algorithms, Systems, and Applications, pp , Richardson, Texas, USA, April 2009 (Lecture Notes In Computer Science, Volume 5258) C. Mateis, M. Stumptner, and F. Wotawa, Modeling Java programs for diagnosis, in Proceedings of the 14th European Conference on Artificial Intelligence, pp , Berlin, Germany, August R. A. DeMillo, H. Pan, E. H. Spafford, Failure and fault analysis for software debugging ; in Proceedings of 21st International Computer Software and Applications Conference, pp , Washington DC, USA, August P. Cellier, S. Ducasse, S. Ferre, and O. Ridoux, Formal Concept Analysis Enhances Fault Localization in Software, in Proceedings of the 4th International Conference on Formal Concept Analysis, pp , Montréal, Canada, February

26 Thank you. QUESTIONS ARE WELCOME! 26

27 Additional Slides 27

28 Version Comparison: Main Idea The main idea is a differential approach: compare consecutive development versions Code version i Code version i+1 Find Differences List of suspicious changes 28

29 Detection of Failure-Inducing Changes Code version i Report Stack trace analysis Intersect Versions differences Instrument Execution Filtering Code version i+1 29

30 Issue HDFS-3856 HDFS-4887 HDFS-4282 Version Complexity Evaluation Dif (#LOC) Code Size Original version Bslice IS Cov Passing Failing Passing Failing Passing Failing Report (#LOC) In 2 out of 3 cases no false positives (specificity). All of the steps in our approach is necessary to reach this level of specificity. Empty suspect list for one bug. But at least our approach can indicate failure-inducing change method. 30

31 Performance Evaluation (2) Comparison of Running Times Issue App. time for passing + failing version Slicing Inst. Run Total Test time Total / Test HDFS HDFS HDFS The total time of our approach requires at most 3.3 times the duration of the failed test, and the latter is just one of many tests executed within a test suite 31

co-collated with ISSRE 2017 October 23, 2017

co-collated with ISSRE 2017 October 23, 2017 Panel Presentation at the International Workshop on Program Debugging (IWPD 2017) co-collated with ISSRE 2017 October 23, 2017 Artur Andrzejak Heidelberg University http://pvs.ifi.uni-heidelberg.de/ Panel

More information

Extended Program Invariants: Applications in Testing and Fault Localization

Extended Program Invariants: Applications in Testing and Fault Localization Extended Program Invariants: Applications in Testing and Fault Localization Mohammad Amin Alipour, and Alex Groce School of Electrical Engineering and Computer Science Oregon State University Corvallis,

More information

Fault Localization using Probabilistic Program Dependence Graph

Fault Localization using Probabilistic Program Dependence Graph Fault Localization using Probabilistic Program Dependence Graph N.Suguna Computer Science and Engineering, Annamalai University, Chidambaram, Tamilnadu, India. R M. Chandrasekaran, PhD. Computer Science

More information

Which Configuration Option Should I Change?

Which Configuration Option Should I Change? Which Configuration Option Should I Change? Sai Zhang, Michael D. Ernst University of Washington Presented by: Kıvanç Muşlu I have released a new software version Developers I cannot get used to the UI

More information

Statistical Debugging for Real-World Performance Problems

Statistical Debugging for Real-World Performance Problems Statistical Debugging for Real-World Performance Problems Linhai Song 1 and Shan Lu 2 1 University of Wisconsin-Madison 2 University of Chicago What are Performance Problems? Definition of Performance

More information

The Journal of Systems and Software

The Journal of Systems and Software The Journal of Systems and Software 83 (2010) 188 208 Contents lists available at ScienceDirect The Journal of Systems and Software journal homepage: www.elsevier.com/locate/jss A family of code coverage-based

More information

Locating Causes of Program Failures

Locating Causes of Program Failures Locating Causes of Program Failures Holger Cleve Andreas Zeller Saarland University, Saarbrücken, Germany {cleve, zeller}@cs.uni-sb.de Abstract Which is the defect that causes a software failure? By comparing

More information

Debugging. Thomas LaToza D: Human Aspects of Software Development (HASD) Spring, (C) Copyright Thomas D. LaToza

Debugging. Thomas LaToza D: Human Aspects of Software Development (HASD) Spring, (C) Copyright Thomas D. LaToza Debugging Thomas LaToza 05-899D: Human Aspects of Software Development (HASD) Spring, 2011 (C) Copyright Thomas D. LaToza Definitions Error - discrepancy between actual behavior of system and intended

More information

HOLMES: Effective Statistical Debugging via Efficient Path Profiling

HOLMES: Effective Statistical Debugging via Efficient Path Profiling HOLMES: Effective Statistical Debugging via Efficient Path Profiling Trishul M. Chilimbi Ben Liblit Krishna Mehra Aditya V. Nori Kapil Vaswani Microsoft Research trishulc@microsoft.com liblit@cs.wisc.edu

More information

A Survey on Software Fault Localization Techniques

A Survey on Software Fault Localization Techniques Proceedings of the International Conference on Applied Mathematics and Theoretical Computer Science - 2013 189 A Survey on Software Fault Localization Techniques T. Prabakaran and Dr.P. Sengottuvelan Abstract---

More information

Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique

Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique James A. Jones and Mary Jean Harrold College of Computing, Georgia Institute of Technology Atlanta, Georgia, U.S.A. jjones@cc.gatech.edu,

More information

Learning Universal Probabilistic Models for Fault Localization

Learning Universal Probabilistic Models for Fault Localization Learning Universal Probabilistic Models for Fault Localization Min Feng Rajiv Gupta University of California at Riverside, CSE Department, Riverside CA, 92521 {mfeng, gupta}@cs.ucr.edu Abstract Recently

More information

Automated Adaptive Bug Isolation using Dyninst. Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison

Automated Adaptive Bug Isolation using Dyninst. Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison Automated Adaptive Bug Isolation using Dyninst Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison Cooperative Bug Isolation (CBI) ++branch_17[p!= 0]; if (p) else Predicates

More information

AVA: Supporting Debugging With Failure Interpretations

AVA: Supporting Debugging With Failure Interpretations AVA: Supporting Debugging With Failure Interpretations Fabrizio Pastore and Leonardo Mariani University of Milano Bicocca Milan, Italy {pastore,mariani}@disco.unimib.it Abstract Several debugging techniques

More information

SCALABLE STATISTICAL BUG ISOLATION

SCALABLE STATISTICAL BUG ISOLATION SCALABLE STATISTICAL BUG ISOLATION Paper by Ben Liblit, Mayur Naik, Alice X. Zheng, Alex Aiken, Michael I. Jordan Presented by Ben Mishkanian 2/5/2015 Statistical Debugging Idea: Use dynamic statistical

More information

Multiple Fault Localization with Data Mining

Multiple Fault Localization with Data Mining Multiple Fault Localization with Data Mining Peggy Cellier and Mireille Ducassé IRISA/INSA of Rennes Campus Beaulieu 35042 Rennes cedex, France Email: firstname.lastname@irisa.fr Sébastien Ferré and Olivier

More information

Spectrum-based Fault Localization: A Pair Scoring Approach

Spectrum-based Fault Localization: A Pair Scoring Approach Journal of Industrial and Intelligent Information Vol. 1, No. 4, December 2013 Spectrum-based Fault Localization: A Pair Scoring Approach Patrick Daniel and Kwan Yong Sim Faculty of Engineering, Computing

More information

Locating Faults Through Automated Predicate Switching

Locating Faults Through Automated Predicate Switching Locating Faults Through Automated Predicate Switching Authored by Xiangyu Zhang, Neelam Gupta, Rajiv Gupta The University of Arizona ICSE 2006 Presented by Jing Pu Authors 1 Neelam Gupta The University

More information

An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization

An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization An Empirical Study of the Effects of Test-Suite Reduction on Fault Localization Yanbing Yu yyu@cc.gatech.edu James A. Jones jjones@cc.gatech.edu College of Computing Georgia Institute of Technology Atlanta,

More information

Formula- Based Software Debugging

Formula- Based Software Debugging DOI:10.1145/2856103 Satisfiability modulo theory solvers can help automate the search for the root cause of observable software errors. BY ABHIK ROYCHOUDHURY AND SATISH CHANDRA Formula- Based Software

More information

Graph Mining for Software Fault Localization: An Edge Ranking based Approach

Graph Mining for Software Fault Localization: An Edge Ranking based Approach 178 JOURNAL OF COMMUNICATIONS SOFTWARE AND SYSTEMS, VOL. 13, NO. 4, DECEMBER 217 Graph Mining for Software Fault Localization: An Edge Ranking based Approach Marwa Gaber Abd El-Wahab 1, Amal Elsayed Aboutabl,

More information

Programmers Should Still Use Slices When Debugging

Programmers Should Still Use Slices When Debugging Programmers Should Still Use Slices When Debugging Ezekiel O. Soremekun Software Engineering Chair Saarland University Saarbrücken, Germany Email: soremekun@cs.uni-saarland.de Marcel Böhme School of Computing

More information

Model-based Software Debugging

Model-based Software Debugging S C I E N C E P A S S I O N T E C H N O L O G Y Birgit Hofer Institute for Software Technology 1 u www.tugraz.at 2 Visualization Design & Maintenance Support Static Analysis Modeling Spreadsheet Quality

More information

W. Eric Wong, Vidroha Debroy, Student Member, IEEE, and Dianxiang Xu. 2 Only executable statements are considered. See Section III-C for more details.

W. Eric Wong, Vidroha Debroy, Student Member, IEEE, and Dianxiang Xu. 2 Only executable statements are considered. See Section III-C for more details. 378 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS PART C: APPLICATIONS AND REVIEWS, VOL. 42, NO. 3, MAY 2012 Towards Better Fault Localization: A Crosstab-Based Statistical Approach W. Eric Wong,

More information

Effective Identification of Failure-Inducing Changes: A Hybrid Approach

Effective Identification of Failure-Inducing Changes: A Hybrid Approach Effective Identification of Failure-Inducing Changes: A Hybrid Approach Sai Zhang, Yu Lin, Zhongxian Gu, Jianjun Zhao School of Software Shanghai Jiao Tong University 800 Dongchuan Road, Shanghai 200240,

More information

SEMI-AUTOMATIC FAULT LOCALIZATION

SEMI-AUTOMATIC FAULT LOCALIZATION SEMI-AUTOMATIC FAULT LOCALIZATION A Dissertation Presented to The Academic Faculty by James Arthur Jones In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the School of

More information

Accurately Choosing Execution Runs for Software Fault Localization

Accurately Choosing Execution Runs for Software Fault Localization Accurately Choosing Execution Runs for Software Fault Localization Liang Guo, Abhik Roychoudhury, and Tao Wang School of Computing, National University of Singapore, Singapore 117543 {guol, abhik, wangtao}@comp.nus.edu.sg

More information

Predicting Runtime Data Dependences for Slice Inspection Prioritization

Predicting Runtime Data Dependences for Slice Inspection Prioritization Predicting Runtime Data Dependences for Slice Inspection Prioritization Yiji Zhang and Raul Santelices University of Notre Dame Notre Dame, Indiana, USA E-mail: {yzhang20 rsanteli}@nd.edu Abstract Data

More information

Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques

Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques UCL DEPARTMENT OF COMPUTER SCIENCE Research Note RN/12/03 Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques RN/17/07 Deep Parameter Optimisation for Face Detection Using

More information

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs Jaymie Strecker Department of Computer Science University of Maryland College Park, MD 20742 November 30, 2006 Abstract In model-based

More information

Efficient Regression Test Model for Object Oriented Software

Efficient Regression Test Model for Object Oriented Software Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration

More information

Fault Localization for Firewall Policies

Fault Localization for Firewall Policies Fault Localization for Firewall Policies JeeHyun Hwang 1 Tao Xie 1 Fei Chen Alex X. Liu 1 Department of Computer Science, North Carolina State University, Raleigh, NC 7695-86 Department of Computer Science

More information

Replaying and Isolating Failing Multi-Object Interactions. Martin Burger Andreas Zeller Saarland University

Replaying and Isolating Failing Multi-Object Interactions. Martin Burger Andreas Zeller Saarland University Replaying and Isolating Failing Multi-Object Interactions Martin Burger Andreas Zeller Saarland University e-mail client written in Java 100,200 LOC ~ 1,600 Java classes 17 developers Actively developed

More information

ABHRANTA: Locating Bugs that Manifest at Large System Scales

ABHRANTA: Locating Bugs that Manifest at Large System Scales ABHRANTA: Locating Bugs that Manifest at Large System Scales Bowen Zhou, Milind Kukarni, Saurabh Bagchi Purdue University Abstract A key challenge in developing large scale applications (both in system

More information

A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs

A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs Myoung Yee Kim and Yoonsik Cheon TR #7-57 November 7; revised January Keywords: fitness

More information

Bug Signature Minimization and Fusion

Bug Signature Minimization and Fusion 2011 IEEE 1th International Symposium on High-Assurance Systems Engineering Bug Signature Minimization and Fusion David Lo 1, Hong Cheng 2, and Xiaoyin Wang 1 School of Information Systems, Singapore Management

More information

Spectrum Mutant. Evaluating and Improving Fault Localization

Spectrum Mutant. Evaluating and Improving Fault Localization Evaluating and Improving Fault Localization Spencer Pearson Michael Ernst Debugging is expensive Your program has a bug. What do you do? Reproduce it Locate it Focus of this talk Fix it Fault localization

More information

Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs

Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Jan Gustafsson Department of Computer Engineering, Mälardalen University Box 883, S-721 23 Västerås, Sweden jangustafsson@mdhse

More information

BP NEURAL NETWORK-BASED EFFECTIVE FAULT LOCALIZATION

BP NEURAL NETWORK-BASED EFFECTIVE FAULT LOCALIZATION International Journal of Software Engineering and Knowledge Engineering Vol. 19, No. 4 (2009) 573 597 c World Scientific Publishing Company BP NEURAL NETWORK-BASED EFFECTIVE FAULT LOCALIZATION W. ERIC

More information

Barrier Slicing and Chopping

Barrier Slicing and Chopping Barrier Slicing and Chopping Jens Krinke Universität Passau Passau, Germany Abstract One of the critiques on program slicing is that slices presented to the user are hard to understand. This is partly

More information

Automated Documentation Inference to Explain Failed Tests

Automated Documentation Inference to Explain Failed Tests Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers

More information

Software Fault Localization Using DStar (D * )

Software Fault Localization Using DStar (D * ) 2012 IEEE Sixth International Conference on Software Security and Reliability Software Fault Localization Using DStar (D * ) W. Eric Wong 1, Vidroha Debroy 2, Yihao Li, 1 and Ruizhi Gao 1 1 Department

More information

Automated Program Repair

Automated Program Repair #1 Automated Program Repair Motivation Software maintenance is expensive Up to 90% of the cost of software [Seacord] Up to $70 Billion per year in US [Jorgensen, Sutherland] Bug repair is the majority

More information

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing?

Testing. ECE/CS 5780/6780: Embedded System Design. Why is testing so hard? Why do testing? Testing ECE/CS 5780/6780: Embedded System Design Scott R. Little Lecture 24: Introduction to Software Testing and Verification What is software testing? Running a program in order to find bugs (faults,

More information

Dynamic Inference of Change Contracts

Dynamic Inference of Change Contracts 2014 IEEE International Conference on Software Maintenance and Evolution Dynamic Inference of Change Contracts Tien-Duy B. Le 1, Jooyong Yi 2, David Lo 1, Ferdian Thung 1, and Abhik Roychoudhury 2 1 School

More information

Finding Failure Causes through Automated Testing

Finding Failure Causes through Automated Testing Finding Failure Causes through Automated Testing Holger Cleve Universität Passau Lehrstuhl Software-Systeme Innstraße 33 94032 Passau, Germany +49 851 509-3094 cleve@fmi.uni-passau.de Andreas Zeller Universität

More information

Automatic Diagnosis of Software Functional Faults by Means of Inferred Behavioral Models

Automatic Diagnosis of Software Functional Faults by Means of Inferred Behavioral Models Automatic Diagnosis of Software Functional Faults by Means of Inferred Behavioral Models PhD Dissertation by: Fabrizio Pastore Advisors: Prof. Mauro Pezzè Dott. Leonardo Mariani Supervisor of the Ph.D.

More information

Effective program debugging based on execution slices and inter-block data dependency

Effective program debugging based on execution slices and inter-block data dependency The Journal of Systems and Software 79 (2006) 891 903 www.elsevier.com/locate/jss Effective program debugging based on execution slices and inter-block data dependency W. Eric Wong *,YuQi Department of

More information

Testing Error Handling Code in Device Drivers Using Characteristic Fault Injection

Testing Error Handling Code in Device Drivers Using Characteristic Fault Injection 1 Testing Error Handling Code in Device Drivers Using Characteristic Fault Injection Jia-Ju Bai, Yu-Ping Wang, Jie Yin, Shi-Min Hu Department of Computer Science and Technology Tsinghua University Beijing,

More information

CrashLocator: Locating Crashing Faults Based on Crash Stacks

CrashLocator: Locating Crashing Faults Based on Crash Stacks CrashLocator: Locating Crashing Faults Based on Crash Stacks Rongxin Wu, Hongyu Zhang, Shing-Chi Cheung, and Sunghun Kim Department of Computer Science and Engineering The Hong Kong University of Science

More information

QOS Quality Of Service

QOS Quality Of Service QOS Quality Of Service Michael Schär Seminar in Distributed Computing Outline Definition QOS Attempts and problems in the past (2 Papers) A possible solution for the future: Overlay networks (2 Papers)

More information

Pattern Design for Software Testing Base Finit Automato Machines

Pattern Design for Software Testing Base Finit Automato Machines www.ijci.org 297 Pattern Design for oftware Testing Base Finit Automato Machines eyyede Roya Alavi 1 1 Department of Computer, Khoy Branch, Islamic Azad University, Khoy, Iran Abstract On method for effective

More information

Using Mutation to Automatically Suggest Fixes for Faulty Programs

Using Mutation to Automatically Suggest Fixes for Faulty Programs 2010 Third International Conference on Software Testing, Verification and Validation Using Mutation to Automatically Suggest Fixes for Faulty Programs Vidroha Debroy and W. Eric Wong Department of Computer

More information

Comparing Coverage. Andreas Zeller

Comparing Coverage. Andreas Zeller Comparing Coverage Andreas Zeller Tracing Infections For every infection, we must find the earlier infection that causes it. Which origin should we focus upon? 2 Tracing Infections 3 Focusing on Anomalies

More information

Combining Hardware and Software Instrumentation to Classify Program Executions

Combining Hardware and Software Instrumentation to Classify Program Executions Combining Hardware and Software Instrumentation to Classify Program Executions ABSTRACT Cemal Yilmaz Sabanci University Faculty of Engineering and Natural Sciences Istanbul, Turkey cyilmaz@sabanciuniv.edu

More information

Formal Concept Analysis Enhances Fault Localization in Software

Formal Concept Analysis Enhances Fault Localization in Software Formal Concept Analysis Enhances Fault Localization in Software Peggy Cellier 1 2, Mireille Ducassé 2, Sébastien Ferré 1, and Olivier Ridoux 1 1 IRISA/University of Rennes 1, 2 IRISA/INSA de Rennes, firstname.lastname@irisa.fr,

More information

Software Engineering Chair November 26, 2008

Software Engineering Chair November 26, 2008 Automated Debugging Software Engineering Chair November 26, 2008 Project 2: Comparing Coverage In this project, you write tools that collect and compare the coverage of multiple program runs in order to

More information

Automated Breakpoint Generation for Debugging

Automated Breakpoint Generation for Debugging JOURNAL OF SOFTWARE, VOL. 8, NO. 3, MARCH 2013 603 Automated Breakpoint Generation for Debugging Cheng Zhang 1,3, Juyuan Yang 2, Dacong Yan 4, Shengqian Yang 4, Yuting Chen 2 1 Department of Computer Science

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Software Quality Assurance. David Janzen

Software Quality Assurance. David Janzen Software Quality Assurance David Janzen What is quality? Crosby: Conformance to requirements Issues: who establishes requirements? implicit requirements Juran: Fitness for intended use Issues: Who defines

More information

Suggesting Edits to Explain Failing Traces

Suggesting Edits to Explain Failing Traces Suggesting Edits to Explain Failing Traces Giles Reger University of Manchester, UK Abstract. Runtime verification involves checking whether an execution trace produced by a running system satisfies a

More information

JPF SE: A Symbolic Execution Extension to Java PathFinder

JPF SE: A Symbolic Execution Extension to Java PathFinder JPF SE: A Symbolic Execution Extension to Java PathFinder Saswat Anand 1,CorinaS.Păsăreanu 2, and Willem Visser 2 1 College of Computing, Georgia Institute of Technology saswat@cc.gatech.edu 2 QSS and

More information

Helping Users Avoid Bugs in GUI Applications

Helping Users Avoid Bugs in GUI Applications Helping Users Avoid Bugs in GUI Applications Amir Michail Tao Xie School of Computer Science & Eng Univ of New South Wales Sydney, Australia Dept. of Computer Science & Eng Univ of Washington Seattle,

More information

Locating Causes of Program Failures

Locating Causes of Program Failures Locating Causes of Program Failures Holger Cleve Saarland University Saarbrücken, Germany cleve@cs.uni-sb.de Andreas Zeller Saarland University Saarbrücken, Germany zeller@cs.uni-sb.de ABSTRACT Which is

More information

Automatically Locating software Errors using Interesting Value Mapping Pair (IVMP)

Automatically Locating software Errors using Interesting Value Mapping Pair (IVMP) 71 Automatically Locating software Errors using Interesting Value Mapping Pair (IVMP) Ajai Kumar 1, Anil Kumar 2, Deepti Tak 3, Sonam Pal 4, 1,2 Sr. Lecturer, Krishna Institute of Management & Technology,

More information

Locating Causes of Program Failures

Locating Causes of Program Failures Locating Causes of Program Failures Holger Cleve Saarland University Saarbrücken, Germany cleve@cs.uni-sb.de Andreas Zeller Saarland University Saarbrücken, Germany zeller@cs.uni-sb.de ABSTRACT Which is

More information

Automatically Finding Patches Using Genetic Programming

Automatically Finding Patches Using Genetic Programming Automatically Finding Patches Using Genetic Programming Westley Weimer, Stephanie Forrest, Claire Le Goues, ThanVu Nguyen, Ethan Fast, Briana Satchell, Eric Schulte Motivation Software Quality remains

More information

Zoltar: A toolset for automatic fault localization

Zoltar: A toolset for automatic fault localization Zoltar: A toolset for automatic fault localization Tom Janssen Rui Abreu Arjan J.C. van Gemund Embedded Software Lab Delft University of Technology The Netherlands {t.p.m.janssen, r.f.abreu, a.j.c.vangemund@tudelft.nl

More information

Survey of Software Bug Localization Using Dynamic Analysis

Survey of Software Bug Localization Using Dynamic Analysis Survey of Software Bug Localization Using Dynamic Analysis DR. Hua Jie Lee (Jason) Senior Software Test Engineer DOLBY LABORATORIES, Australia February 21, 2013 Outline 1 Introduction 2 Background 3 Test

More information

Real-Time Automatic Detection of Stuck Transactions

Real-Time Automatic Detection of Stuck Transactions Real-Time Automatic Detection of Stuck Transactions Diploma thesis subject of Peter Hofer (0855349) in cooperation with Compuware Austria GmbH September 2012 Abstract The execution of business transactions

More information

Appendix to The Health of Software Engineering Research

Appendix to The Health of Software Engineering Research Appendix to The Health of Software Engineering Research David Lo School of Information Systems Singapore Management University Singapore davidlo@smu.edu.sg Nachiappan Nagappan and Thomas Zimmermann Research

More information

Test Case Generation for Classes in Objects-Oriented Programming Using Grammatical Evolution

Test Case Generation for Classes in Objects-Oriented Programming Using Grammatical Evolution Test Case Generation for Classes in Objects-Oriented Programming Using Grammatical Evolution Jirawat Chaiareerat, Peraphon Sophatsathit and Chidchanok Lursinsap Abstract This paper proposes a dynamic test

More information

Software Testing. 1. Testing is the process of demonstrating that errors are not present.

Software Testing. 1. Testing is the process of demonstrating that errors are not present. What is Testing? Software Testing Many people understand many definitions of testing :. Testing is the process of demonstrating that errors are not present.. The purpose of testing is to show that a program

More information

A Frame Study for Post-Processing Analysis on System Behavior: A Case Study of Deadline Miss Detection

A Frame Study for Post-Processing Analysis on System Behavior: A Case Study of Deadline Miss Detection Journal of Computer Science 6 (12): 1505-1510, 2010 ISSN 1549-3636 2010 Science Publications A Frame Study for Post-Processing Analysis on System Behavior: A Case Study of Deadline Miss Detection Junghee

More information

Program Partitioning - A Framework for Combining Static and Dynamic Analysis

Program Partitioning - A Framework for Combining Static and Dynamic Analysis Program Partitioning - A Framework for Combining Static and Dynamic Analysis Pankaj Jalote, Vipindeep V, Taranbir Singh, Prateek Jain Department of Computer Science and Engineering Indian Institute of

More information

Pliny and Fixr Meeting. September 15, 2014

Pliny and Fixr Meeting. September 15, 2014 Pliny and Fixr Meeting September 15, 2014 Fixr: Mining and Understanding Bug Fixes for App-Framework Protocol Defects (TA2) University of Colorado Boulder September 15, 2014 Fixr: Mining and Understanding

More information

Improving Test Suites for Efficient Fault Localization

Improving Test Suites for Efficient Fault Localization Improving Test Suites for Efficient Fault Localization Benoit Baudry and Franck Fleurey IRISA, Campus Universitaire de Beaulieu, 35042 Rennes Cedex, France {ffleurey, bbaudry}@irisa.fr Yves Le Traon France

More information

Topics in Program Slicing

Topics in Program Slicing Dependable Software Systems Topics in Program Slicing Material drawn from [Weiser84,Gallagher91,DeMillo96] Courtesy Spiros Mancoridis What is a Program Slice? A program slice is a subset of a program.

More information

Profile-Guided Program Simplification for Effective Testing and Analysis

Profile-Guided Program Simplification for Effective Testing and Analysis Profile-Guided Program Simplification for Effective Testing and Analysis Lingxiao Jiang Zhendong Su Program Execution Profiles A profile is a set of information about an execution, either succeeded or

More information

Which Configuration Option Should I Change?

Which Configuration Option Should I Change? Which Configuration Option Should I Change? Sai Zhang Michael D. Ernst Department of Computer Science & Engineering University of Washington, USA {szhang, mernst}@cs.washington.edu ABSTRACT Modern software

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

Fault Localization Using Value Replacement

Fault Localization Using Value Replacement Fault Localization Using Value Replacement Dennis Jeffrey (1) jeffreyd@cs.ucr.edu Neelam Gupta guptajneelam@gmail.com Rajiv Gupta (1) gupta@cs.ucr.edu (1) Univ. of California at Riverside, CSE Department,

More information

Symbolic Execution, Dynamic Analysis

Symbolic Execution, Dynamic Analysis Symbolic Execution, Dynamic Analysis http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Symbolic execution Pavel Parízek Symbolic Execution, Dynamic Analysis

More information

A Serializability Violation Detector for Shared-Memory Server Programs

A Serializability Violation Detector for Shared-Memory Server Programs A Serializability Violation Detector for Shared-Memory Server Programs Min Xu Rastislav Bodík Mark Hill University of Wisconsin Madison University of California, Berkeley Serializability Violation Detector:

More information

ConfGuru - A System for Fully Automated Debugging of Configuration Errors

ConfGuru - A System for Fully Automated Debugging of Configuration Errors ConfGuru - A System for Fully Automated Debugging of Configuration Errors Artur Andrzejak Institute of Computer Science Heidelberg University, Germany artur.andrzejak@informatik.uni-heidelberg.de Matthias

More information

Why does my spreadsheet compute wrong values?

Why does my spreadsheet compute wrong values? S C I E N C E P A S S I O N T E C H N O L O G Y Why does my spreadsheet compute wrong values? Birgit Hofer, and Franz Wotawa Graz University of Technology, Austria 25th 1 IEEE Int. Symposium on Software

More information

Automated Program Debugging Research vs. Prac7ce?

Automated Program Debugging Research vs. Prac7ce? Automated Program Debugging Research vs. Prac7ce? Franz Wotawa Technische Universität Graz Ins2tute for So7ware Technology Inffeldgasse 16b/2, 8010 Graz, Austria wotawa@ist.tugraz.at Some ques7ons asked

More information

Scalable Statistical Bug Isolation

Scalable Statistical Bug Isolation Post-Deployment Monitoring Scalable Statistical Bug Isolation Ben Liblit, Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan University of Wisconsin, Stanford University, and UC Berkeley Goal: Measure

More information

Testing Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng

Testing Process and Methods. CS 490MT/5555, Spring 2017, Yongjie Zheng Testing Process and Methods CS 490MT/5555, Spring 2017, Yongjie Zheng Context of Software Testing Verification & Validation Verification: checking that the software conforms to its specification. Validation:

More information

Reading Assignment. Symbolic Evaluation/Execution. Move from Dynamic Analysis to Static Analysis. Move from Dynamic Analysis to Static Analysis

Reading Assignment. Symbolic Evaluation/Execution. Move from Dynamic Analysis to Static Analysis. Move from Dynamic Analysis to Static Analysis Reading Assignment Symbolic Evaluation/Execution *R.W. Floyd, "Assigning Meaning to Programs, Symposium on Applied Mathematics, 1967, pp. 19-32 (Appeared as volume 19 of Mathematical Aspects of Computer

More information

Classifying Field Crash Reports for Fixing Bugs : A Case Study of Mozilla Firefox

Classifying Field Crash Reports for Fixing Bugs : A Case Study of Mozilla Firefox Classifying Field Crash Reports for Fixing Bugs : A Case Study of Mozilla Firefox Tejinder Dhaliwal, Foutse Khomh, Ying Zou Dept. of Electrical and Computer Engineering Queen s University, Kingston tejinder.dhaliwal@queensu.ca,

More information

Symbolic Evaluation/Execution

Symbolic Evaluation/Execution Symbolic Evaluation/Execution Reading Assignment *R.W. Floyd, "Assigning Meaning to Programs, Symposium on Applied Mathematics, 1967, pp. 19-32 (Appeared as volume 19 of Mathematical Aspects of Computer

More information

I J C S I E International Science Press

I J C S I E International Science Press Vol. 5, No. 2, December 2014, pp. 53-56 I J C S I E International Science Press Tolerating Memory Leaks at Runtime JITENDER SINGH YADAV, MOHIT YADAV, KIRTI AZAD AND JANPREET SINGH JOLLY CSE B-tech 4th

More information

References: Thomas A. Henzinger (1996): The theory of hybrid automata In: Annual IEEE Symposium on Logic in Computer Science

References: Thomas A. Henzinger (1996): The theory of hybrid automata In: Annual IEEE Symposium on Logic in Computer Science Hybrid Systems Modeling In today's fast evolving technologies where the line between analog and digital systems is getting blurred, systems consist of a mix of continuous and discrete components. A discrete

More information

Explaining Inconsistent Code. Muhammad Numair Mansur

Explaining Inconsistent Code. Muhammad Numair Mansur Explaining Inconsistent Code Muhammad Numair Mansur Introduction 50% of the time in debugging Fault localization. Becomes more tedious as the program size increase. Automatically explaining and localizing

More information

Asking and Answering Why and Why Not Questions about Program Behavior. Andrew Ko Brad Myers

Asking and Answering Why and Why Not Questions about Program Behavior. Andrew Ko Brad Myers Asking and Answering Why and Why Not Questions about Program Behavior Andrew Ko Brad Myers Asking and Answering Why and Why Not Questions about Program Behavior Andrew Ko Brad Myers now at the University

More information

Exploration of Data from Modelling and Simulation through Visualisation

Exploration of Data from Modelling and Simulation through Visualisation Exploration of Data from Modelling and Simulation through Visualisation Tao Lin: CSIRO Mathematical and Information Sciences, PO Box 664, ACT 2601, Australia. Robert Cheung*: CRC for Advanced Computational

More information

Non-Parametric Statistical Fault Localization,

Non-Parametric Statistical Fault Localization, To appear in Journal of Systems and Software Non-Parametric Statistical Fault Localization, Zhenyu Zhang a, W. K. Chan b,, T. H. Tse c, Y. T. Yu b, Peifeng Hu d a State Key Laboratory of Computer Science,

More information

Fault Identification from Web Log Files by Pattern Discovery

Fault Identification from Web Log Files by Pattern Discovery ABSTRACT International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2017 IJSRCSEIT Volume 2 Issue 2 ISSN : 2456-3307 Fault Identification from Web Log Files

More information

CATEGORIZATION OF THE DOCUMENTS BY USING MACHINE LEARNING

CATEGORIZATION OF THE DOCUMENTS BY USING MACHINE LEARNING CATEGORIZATION OF THE DOCUMENTS BY USING MACHINE LEARNING Amol Jagtap ME Computer Engineering, AISSMS COE Pune, India Email: 1 amol.jagtap55@gmail.com Abstract Machine learning is a scientific discipline

More information