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

Size: px
Start display at page:

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

Transcription

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

2

3 client written in Java 100,200 LOC ~ 1,600 Java classes 17 developers Actively developed from February 2001 to August 2007

4

5

6 Debugging reproduce the original failure - manually by using GUI - test driver that reproduce faulty behavior

7 Debugging reproduce the original failure - manually by using GUI - test driver that reproduce faulty behavior 2. fix the actual defect - focus on relevant behavior - simplify faulty behavior

8 Faulty Component Behavior component application set of classes

9 Faulty Component Behavior crosses border interaction - method calls - field accesses - exception flow -... component application set of classes

10 Faulty Component Behavior crosses border interaction - method calls - field accesses - exception flow -... failure component application set of classes

11 Reproducing component

12 Reproducing 1. interaction component

13 Reproducing 1. interaction 2. component computes in the same way component

14 Reproducing 1. interaction 3. failure reproduced 2. component computes in the same way component

15 Simplifying

16 Simplifying many interactions

17 Simplifying many interactions replaying causes original failure

18 Simplifying minimal set of interactions replaying causes original failure

19 Simplifying delta debugging binary search minimal set of interactions replaying causes original failure

20 Implementation: JINSI debugging tool to reproduce and simplify failing components in Java programs reproduce capture and replay of interactions at component level simplify delta debugging minimizes interactions Isolating Relevant Component Interactions with JINSI. Orso + Joshi + Burger + Zeller WODA 2006

21 Original Import Run address book importer (GUI) Columba

22 Capture address book importer (GUI) Columba JINSI instrumentation

23 Capture address book importer (GUI) incoming call - method name Columba - arguments JINSI instrumentation written to event log

24 Replay address book importer (GUI) Columba

25 Replay address book importer (GUI) JINSI replaces Columba

26 Replay address book importer (GUI) JINSI replaces Columba read from event log

27 Replay original failure address book reproduced importer (GUI) JINSI replaces Columba read from event log

28 Delta Debugging address book importer (GUI) JINSI uses delta debugging event log

29 Delta Debugging AddressbookImporter() address book importer (GUI) JINSI uses delta debugging event log

30 Delta Debugging AddressbookImporter() init(file) address book importer (GUI) JINSI uses delta debugging event log

31 Delta Debugging AddressbookImporter() init(file) wizardfinished() address book importer (GUI) JINSI uses delta debugging event log

32 Delta Debugging AddressbookImporter() Problem init(file) - already minimal - too high level Solution wizardfinished() address book - much finer grained importer (GUI) JINSI uses delta debugging event log

33 Inside the Component coarse grained view black box (JINSI 2006)

34 Object Interactions object finer grained view

35 Object Interactions object finer grained view

36 Object Interactions object finer grained view

37 Object Interactions object finer grained view

38 Object Interactions captured by JINSI border crossing interactions are captured by JINSI 2006 captured by JINSI event log

39 Object Interactions all object interactions are captured by JINSI 2008

40 Object Trace all object interactions are captured by JINSI 2008 event log object trace for all objects

41 Importing the Addresses Object Trace ContactModel() setsortstring() setformattedname() setnickname() setfamilyname() addressbook. model (19 classes) 49,849 more JINSI

42 Importing the Addresses Object Trace ContactModel() setsortstring() setformattedname() setnickname() calling addressbook. model delta debugging: setfamilyname() 49,849 more > 2 hours JINSI (19 classes)

43 Object Slice dynamic backward slice: subset that may have influenced a specific object focuses on objects, not on statements objects are a natural abstraction

44 Object Interactions

45 Object Interactions suspicious object

46 Object Slice at first, include suspicious object suspicious object

47 Object Slice include interacting objects

48 Object Slice include objects that interact with those already in slice

49 Object Slice stop when reached largest connected graph

50 Object Slice simplified set of failure-inducing interactions within the component

51 Object Slice simplified set of failure-inducing interactions within the component

52 Importing Addresses Object Slice ContactModel() setgivenname() setfamilyname() setsortstring() getsortstring() getgivenname() addressbook. model (19 classes) getpreferred () JINSI

53 Delta Debugging apply delta debugging to object slice

54 Delta Debugging minimized set of failure-inducing interactions within the component original failure

55 Importing Addresses Delta Debugging ContactModel() addressbook. model (19 classes) getpreferred () JINSI

56 Slicing + Delta Debugging Incoming Interactions > 2 hours delta debugging 2 minimized 49,855 original run

