DocumentCode
1230503
Title
Delta Execution for Efficient State-Space Exploration of Object-Oriented Programs
Author
D´Amorim, Marcelo ; Lauterburg, Steven ; Marinov, Darko
Author_Institution
Univ. of Illinois at Urbana-Champaign, Urbana, IL
Volume
34
Issue
5
fYear
2008
Firstpage
597
Lastpage
613
Abstract
We present Delta execution, a technique that speeds up state-space exploration of object-oriented programs. 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. We exploit the fact that many execution paths in state-space exploration partially overlap. Delta execution simultaneously operates on several states/heaps and shares the common parts across the executions, separately executing only the "deltas" where the executions differ. We implemented Delta execution in two model checkers: JPF, a popular general-purpose model checker for Java programs, and BOX, a specialized model checker that we developed for efficient exploration of sequential Java programs. The results for bounded-exhaustive exploration of ten basic subject programs and one larger case study show that Delta execution reduces exploration time from 1.06x to 126.80x (with median 5.60x) in JPF and from 0.58x to 4.16x (with median 2.23x) in BOX. The results for a non-exhaustive exploration in JPF show that Delta execution reduces exploration time from 0.92x to 6.28x (with median 4.52x).
Keywords
object-oriented programming; program debugging; program testing; program verification; Delta execution; Java programs; automating test generation; model checking; object-oriented programs; sequential Java programs; state-space exploration; Model checking; Software/Program Verification; Testing and Debugging;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2008.37
Filename
4528965
Link To Document