ABSTRACT
We present a novel technique that speeds up state-space exploration (SSE) for evolving programs with dynamically allocated data. SSE is the essence of explicit-state model checking and an increasingly popular method for automating test generation. Traditional, non-incremental SSE takes one version of a program and systematically explores the states reachable during the program's executions to find property violations. Incremental SSE considers several versions that arise during program evolution: reusing the results of SSE for one version can speed up SSE for the next version, since state spaces of consecutive program versions can have significant similarities. We have implemented our technique in two model checkers: Java PathFinder and the J-Sim state-space explorer. The experimental results on 24 program evolutions and exploration changes show that for non-initial runs our technique speeds up SSE in 22 cases from 6.43% to 68.62% (with median of 42.29%) and slows down SSE in only two cases for -4.71% and -4.81%.
- T. Andrews, S. Qadeer, S. K. Rajamani, J. Rehof, and Y. Xie. Zing: A model checker for concurrent software. In CAV 2004.Google Scholar
- T. Apiwattanapong, A. Orso, and M. J. Harrold. Efficient and precise dynamic impact analysis using execute-after sequences. In ICSE 2005. Google ScholarDigital Library
- C. Boyapati, S. Khurshid, and D. Marinov. Korat: Automated testing based on Java predicates. In ISSTA 2002. Google ScholarDigital Library
- E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In TACAS 2004.Google ScholarCross Ref
- E. M. Clarke, O. Grumberg, and D. A. Peled. Model Checking. The MIT Press, Cambridge, MA, 1999. Google ScholarDigital Library
- C. L. Conway, K. S. Namjoshi, D. Dams, and S. A. Edwards. Incremental algorithms for inter-procedural analysis of safety properties. In CAV 2005. Google ScholarDigital Library
- C. Csallner and Y. Smaragdakis. JCrasher: An automatic robustness tester for Java. Software - Practice and Experience, 34:1025--1050, 2004. Google ScholarDigital Library
- M. d'Amorim, S. Lauterburg, and D. Marinov. Delta execution for efficient state-space exploration of object-oriented programs. In ISSTA 2007. Google ScholarDigital Library
- M. d'Amorim, A. Sobeih, and D. Marinov. Optimized execution of deterministic blocks in Java PathFinder. In ICFEM 2006. Google ScholarDigital Library
- P. T. Darga and C. Boyapati. Efficient software model checking of data structure properties. In OOPSLA 2006. Google ScholarDigital Library
- H. Do, S. G. Elbaum, and G. Rothermel. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering, 10(4):405--435, 2005. Google ScholarDigital Library
- K. El-Fakih, N. Yevtushenko, and G. v. Bochmann. FSM-based incremental conformance testing methods. IEEE Trans. on Soft. Eng., 30(7):425--436, 2004. Google ScholarDigital Library
- S. Elbaum, H. N. Chin, M. B. Dwyer, and J. Dokulil. Carving differential unit test cases from system test cases. In FSE 2006. Google ScholarDigital Library
- S. Elbaum, A. G. Malishevsky, and G. Rothermel. Test case prioritization: A family of empirical studies. IEEE Trans. on Soft. Eng., 28(2):159--182, 2002. Google ScholarDigital Library
- T. L. Graves, M. J. Harrold, J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test selection techniques. ACM Transactions on Software Engineering and Methodology, 10(2):184--208, 2001. Google ScholarDigital Library
- M. J. Harrold, J. A. Jones, T. Li, D. Liang, and A. Gujarathi. Regression test selection for Java software. In OOPSLA 2001. Google ScholarDigital Library
- K. Havelund and G. Rosu. An overview of the runtime verification tool Java PathExplorer. Formal Methods in System Design, 24(2):189--215, 2004. Google ScholarDigital Library
- T. A. Henzinger, R. Jhala, R. Majumdar, and M. A. A. Sanvido. Extreme model checking. In International Symposium on Verification: Theory and Practice, 2003.Google ScholarCross Ref
- C. Intanagonwiwat, R. Govindan, and D. Estrin. Directed diffusion: A scalable and robust communication paradigm for sensor networks. In MobiCom 2000. Google ScholarDigital Library
- R. Iosif. Exploiting heap symmetries in explicit-state model checking of software. In ASE, page 254, Washington, DC, USA, 2001. IEEE Computer Society. Google ScholarDigital Library
- S. Khurshid, C. S. Pasareanu, and W. Visser. Generalized symbolic execution for model checking and testing. In TACAS 2003. Google ScholarDigital Library
- J. Law and G. Rothermel. Whole program path-based dynamic impact analysis. In ICSE 2003. Google ScholarDigital Library
- Z. Li, M. Harman, and R. M. Hierons. Search algorithms for regression test case prioritization. IEEE Trans. on Soft. Eng., 33(4):225--237, 2007. Google ScholarDigital Library
- J. Makowsky and E. Rawe. Incremental model checking for fixed point properties on decomposable structures. In MFCS 1995. Google ScholarDigital Library
Index Terms
- Incremental state-space exploration for programs with dynamically allocated data
Recommendations
State extensions for java pathfinder
ICSE '08: Proceedings of the 30th international conference on Software engineeringJava PathFinder (JPF) is an explicit-state model checker for Java programs. JPF implements a backtrackable Java Virtual Machine (JVM) that provides non-deterministic choices and control over thread scheduling. JPF is itself implemented in Java and runs ...
"Fly Me to the Moon": Verification of Aerospace Systems
SEFM '10: Proceedings of the 2010 8th IEEE International Conference on Software Engineering and Formal MethodsThe safety-critical nature of aerospace systems mandates the development of advanced formal verification techniques that provide desired correctness guarantees. In this paper, we present two inherently different approaches towards achieving this goal. ...
Verifying android applications using Java PathFinder
Mobile application testing is a specialised and complex field. Due to mobile applications' event driven design and mobile runtime environment, there currently exist only a small number of tools to verify these applications. This paper describes the ...
Comments