skip to main content
10.1145/1368088.1368128acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Incremental state-space exploration for programs with dynamically allocated data

Authors Info & Claims
Published:10 May 2008Publication History

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%.

References

  1. T. Andrews, S. Qadeer, S. K. Rajamani, J. Rehof, and Y. Xie. Zing: A model checker for concurrent software. In CAV 2004.Google ScholarGoogle Scholar
  2. T. Apiwattanapong, A. Orso, and M. J. Harrold. Efficient and precise dynamic impact analysis using execute-after sequences. In ICSE 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Boyapati, S. Khurshid, and D. Marinov. Korat: Automated testing based on Java predicates. In ISSTA 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In TACAS 2004.Google ScholarGoogle ScholarCross RefCross Ref
  5. E. M. Clarke, O. Grumberg, and D. A. Peled. Model Checking. The MIT Press, Cambridge, MA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Csallner and Y. Smaragdakis. JCrasher: An automatic robustness tester for Java. Software - Practice and Experience, 34:1025--1050, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. d'Amorim, S. Lauterburg, and D. Marinov. Delta execution for efficient state-space exploration of object-oriented programs. In ISSTA 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. d'Amorim, A. Sobeih, and D. Marinov. Optimized execution of deterministic blocks in Java PathFinder. In ICFEM 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. T. Darga and C. Boyapati. Efficient software model checking of data structure properties. In OOPSLA 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Elbaum, H. N. Chin, M. B. Dwyer, and J. Dokulil. Carving differential unit test cases from system test cases. In FSE 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. J. Harrold, J. A. Jones, T. Li, D. Liang, and A. Gujarathi. Regression test selection for Java software. In OOPSLA 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. C. Intanagonwiwat, R. Govindan, and D. Estrin. Directed diffusion: A scalable and robust communication paradigm for sensor networks. In MobiCom 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Iosif. Exploiting heap symmetries in explicit-state model checking of software. In ASE, page 254, Washington, DC, USA, 2001. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Khurshid, C. S. Pasareanu, and W. Visser. Generalized symbolic execution for model checking and testing. In TACAS 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Law and G. Rothermel. Whole program path-based dynamic impact analysis. In ICSE 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. Makowsky and E. Rawe. Incremental model checking for fixed point properties on decomposable structures. In MFCS 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Incremental state-space exploration for programs with dynamically allocated data

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                ICSE '08: Proceedings of the 30th international conference on Software engineering
                May 2008
                558 pages
                ISBN:9781605580791
                DOI:10.1145/1368088

                Copyright © 2008 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 10 May 2008

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                ICSE '08 Paper Acceptance Rate56of370submissions,15%Overall Acceptance Rate276of1,856submissions,15%

                Upcoming Conference

                ICSE 2025

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader