Replaying and Isolating Failing Multi-Object Interactions. Martin Burger Andreas Zeller Saarland University
|
|
- Matthew Harrell
- 6 years ago
- Views:
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 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 informationMining 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 informationLocating 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 informationSoftware 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 informationInteractive 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 informationSimplifying 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 informationIsolating 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 informationSoftware 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 informationAutomated 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 informationProgram 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 informationMining 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 informationSimplifying 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 informationTesting, 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 informationSoftware 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 informationToday 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 informationTest 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 informationAutomated 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 informationInsECTJ: 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 informationLecture 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 informationAutomated 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 informationReplaying 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 informationSoftware 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 informationScalable 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 informationIntroduction 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 informationWhich 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 informationCombined 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 informationLecture 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 informationLecture 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 informationIsolating 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 information0/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 informationImproving 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 informationMutation-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 informationObjects 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 informationPoints 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 informationStructural 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 informationLecture 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 informationCall 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 informationIsolating 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 informationLocating 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 informationStructural 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 information7 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 information1,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 informationHow 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 informationWell-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 informationMining 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
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 informationCarving 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 informationTest 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 informationReliable 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 informationDebugging. 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 informationFlow 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 informationReCrash: 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 informationChecked 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 informationEmpirical 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 informationAutomated 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 informationPredicting 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 informationPerceptible 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 informationA 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 informationLearning 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 informationCOS 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 informationCPSC 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 informationSoftware 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 informationMotivation. 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 informationZend 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
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 informationCSE331 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 informationTesting 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 informationSoftware 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 informationStatic 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 informationAsking 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 informationSoftware 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 informationAutomatic 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 informationBuilding 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 informationCSC 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 informationAP 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 informationAn 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 informationNew 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 information9/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 informationFocused 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 informationRepetition 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 informationExtended 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 informationCSE331 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 informationQuiz 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 informationAl 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 informationCS111: 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 informationSoftware 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 informationAnswers 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 informationA 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 informationAutomatic 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 informationDEBUGGING: 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 informationProgramming 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 informationReferences: 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 informationBERT: 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 informationThis 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 informationTesting 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 informationAutomated 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 informationStandard. 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 informationSC12 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 informationHow 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