TY - GEN
T1 - Delta execution for efficient state-space exploration of object-oriented programs
AU - D'Amorim, Marcelo
AU - Lauterburg, Steven
AU - Marinov, Darko
PY - 2007
Y1 - 2007
N2 - 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.
AB - 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.
KW - Delta execution
KW - Model checking
UR - http://www.scopus.com/inward/record.url?scp=34548201197&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34548201197&partnerID=8YFLogxK
U2 - 10.1145/1273463.1273472
DO - 10.1145/1273463.1273472
M3 - Conference contribution
AN - SCOPUS:34548201197
SN - 159593734X
SN - 9781595937346
T3 - 2007 ACM International Symposium on Software Testing and Analysis, ISSTA'07
SP - 50
EP - 60
BT - Proceedings of the 2007 ACM International Symposium on Software Testing and Analysis, ISSTA'07
T2 - 2007 ACM International Symposium on Software Testing and Analysis, ISSTA'07 and PADTAD-V Workshop
Y2 - 9 July 2007 through 12 July 2007
ER -