ACM Home Page
Please provide us with feedback. Feedback
Delta execution for efficient state-space exploration of object-oriented programs
Full text PdfPdf (209 KB)
Source
International Symposium on Software Testing and Analysis archive
Proceedings of the 2007 international symposium on Software testing and analysis table of contents
London, United Kingdom
SESSION: Model checking and components table of contents
Pages: 50 - 60  
Year of Publication: 2007
ISBN:978-1-59593-734-6
Authors
Marcelo d'Amorim  University of Illinois at Urbana-Champaign
Steven Lauterburg  University of Illinois at Urbana-Champaign
Darko Marinov  University of Illinois at Urbana-Champaign
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 38,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1273463.1273472
What is a DOI?

ABSTRACT

State-space exploration is the essence of model checking and an increasingly popular approach for automating test generation. A key issue in exploration of object-oriented programs is handling the program state, in particular the heap. Previous research has focused on standard program execution that operates on one state/heap. We present Delta Execution, a technique that simultaneously operates on several states/heaps. It exploits the fact that many execution paths in state-space exploration partially overlap and speeds up the exploration by sharing the common parts across the executions and separately executing only the "deltas" where the executions differ.

We have implemented Delta Execution in JPF, a popular general-purpose model checker for Java programs, and in BOX, a specialized model checker that we have developed for efficient exploration of sequential Java programs. We have evaluated Delta Execution for (bounded) exhaustive exploration of ten basic subject programs without errors. The experimental results show that on average Delta Execution improves the exploration time 10.97x (over an order of magnitude) in JPF and 2.07x in BOX. We have also evaluated Delta Execution for one larger case study with errors, where the exploration time improved up to 1.43x.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
T. Andrews, S. Qadeer, S. K. Rajamani, J. Rehof, and Y. Xie. Zing: A model checker for concurrent software. In CAV, 2004.
2
 
3
4
5
6
 
7
8
 
9
 
10
Daisy File System. Joint CAV/ISSTA Special Event on Specification, Verification, and Testing of Concurrent Software.
 
11
M. d'Amorim, S. Lauterburg, and D. Marinov. Delta execution for efficient state-space exploration of object-oriented programs. Technical Report UIUCDCS-R-2007-2844, University of Illinois, Urbana, IL, April 2007.
 
12
 
13
M. d'Amorim, A. Sobeih, and D. Marinov. Optimized execution of deterministic blocks in Java PathFinder. In ICFEM, 2006.
14
 
15
Eclipse foundation. http://www.eclipse.org/.
 
16
Foundations of Software Engineering at Microsoft Research. The AsmL test generator tool. http://research.microsoft.com/fse/AsmL.
 
17
18
19
 
20
K. Havelund and T. Pressburger. Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, 2(4), 2000.
 
21
 
22
 
23
J-Sim. http://www.j-sim.org/.
 
24
J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic Model Checking: 10<sup>20</sup> States and Beyond. In LICS, 1990.
 
25
S. Khurshid, C. S. Pasareanu, and W. Visser. Generalized symbolic execution for model checking and testing. In TACAS, April 2003.
26
 
27
28
 
29
P. C. Mehlitz, W. Visser, and J. Penix. The JPF runtime verification system. http://javapathfinder.sourceforge.net/JPF.pdf.
 
30
M. Musuvathi and D. L. Dill. An incremental heap canonicalization algorithm. In SPIN, 2005.
31
 
32
 
33
C. Pacheco and M. D. Ernst. Eclat: Automatic generation and classification of test inputs. In ECOOP, 2005.
 
34
35
 
36
R. Rugina. Quantitative shape analysis. In 11th International Static Analysis Symposium (SAS'04), Aug. 2004.
37
 
38
A. Sobeih, M. Viswanathan, D. Marinov, and J. C. Hou. Finding bugs in network protocols using simulation code and protocol-specific heuristics. In ICFEM, volume 3785 of LNCS, 2005.
 
39
40
41
42
43
 
44
 
45
T. Xie, D. Marinov, W. Schulte, and D. Notkin. Symstra: A framework for generating object-oriented unit tests using symbolic execution. In TACAS, 2005.
 
46
G. Yorsh, T. W. Reps, and S. Sagiv. Symbolically computing most-precise abstract operations for shape analysis. In TACAS, 2004.
 
47
Y. Zhou, D. Marinov, W. Sanders, C. Zilles, M. d'Amorim, S. Lauterburg, R. M. Lefever, and J. Tucek. Delta execution for software reliability. To appear in HotDep, 2007.


Collaborative Colleagues:
Marcelo d'Amorim: colleagues
Steven Lauterburg: colleagues
Darko Marinov: colleagues