Discovering Accurate Interclass Test Dependence - PowerPoint PPT Presentation

About This Presentation
Title:

Discovering Accurate Interclass Test Dependence

Description:

No method calls (Stack & its ... Methods called but no impact on the caller (the above ... Method-level dependence calculation makes context-sensitive ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 23
Provided by: paste07Cs
Category:

less

Transcript and Presenter's Notes

Title: Discovering Accurate Interclass Test Dependence


1
Discovering Accurate Interclass Test Dependence
Weilei Zhang, Barbara RyderDepartment of
Computer ScienceRutgers University
2
Motivation
  • Class testing is very important for OO testing
  • It corresponds with the classic definition of
    unit testing by exercising a relatively small
    software component via a driver
  • Most classes in the system are interdependent,
    and there is test dependence between classes
  • An accurate knowledge of ICTD (InterClass Test
    Dependence) is desired
  • Important in deciding class integration test
    order
  • Dependence cycles/SCCs causes complication
  • Helpful to parallelize integration test
    activities
  • Can be useful for program understanding and
    software visualization

3
Existing works on ICTD
ORD-based
  • Briand, et al (TSE 2003)
  • Milanova, et al (ICSM 2002)
  • Hanh, et al (ECOOP 2001)
  • Labiche, et al (ICSE 2000)
  • Tai and Daniels (JOOP 1999)
  • Kung, et al (JOOP 1995)

4
ORD-Based Definition For ICTD
  • Causes for ICTD
  • Inheritance
  • Aggregation
  • Association
  • Polymorphism

B
As
A
I
Ag
C
D
  • B is test dependent on A, C and D
  • Transitive closure of the above

5
Contributions
  • To propose and formalize a new definition for
    ICTD in order to prune out the spurious
    dependences
  • Semantics-based definition
  • To give a practical algorithm to approximate the
    definition
  • Method-level dependence analysis
  • To implement the algorithm and evaluate the
    results

6
Motivating Examples
As
DeliveryHandler
DeliveryTransaction
  • specjbb benchmark

As
class DeliveryHandlerpublic void
handleDelivery(DeliveryTransaction
deliveryTransaction) deliveryTransaction.proces
s() deliveryTransaction.display(outFile)
  • Cases when ICTD does not exist though there is
    association
  • No reference during run-time (Milanova et al ICSM
    2002)
  • No method calls (Stack its containees)
  • Only calls to inherited methods (HashMap its
    containees)
  • Methods called but no impact on the caller (the
    above in specjbb)

7
Semantics-based Definition of ICTD
  • There is test dependence from class A to class B,
    if there is a statement s in a method callable on
    an A object and a statement t in a method
    declared in B, such that
  • s may have visible side effects (i.e., s may
    either write to the external memory or return a
    value), and
  • s is semantically dependent on t while testing
    class A

8
Approximation Algorithm
  • Turing-incomputable -gt dependence analysis
  • Statement-level granularity dependence analysis
    is too costly
  • Approximate at method-level granularity
    dependence
  • Three causes for method dependence
  • Caller uses return value of callee
  • Callee is control-dependent on caller
  • Side effect one method writes to the same memory
    region that another method reads
  • Propagate dependences on the call graph

wx.foo()
9
Algorithm Illustration
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
10
Algorithm Illustration
Methods Callable on CUT
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
11
Algorithm Illustration
Methods Callable on CUT
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
12
Algorithm Illustration
Methods Callable on CUT
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
13
Algorithm Illustration
Methods Callable on CUT
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
14
Algorithm Illustration
Methods Callable on CUT
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
15
Algorithm Illustration
Methods Callable on CUT
CUT
class
Method
Heap Data
Call and return useful value
Other calls
Side Effect
write
read
16
Analysis Configurations
  • The proposed algorithm is parameterized by the
    choice of program analyses to calculate the call
    graph and side effect information
  • For analysis configuration applied
  • VTA variable type analysis (call graph not
    constructed on the fly)
  • 0CFA 0-CFA (call graph constructed on the fly)
  • OB 1-object-sensitive points-to analysis
  • OBR OBR (a data reachability algorithm to
    resolve library call-backs and construct accurate
    application call graphs)

17
ICTD Reduction Rate wrt. ORD-based Definition
18
Size of Dependence Cycles
19
Objective-Sensitive Analysis
  • Metrics output_properly()this.wrap()
  • AsciiMetrics overrides Method wrap().

20
Objective-Sensitive Analysis
  • Metrics output_properly()this.wrap()
  • AsciiMetrics overrides Method wrap().

Object-sensitive CG
Methods reachable from Metrics
Methods reachable from AsciiMetrics
m, Metrics output_properly()
am, Metrics output_properly()
m,Metrics wrap()
am,AsciiMetrics wrap()
PLDI07 Sridharan, Fink, Bodik
context-sensitive dependence analysis is too
costly and did not provide much realistic usage
for thin slicing. Method-level dependence
calculation makes context-sensitive dependence
analysis more practical and it is very useful in
our study in ICTD.
21
Conclusions
  • A new semantics-based accurate definition for
    interclass test dependence
  • An approximate algorithm and implementation
  • A great number of spurious dependences are
    removed
  • Dependence cycles are determined accurately in 6
    out of 7 benchmarks amenable to code inspection.
  • Method-level dependence propagation makes
    object-sensitive dependence analysis more
    practical
  • Object-sensitive analysis is key to achieve
    accurate results for dependence cycles

22
  • Thanks!

Questions?
Write a Comment
User Comments (0)
About PowerShow.com