57 Slicing + Delta Debugging Incoming Interactions > 2 hours delta debugging 2 minimized 49,855 object slice 7 original run simplified

58 Slicing + Delta Debugging Incoming Interactions > 2 hours delta debugging 2 minimized 49,855 original run object slice 7 delta debugging 2 minimized simplified

59 Slicing + Delta Debugging Incoming Interactions > 2 hours delta debugging 2 minimized 49,855 original run < 1 min object slice 7 delta debugging 2 minimized simplified

60 Slicing + Delta Debugging Incoming Interactions > 2 hours delta debugging 2 minimized 49,855 original run < 1 min object slice < 1 min 7 delta debugging 2 minimized simplified

61 Method from Minimal Trace public String getpreferred () { Iterator it = get iterator(); // get first item I Model model = (I Model) it.next(); // backwards compatiblity -> its not possible // anymore to create a model without if (model == null) return null; return model.getaddress(); }

62 Method from Minimal Trace public String getpreferred () { Iterator it = get iterator(); // get first item I Model model = (I Model) it.next(); // backwards compatiblity -> its not possible // anymore to create a model without if (model == null) return null; return model.getaddress(); }

63 Method from Minimal Trace public String getpreferred () { Iterator it = get iterator(); // get first item I Model model = null; (I Model) it.next(); if (it.hasnext()) model = (I Model) it.next(); // backwards compatiblity -> its not possible // anymore to create a model without if (model == null) return null; } return model.getaddress();

64 Related Work Test Factoring David Saff et al. Selective Capture-Replay Shrinivas Joshi et al. JINSI is based on these methods Efficient Test Case Minimization Andreas Leitner et al. method calls in random tests; static slicing ReCrash Shay Artzi et al. ReCrash focuses on stack trace JINSI focuses on object interactions

65 Future Work application failing but not defective component

66 Future Work application failing but not defective component

67 Future Work when observing application: too many application interactions failing but not defective component

68 Future Work application failing but not defective component

69 Future Work application failing but not defective component

70 Future Work Cause-Effect-Chain final state e.g. contact model

71 Future Work Cause-Effect-Chain intermediate states final state e.g. contact model

72 Future Work Cause-Effect-Chain input e.g. keystrokes in GUI intermediate states final state e.g. contact model

73 Future Work Capture Component Level application component JINSI captures component interaction event log

74 Future Work Replay Component Level component JINSI replays component interaction... event log

75 Future Work Replay Component Level component JINSI replays component interaction... event log

76 Future Work Replay Component + Capture Objects... and captures object interactions for all objects object trace component JINSI replays component interaction... event log

77 Challenges capture constructors - super call - constructor call as argument who is calling - caller registry to get caller of method

78 Debugging reproduce the original failure - manually by using GUI - test driver that reproduce faulty behavior 2. fix the actual defect - focus on relevant behavior - simplify faulty behavior

79 Debugging reproduce the original failure! - manually by using GUI - test driver that reproduce faulty behavior 2. fix the actual defect - focus on relevant behavior - simplify faulty behavior

80 Debugging reproduce the original failure! - manually by using GUI - test driver that reproduce faulty behavior 2. fix the actual defect - focus on relevant behavior - simplify faulty behavior!

81 Contributions

82 Contributions

83 Contributions

84 Contributions

85 Contributions

Reproducing Crashes. Shifting Role of Testing. Shifting Role of Testing. Waterfall Model, V-Model

Reproducing Crashes. Shifting Role of Testing. Shifting Role of Testing. Waterfall Model, V-Model Reproducing Crashes Andreas Leitner Universität des Saarlandes 11.12.2008 1 Shifting Role of ing ing often ne towards release-time Modern development processes move testing to the center of development

More information

Mining Operational Preconditions. Andrzej Wasylkowski Andreas Zeller Saarland University

Mining Operational Preconditions. Andrzej Wasylkowski Andreas Zeller Saarland University Mining Operational Preconditions Andrzej Wasylkowski Andreas Zeller Saarland University @interface A {} bug.aj aspect Test { declare @field : @A int var* : @A; declare @field : int var* : @A; interface

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

Software Engineering

Software Engineering Software Engineering Lecture 12: Testing and Debugging Debugging Peter Thiemann University of Freiburg, Germany 13.06.2013 Today s Topic Last Lecture Bug tracking Program control Design for Debugging Input

More information

Interactive Debugging for Big Data Analytics

Interactive Debugging for Big Data Analytics Interactive Debugging for Big Data Analytics Muhammad Ali Gulzar, Xueyuan Han, Matteo Interlandi, Shaghayegh Mardani, Sai Deep Tetali, Tyson Condie, Todd Millstein, Miryung Kim University of California,

More information

Simplifying Contract-Violating Traces

Simplifying Contract-Violating Traces Simplifying Contract-Violating Traces Christian Colombo Adrian Francalanza Ian Grima Department of Computer Science, University of Malta {christian.colombo adrian.francalanza igri0007}@um.edu.mt Contract

More information

Isolating Failure-Inducing Thread Schedules

Isolating Failure-Inducing Thread Schedules Isolating Failure-Inducing Thread Schedules by Jong-Deok Choi - IBM T.J. Watson Research Center and Andreas Zeller - Saarland University Marlene Hochrieser FMV - Institute for Formal Models and Verification

More information

Software Engineering

Software Engineering Software Engineering Lecture 16: Testing and Debugging Debugging Peter Thiemann University of Freiburg, Germany SS 2014 Today s Topic This Lecture Execution observation Tracking causes and effects Central

More information

Automated Debugging in Eclipse (at the touch of not even a button)

Automated Debugging in Eclipse (at the touch of not even a button) Automated Debugging in Eclipse (at the touch of not even a button) Philipp Bouillon bouillon@st.cs.uni-sb.de Martin Burger mburger@st.cs.uni-sb.de Software Engineering Chair, Saarland University Andreas

More information

Program Analysis: A Hierarchy

Program Analysis: A Hierarchy 0/13 Workshop on Dynamic Analysis, Portland, Oregon, 2003 Program Analysis: A Hierarchy Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken A Hierarchy of Reasoning 1/13 Experimentation

More information

Mining Temporal Specifications from Object Usage. Andrzej Wasylkowski Andreas Zeller Saarland University

Mining Temporal Specifications from Object Usage. Andrzej Wasylkowski Andreas Zeller Saarland University Mining Temporal Specifications from Object Usage Andrzej Wasylkowski Andreas Zeller Saarland University bug.aj @interface A { aspect Test { declare @field : @A int var* : @A; declare @field : int var*

More information

Simplifying Contract-Violating Traces

Simplifying Contract-Violating Traces Simplifying Contract-Violating Traces Christian Colombo Adrian Francalanza Ian Grima Department of Computer Science, University of Malta {christian.colombo adrian.francalanza igri0007}@um.edu.mt Contract

More information

Testing, Debugging, Program Verification

Testing, Debugging, Program Verification Testing, Debugging, Program Verification Debugging Programs, Part II Wolfgang Ahrendt & Vladimir Klebanov & Moa Johansson & Gabriele Paganelli 14 November 2012 TDV: Debugging II /GU 2011-11-09 1 / 32 Today

More information

Software Engineering Testing and Debugging Debugging

Software Engineering Testing and Debugging Debugging Software Engineering Testing and Debugging Debugging Prof. Dr. Peter Thiemann Universität Freiburg 13.07.2009 Today s Topic Last Lecture Bug tracking Program control Design for Debugging Input simplification

More information

Today s Topic. Software Engineering Testing and Debugging Debugging. Today s Topic. The Main Steps in Systematic Debugging

Today s Topic. Software Engineering Testing and Debugging Debugging. Today s Topic. The Main Steps in Systematic Debugging Today s Topic Software Engineering Testing and Debugging Debugging Prof. Dr. Peter Thiemann Last Lecture Bug tracking Program control Design for Debugging Input simplification Universität Freiburg 22.06.2011

More information

Test Factoring: Focusing test suites on the task at hand

Test Factoring: Focusing test suites on the task at hand Test Factoring: Focusing test suites on the task at hand, MIT ASE 2005 1 The problem: large, general system tests My test suite One hour Where I changed code Where I broke code How can I get: Quicker feedback?

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

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,

More information

Lecture 20. Delta Debugging Regression Testing. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 20. Delta Debugging Regression Testing. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 20 Delta Debugging Regression Testing EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Today s Agenda Regression Testing Delta Debugging: Presentation by Divya (advocate) Presentation

More information

Automated Debugging In Data Intensive Scalable Computing Systems

Automated Debugging In Data Intensive Scalable Computing Systems Automated Debugging In Data Intensive Scalable Computing Systems Muhammad Ali Gulzar 1, Matteo Interlandi 3, Xueyuan Han 2, Mingda Li 1, Tyson Condie 1, and Miryung Kim 1 1 University of California, Los

More information

Replaying and Isolating Failure-Inducing Program Interactions. Martin Burger

Replaying and Isolating Failure-Inducing Program Interactions. Martin Burger Replaying and Isolating Failure-Inducing Program Interactions Martin Burger Dissertation zur Erlangung des Grades des Doktors der Ingenierwissenschaften der Naturwissenschaftlich-Technischen Fakultäten

More information

Software Quality. Debugging " Martin Glinz. Chapter 4. Department of Informatics!

Software Quality. Debugging  Martin Glinz. Chapter 4. Department of Informatics! Department of Informatics! Martin Glinz Software Quality Chapter 4 Debugging " 2014 Martin Glinz. All rights reserved. Making digital or hard copies of all or part of this work for educational, non-commercial

More information

Scalable Isolation of Failure- Inducing Changes via Version Comparison

Scalable Isolation of Failure- Inducing Changes via Version Comparison Scalable Isolation of Failure- Inducing Changes via Version Comparison Mohammadreza Ghanavati, Artur Andrzejak, Zhen Dong Heidelberg University artur@uni-hd.de http://pvs.ifi.uni-heidelberg.de/ 1 Debugging

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

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

Combined Static and Dynamic Automated Test Generation

Combined Static and Dynamic Automated Test Generation Combined Static and Dynamic Automated Test Generation Sai Zhang University of Washington Joint work with: David Saff, Yingyi Bu, Michael D. Ernst 1 Unit Testing for Object-oriented Programs Unit test =

More information

Lecture 18. Delta Debugging-- Yesterday my program worked, it does not. Why? EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 18. Delta Debugging-- Yesterday my program worked, it does not. Why? EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 18 Delta Debugging-- Yesterday my program worked, it does not. Why? EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim This Week - Fault Localization Debugging is a process of finding

More information

Lecture 19. Delta Debugging Cooperative Bug Isolation. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 19. Delta Debugging Cooperative Bug Isolation. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 19 Delta Debugging Cooperative Bug Isolation EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Today s Agenda Presentation: Chris on Cooperative Bug Isolation Quiz on Delta Debugging

More information

Isolating Failure Causes. Andreas Zeller

Isolating Failure Causes. Andreas Zeller Isolating Failure Causes Andreas Zeller Isolating Causes Actual world Alternate world Test? Mixed world 2 Isolating Causes Actual world Alternate world + 1.0 How can we automate this? Test? Mixed world

More information

0/38. Detecting Invariants. Andreas Zeller + Andreas Gross. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken

0/38. Detecting Invariants. Andreas Zeller + Andreas Gross. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken 0/38 Detecting Invariants Andreas Zeller + Andreas Gross Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken Exam 1/38 on Tuesday, 2003-02-18, 11:15 in lecture room 45/001 (here) Written

More information

Improving Software Testability

Improving Software Testability Improving Software Testability George Yee, 1Z48-M Jan 14, 2000 1 Contents 1. Introduction 2. Improving Testability at Design Time 3. Improving Testability at Coding Time 4. Putting it into Practice 5.

More information

Mutation-based Generation of Tests and Oracles. Gordon Fraser and Andreas Zeller Saarland University, Germany

Mutation-based Generation of Tests and Oracles. Gordon Fraser and Andreas Zeller Saarland University, Germany Mutation-based Generation of Tests and Oracles Gordon Fraser and Andreas Zeller Saarland University, Germany LocalDate date = new LocalDate(2010, 7, 15); date.plusyears(1); assertequals(date.getyear(),

More information

Objects and Iterators

Objects and Iterators Objects and Iterators Can We Have Data Structures With Generic Types? What s in a Bag? All our implementations of collections so far allowed for one data type for the entire collection To accommodate a

More information

Points off Total off Net Score. CS 314 Final Exam Spring 2017

Points off Total off Net Score. CS 314 Final Exam Spring 2017 Points off 1 2 3 4 5 6 Total off Net Score CS 314 Final Exam Spring 2017 Your Name Your UTEID Instructions: 1. There are 6 questions on this test. 100 points available. Scores will be scaled to 300 points.

More information

Structural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box

Structural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box From Pressman, Software Engineering a practitioner s approach, Chapter 14 and Pezze + Young, Software Testing and Analysis, Chapters 12-13 Structural Testing Software Engineering Andreas Zeller Saarland

More information

Lecture 5: Methods CS2301

Lecture 5: Methods CS2301 Lecture 5: Methods NADA ALZAHRANI CS2301 1 Opening Problem Find the sum of integers from 1 to 10, from 20 to 30, and from 35 to 45, respectively. 2 Solution public static int sum(int i1, int i2) { int

More information

Call Paths for Pin Tools

Call Paths for Pin Tools , Xu Liu, and John Mellor-Crummey Department of Computer Science Rice University CGO'14, Orlando, FL February 17, 2014 What is a Call Path? main() A() B() Foo() { x = *ptr;} Chain of function calls that

More information

Isolating and Locating Cause-Effect Chains. bug.c. What is the cause of this failure? What do we do now? Andreas Zeller

Isolating and Locating Cause-Effect Chains. bug.c. What is the cause of this failure? What do we do now? Andreas Zeller Isolating and Locating Cause-Effect Chains Andreas Zeller 1 bug.c double bug(double z[], int n) { int i, j; } i = 0; for (j = 0; j < n; j++) { i = i + j + 1; z[i] = z[i] * (z[0] + 1.0); } return z[n];

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

Structural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box

Structural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box From Pressman, Software Engineering a practitioner s approach, Chapter 14 and Pezze + Young, Software Testing and Analysis, Chapters 12-13 Structural Testing Software Engineering Andreas Zeller Saarland

More information

7 The Integrated Debugger

7 The Integrated Debugger 7 The Integrated Debugger Your skill set for writing programs would not be complete without knowing how to use a debugger. While a debugger is traditionally associated with finding bugs, it can also be

More information

1,000 Testers in a Shoe Box Advances in Automated Test Generation Andreas Zeller Saarland University, Saarbrücken, Germany

1,000 Testers in a Shoe Box Advances in Automated Test Generation Andreas Zeller Saarland University, Saarbrücken, Germany 1,000 Testers in a Shoe Box Advances in Automated Test Generation Andreas Zeller Saarland University, Saarbrücken, Germany Visual Computing Institute Center for Information Security, Privacy and Accountability

More information

How Failures Come to be. Andreas Zeller

How Failures Come to be. Andreas Zeller How Failures Come to be Andreas Zeller An F-16 (northern hemisphere) 2 An F-16 (southern hemisphere) 3 F-16 Landing Gear 4 The First Bug September 9, 1947 5 More Bugs 6 Facts on Debugging Software bugs

More information

Well-behaved Objects. Most of the chapter focuses on testing Our first project will involve a diary

Well-behaved Objects. Most of the chapter focuses on testing Our first project will involve a diary Well-behaved Objects Most of the chapter focuses on testing Our first project will involve a diary We will study the code and then look at some test programs We will see how testing can be automated We

More information

Mining Specifications

Mining Specifications Mining Specifications Andreas Zeller Saarland University zeller@acm.org WINNER OF JOLT PRODUCTIVITY AWARD ANDREAS ZELLER WHY PROGRAMS FAIL A GUIDE TO SYSTEMATIC DEBUGGING SECOND EDITION FOSE 10 FSE 10

More information

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing

More information

Carving Invariants. Andreas Zeller Saarland University. CREST Open Workshop The Oracle Problem for Automated Software Testing, London, May 2012

Carving Invariants. Andreas Zeller Saarland University. CREST Open Workshop The Oracle Problem for Automated Software Testing, London, May 2012 Carving Invariants Andreas Zeller Saarland University CREST Open Workshop The Oracle Problem for Automated Software Testing, London, May 2012 Concrete Tests Concrete Tests y = sqrt(4) assert(y == 2) Concrete

More information

Test Automation. 20 December 2017

Test Automation. 20 December 2017 Test Automation 20 December 2017 The problem of test automation Testing has repetitive components, so automation is justified The problem is cost-benefit evaluation of automation [Kaner] Time for: test

More information

Reliable programming

Reliable programming Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed

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

Flow Propagation Algorithm

Flow Propagation Algorithm SOMA Flow Propagation Algorithm Univ.Prof. Dr. Franz Wotawa, Birgit Hofer Institut für Softwaretechnologie {wotawa, hofer}@ist.tugraz.at Institute for Software Technology Agenda Flow Propagation Algorithm

More information

ReCrash: Making Crashes Reproducible Sunghun Kim, Shay Artzi, and Michael D. Ernst

ReCrash: Making Crashes Reproducible Sunghun Kim, Shay Artzi, and Michael D. Ernst Computer Science and Artificial Intelligence Laboratory Technical Report MIT-CSAIL-TR-2007-054 November 20, 2007 ReCrash: Making Crashes Reproducible Sunghun Kim, Shay Artzi, and Michael D. Ernst massachusetts

More information

Checked and Unchecked Exceptions in Java

Checked and Unchecked Exceptions in Java Checked and Unchecked Exceptions in Java Introduction In this article from my free Java 8 course, I will introduce you to Checked and Unchecked Exceptions in Java. Handling exceptions is the process by

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

Automated Debugging with Error Invariants

Automated Debugging with Error Invariants Automated Debugging with Error Invariants Thomas Wies New York University joint work with Jürgen Christ, Evren Ermis (Freiburg University), Martin Schäf (SRI), Daniel Schwartz-Narbonne (NYU) Faulty Shell

More information

Predicting Bugs. by Analyzing History. Sunghun Kim Research On Program Analysis System Seoul National University

Predicting Bugs. by Analyzing History. Sunghun Kim Research On Program Analysis System Seoul National University Predicting Bugs by Analyzing History Sunghun Kim Research On Program Analysis System Seoul National University Around the World in 80 days Around the World in 8 years Predicting Bugs Severe consequences

More information

Perceptible Software for Maintenance and Enhancement

Perceptible Software for Maintenance and Enhancement Software Engineering: 2011; 1(1): 1-8 DOI: 10. 5923/j.se.20110101.01 Perceptible Software for Maintenance and Enhancement T. Shimomura Dept. of Information Science and Intelligent Systems, University of

More information

A Technique for Enabling and Supporting Debugging of Field Failures

A Technique for Enabling and Supporting Debugging of Field Failures A Technique for Enabling and Supporting Debugging of Field Failures James Clause and Alessandro Orso Georgia Institute of Technology This work was supported in part by NSF awards CCF-0541080 and CCR-0205422

More information

Learning from Executions

Learning from Executions Learning from Executions Dynamic analysis for program understanding and software engineering Michael D. Ernst and Jeff H. Perkins November 7, 2005 Tutorial at ASE 2005 Outline What is dynamic analysis?

More information

COS 226 Midterm Exam, Spring 2009

COS 226 Midterm Exam, Spring 2009 NAME: login ID: precept: COS 226 Midterm Exam, Spring 2009 This test is 10 questions, weighted as indicated. The exam is closed book, except that you are allowed to use a one page cheatsheet. No calculators

More information

CPSC 211, Sections : Data Structures and Implementations, Honors Final Exam May 4, 2001

CPSC 211, Sections : Data Structures and Implementations, Honors Final Exam May 4, 2001 CPSC 211, Sections 201 203: Data Structures and Implementations, Honors Final Exam May 4, 2001 Name: Section: Instructions: 1. This is a closed book exam. Do not use any notes or books. Do not confer with

More information

Software Engineering

Software Engineering Software Engineering Lecture 15: Testing and Debugging Debugging Peter Thiemann University of Freiburg, Germany SS 2014 Motivation Debugging is unavoidable and a major economical factor Software bugs cost

More information

Motivation. Overview. Scalable Dynamic Analysis for Automated Fault Location and Avoidance. Rajiv Gupta. Program Execution

Motivation. Overview. Scalable Dynamic Analysis for Automated Fault Location and Avoidance. Rajiv Gupta. Program Execution Motivation Scalable Dynamic Analysis for Automated Fault Location and Avoidance Rajiv Gupta Funded by NSF grants from CPA, CSR, & CRI programs and grants from Microsoft Research Software bugs cost the

More information

Zend Server 5.0 Code Tracing

Zend Server 5.0 Code Tracing Zend Server 5.0 Code Tracing Cohen Tzahi Product Manager Nov. 2009 Zend Server 5.0 Faster problem resolution with code tracing Better application performance with Job Queue Support for the new PHP 5.3

More information

+ Abstract Data Types

+ Abstract Data Types Linked Lists Abstract Data Types An Abstract Data Type (ADT) is: a set of values a set of operations Sounds familiar, right? I gave a similar definition for a data structure. Abstract Data Types Abstract

More information

CSE331 Winter 2014, Midterm Examination February 12, 2014

CSE331 Winter 2014, Midterm Examination February 12, 2014 CSE331 Winter 2014, Midterm Examination February 12, 2014 Please do not turn the page until 10:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 11:20. There are 100 points

More information

Testing and Debugging

Testing and Debugging Testing and Debugging Comp-303 : Programming Techniques Lecture 14 Alexandre Denault Computer Science McGill University Winter 2004 March 1, 2004 Lecture 14 Comp 303 : Testing and Debugging Page 1 Announcements...

More information

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Software Quality Engineering Slide (Ch.11) 1 Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement Jeff Tian, tian@engr.smu.edu www.engr.smu.edu/ tian/sqebook Chapter 11.

More information

Static and dynamic analysis: synergy and duality

Static and dynamic analysis: synergy and duality Static and dynamic analysis: synergy and duality Michael Ernst MIT Computer Science & Artificial Intelligence Lab http://pag.csail.mit.edu/~mernst/ PASTE June 7, 2004 Michael Ernst, page 1 Goals Theme:

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

Software Theory and Practice Lab STAP Shanghai Jiao Tong University

Software Theory and Practice Lab STAP Shanghai Jiao Tong University Jianjun Zhao Joint work with my students Sai Zhang, Zhongxian Gu, Yu Lin Software Theory and Practice Lab STAP Shanghai Jiao Tong University http://stap.sjtu.edu.cn/ 2009 12 12 Verification and Analysis

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

Building a Reactive Immune System for Software Services

Building a Reactive Immune System for Software Services Building a Reactive Immune System for Software Services Tobias Haupt January 24, 2007 Abstract In this article I summarize the ideas and concepts of the paper Building a Reactive Immune System for Software

More information

CSC 1052 Algorithms & Data Structures II: Linked Lists Revisited

CSC 1052 Algorithms & Data Structures II: Linked Lists Revisited CSC 1052 Algorithms & Data Structures II: Linked Lists Revisited Professor Henry Carter Spring 2018 Recap Recursion involves defining a solution based on smaller versions of the same solution Three components:

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

An Activation Record for Simple Subprograms. Activation Record for a Language with Stack-Dynamic Local Variables

An Activation Record for Simple Subprograms. Activation Record for a Language with Stack-Dynamic Local Variables Activation Records The storage (for formals, local variables, function results etc.) needed for execution of a subprogram is organized as an activation record. An Activation Record for Simple Subprograms.

More information

New IDE Application Profiler Enhancements

New IDE Application Profiler Enhancements New IDE Application Profiler Enhancements Authored by: Elena Laskavaia The new Application Profiler features are currently under development for the next release of QNX Momentics. Use the forum and provide

More information

9/19/2018 Programming Data Structures. Polymorphism And Abstract

9/19/2018 Programming Data Structures. Polymorphism And Abstract 9/19/2018 Programming Data Structures Polymorphism And Abstract 1 In-class assignment: deadline noon!! 2 Overview: 4 main concepts in Object-Oriented Encapsulation in Java is a mechanism of wrapping the

More information

Focused Iterative Testing: A Test Automation Case Study Mechelle Gittens, Pramod Gupta, David Godwin, Hebert Pereyra, Jeff Riihimaki

Focused Iterative Testing: A Test Automation Case Study Mechelle Gittens, Pramod Gupta, David Godwin, Hebert Pereyra, Jeff Riihimaki IBM Software Group Focused Iterative Testing: A Test Automation Case Study Mechelle Gittens, Pramod Gupta, David Godwin, Hebert Pereyra, Jeff Riihimaki 2008 IBM Corporation Problem Definition: Find Timing

More information

Repetition and Loop Statements Chapter 5

Repetition and Loop Statements Chapter 5 Repetition and Loop Statements Chapter 5 1 Chapter Objectives To understand why repetition is an important control structure in programming To learn about loop control variables and the three steps needed

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

CSE331 Winter 2014, Midterm Examination February 12, 2014

CSE331 Winter 2014, Midterm Examination February 12, 2014 CSE331 Winter 2014, Midterm Examination February 12, 2014 Please do not turn the page until 10:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 11:20. There are 100 points

More information

Quiz on Tuesday April 13. CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4. Java facts and questions. Things to try in Java

Quiz on Tuesday April 13. CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4. Java facts and questions. Things to try in Java CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4 Bruce Char and Vera Zaychik. All rights reserved by the author. Permission is given to students enrolled in CS361 Fall 2004 to reproduce

More information

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department 0901212 Python Programming 1 st Semester 2014/2015 Course Catalog This course introduces

More information

CS111: PROGRAMMING LANGUAGE II

CS111: PROGRAMMING LANGUAGE II CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1(c): Java Basics (II) Lecture Contents Java basics (part II) Conditions Loops Methods Conditions & Branching Conditional Statements A

More information

Software LEIC/LETI. Lecture 20

Software LEIC/LETI. Lecture 20 Software Engineering @ LEIC/LETI Lecture 20 Last Lecture Profiler and Debugger tools Offline concurrency patterns Presentation logic Services Domain logic Remote access Data access Remote Service Database

More information

Answers to review questions from Chapter 2

Answers to review questions from Chapter 2 Answers to review questions from Chapter 2 1. Explain in your own words the difference between a method and a program. A method computes a value or performs some operation on behalf of the code for a program.

More information

A Lightweight and Portable Approach to Making Concurrent Failures Reproducible

A Lightweight and Portable Approach to Making Concurrent Failures Reproducible A Lightweight and Portable Approach to Making Concurrent Failures Reproducible Qingzhou Luo 1, Sai Zhang 2, Jianjun Zhao 1, and Min Hu 1 1 School of Software, Shanghai Jiao Tong University {seriousam,

More information

Automatic Generation of Program Specifications

Automatic Generation of Program Specifications Automatic Generation of Program Specifications Jeremy Nimmer MIT Lab for Computer Science http://pag.lcs.mit.edu/ Joint work with Michael Ernst Jeremy Nimmer, page 1 Synopsis Specifications are useful

More information

DEBUGGING: TESTING WS 2017/2018. Martina Seidl Institute for Formal Models and Verification

DEBUGGING: TESTING WS 2017/2018. Martina Seidl Institute for Formal Models and Verification DEBUGGING: TESTING WS 2017/2018 Martina Seidl Institute for Formal Models and Verification Testing is a Huge Field... 1/42 Costs of Defective Software 2/42 Testing Testing is the execution of a program

More information

Programming 2. Topic 8: Linked Lists, Basic Searching and Sorting

Programming 2. Topic 8: Linked Lists, Basic Searching and Sorting RMIT School of Computer Science and Information Technology Programming 2 Topic 8: Linked Lists, Basic Searching and Sorting Lecture Slides COPYRIGHT 2008 RMIT University. Original content by: Peter Tilmanis,

More information

References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1

References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,

More information

BERT: BEhavioral Regression Testing

BERT: BEhavioral Regression Testing BERT: BEhavioral Regression Testing Alessandro Orso College of Computing Georgia Institute of Technology orso@cc.gatech.edu Tao Xie Department of Computer Science North Carolina State University xie@csc.ncsu.edu

More information

This page intentionally left blank

This page intentionally left blank This page intentionally left blank arting Out with Java: From Control Structures through Objects International Edition - PDF - PDF - PDF Cover Contents Preface Chapter 1 Introduction to Computers and Java

More information

Testing Exceptions with Enforcer

Testing Exceptions with Enforcer Testing Exceptions with Enforcer Cyrille Artho February 23, 2010 National Institute of Advanced Industrial Science and Technology (AIST), Research Center for Information Security (RCIS) Abstract Java library

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 1 Cheng Zhang 2 Michael D. Ernst 1 1 University of Washington 2 Shanghai Jiao Tong University szhang@cs.washington.edu cheng.zhang.stap@sjtu.edu.cn

More information

Standard. Number of Correlations

Standard. Number of Correlations Computer Science 2016 This assessment contains 80 items, but only 80 are used at one time. Programming and Software Development Number of Correlations Standard Type Standard 2 Duty 1) CONTENT STANDARD

More information

SC12 HPC Educators session: Unveiling parallelization strategies at undergraduate level

SC12 HPC Educators session: Unveiling parallelization strategies at undergraduate level SC12 HPC Educators session: Unveiling parallelization strategies at undergraduate level E. Ayguadé, R. M. Badia, D. Jiménez, J. Labarta and V. Subotic August 31, 2012 Index Index 1 1 The infrastructure:

More information

How Developers Diagnose and Repair Software Bugs

How Developers Diagnose and Repair Software Bugs How Developers Diagnose and Repair Software Bugs Marcel Böhme Ezekiel O. Soremekun Sudipta Chattopadhyay Emamurho J. Ugherughe Andreas Zeller https://www.st.cs.uni-saarland.de/debugging/dbgbench/ Debugging

More information