Electrical Engineering
      and Computer Sciences

Electrical Engineering and Computer Sciences

COLLEGE OF ENGINEERING

UC Berkeley

Path Slicing per Object for Better Testing, Debugging, and Usage Discovery

Sudeep Juvekar, Jacob Burnim and Koushik Sen

EECS Department
University of California, Berkeley
Technical Report No. UCB/EECS-2009-132
September 26, 2009

http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-132.pdf

Given an execution trace of an object-oriented program and an object created during the execution, a path slice per object with respect to the object, or PSPO, is a part of the trace such that (1) the sequence of public methods invoked on the object in the trace is same as the sequence of public methods invoked on the object in the slice, and (2) given a method invocation in the slice, the state of all objects accessed by the method is same in both the trace and slice. A generator for a PSPO (or GPSPO in short) is a program such that its only execution trace is the PSPO. We argue that GPSPOs can be useful for debugging, creating test harnesses, creating regression test suites, discovering usage and construction patterns of a class. We present an algorithm to create GPSPOs given an execution trace and an object. We have implemented the algorithm in a prototype tool for Java, and we present several examples that demonstrate the effectiveness of our algorithm and the utility of GPSPOs.


BibTeX citation:

@techreport{Juvekar:EECS-2009-132,
    Author = {Juvekar, Sudeep and Burnim, Jacob and Sen, Koushik},
    Title = {Path Slicing per Object for Better Testing, Debugging, and Usage Discovery},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {2009},
    Month = {Sep},
    URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-132.html},
    Number = {UCB/EECS-2009-132},
    Abstract = {Given an execution trace of an object-oriented program and an object created during the execution, a path slice per object with respect to the object, or PSPO, is a part of the trace such that (1) the sequence of public methods invoked on the object in the trace is same as the sequence of public methods invoked on the object in the slice, and (2) given a method invocation in the slice, the state of all objects accessed by the method is same in both the trace and slice. A generator for a PSPO (or GPSPO in short) is a program such that its only execution trace is the PSPO. We argue that GPSPOs can be useful for debugging, creating test harnesses, creating regression test suites, discovering usage and construction patterns of a class. We
present an algorithm to create GPSPOs given an execution trace and an object. We have implemented the algorithm in a prototype tool for Java, and we present several examples that demonstrate the effectiveness of our algorithm and the utility of GPSPOs.}
}

EndNote citation:

%0 Report
%A Juvekar, Sudeep
%A Burnim, Jacob
%A Sen, Koushik
%T Path Slicing per Object for Better Testing, Debugging, and Usage Discovery
%I EECS Department, University of California, Berkeley
%D 2009
%8 September 26
%@ UCB/EECS-2009-132
%U http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-132.html
%F Juvekar:EECS-2009-132