skip to main content
10.1145/2491411.2491433acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Enhancing symbolic execution with built-in term rewriting and constrained lazy initialization

Published:18 August 2013Publication History

ABSTRACT

Symbolic execution suffers from problems when analyzing programs that handle complex data structures as their inputs and take decisions over non-linear expressions. For these programs, symbolic execution may incur invalid inputs or unidentified infeasible traces, and may raise large amounts of false alarms. Some symbolic executors tackle these problems by introducing executable preconditions to exclude invalid inputs, and some solvers exploit rewrite rules to address non linear problems. In this paper, we discuss the core limitations of executable preconditions, and address these limitations by proposing invariants specifically designed to harmonize with the lazy initialization algorithm. We exploit rewrite rules applied within the symbolic executor, to address simplifications of inverse relationships fostered from either program-specific calculations or the logic of the verification tasks. We present a symbolic executor that integrates the two techniques, and validate our approach against the verification of a relevant set of properties of the Tactical Separation Assisted Flight Environment. The empirical data show that the integrated approach can improve the effectiveness of symbolic execution.

References

  1. S. Anand, C. S. Pˇ asˇ areanu, and W. Visser. JPF-SE: A symbolic execution extension to Java PathFinder. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, LNCS 4424. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Armando, M. P. Bonacina, S. Ranise, and S. Schulz. New results on rewrite-based satisfiability procedures. ACM Transactions on Computational Logic, 10(1), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball and S. K. Rajamani. Automatically validating temporal safety properties of interfaces. In SPIN workshop on Model checking of software, LNCS 2057. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Belt, Robby, and X. Deng. Sireum/Topi LDP: A lightweight semi-decision procedure for optimizing symbolic execution-based analyses. In ACM SIGSOFT symposium on The foundations of software engineering. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Borralleras, S. Lucas, A. Oliveras, E. Rodr´ıguez-Carbonell, and A. Rubio. SAT modulo linear arithmetic for solving polynomial constraints. Journal of Automated Reasoning, 48(1), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Boyapati, S. Khurshid, and D. Marinov. Korat: automated testing based on java predicates. In International symposium on Software testing and analysis. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Braione, G. Denaro, B. Kˇ rena, and M. Pezzè. Verifying LTL properties of Bytecode with symbolic execution. In 2nd Workshop on Bytecode Semantics, Verification, Analysis and Transformation, 2008.Google ScholarGoogle Scholar
  8. C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In USENIX Symposium on Operating Systems Design and Implementation, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems, LNCS 2988. Springer, 2004.Google ScholarGoogle Scholar
  10. L. de Moura and N. Bjorner. Z3: An efficient smt solver. In Tools and Algorithms for the Construction and Analysis of Systems, LNCS 4963. Springer, 2008.Google ScholarGoogle Scholar
  11. X. Deng, J. Lee, and Robby. Bogor/Kiasan: A k-bounded symbolic execution for checking strong heap properties of open systems. In International Conference on Automated Software Engineering, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. G. D. Dennis. TSAFE: Building a trusted computing base for air traffic control software. Master’s thesis, Massachusetts Institute of Technology, 2003.Google ScholarGoogle Scholar
  13. H. Do, S. G. Elbaum, and G. Rothermel. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Software Engineering: An International Journal, 10(4), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. H. Erzberger. The automated airspace concept. In Air Traffic Management R&D Seminar, 2001.Google ScholarGoogle Scholar
  15. D. Giannakopoulou, D. H. Bushnell, J. Schumann, H. Erzberger, and K. Heere. Formal testing for separation assurance. Annals of Mathematics and Artificial Intelligence, 63(1):5–30, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. Godefroid, N. Klarlund, and K. Sen. DART: directed automated random testing. In ACM Conference on Programming language design and implementation. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In ACM Symposium on Principles of Programming Languages, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Jackson. Software Abstractions: Logic, Language, and Analysis. The MIT Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Jha, R. Limaye, and S. A. Seshia. Beaver: Engineering an efficient smt solver for bit-vector arithmetic. In International Conference on Computer Aided Verification, LNCS 5643. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. A. Khalek, G. Yang, L. Zhang, D. Marinov, and S. Khurshid. Testera: A tool for testing java programs using alloy specifications. In International Conference on Automated Software Engineering, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Khurshid, C. S. Pˇ asˇ areanu, and W. Visser. Generalized symbolic execution for model checking and testing. In Tools and Algorithms for Construction and Analysis of Systems, LNCS 2619. Springer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. C. King. Symbolic execution and program testing. Communications of the ACM, 19(7):385–394, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Marinov and S. Khurshid. Testera: A novel framework for automated testing of java programs. In International Conference on Automated Software Engineering, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. V. Nori and S. K. Rajamani. An empirical study of optimizations in YOGI. In International Conference on Software Engineering. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. S. Pˇ asˇ areanu, P. C. Mehlitz, D. H. Bushnell, K. Gundy-Burlet, M. Lowry, S. Person, and M. Pape. Combining unit-level symbolic execution and system-level concrete execution for testing NASA software. In International Symposium on Software Testing and Analysis. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. S. Pˇ asˇ areanu, N. Rungta, and W. Visser. Symbolic execution with mixed concrete-symbolic solving. In International Symposium on Software Testing and Analysis, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. K. Sen, D. Marinov, and G. Agha. CUTE: a concolic unit testing engine for C. In European Software Engineering Conference and ACM Symposium on Foundations of Software Engineering, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. H. Siddiqui and S. Khurshid. Staged symbolic execution. In ACM Symposium on Applied Computing, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. N. Sinha. Symbolic program analysis using term rewriting and generalization. In International Conference on Formal Methods in Computer-Aided Design, pages 19:1–19:9. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Souza, M. Borges, M. d’Amorim, and C. S. Pˇ asˇ areanu. Coral: Solving complex constraints for symbolic pathfinder. In NASA Formal Methods, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. W. Visser, C. S. Pˇ asˇ areanu, and S. Khurshid. Test input generation with Java PathFinder. In International Symposium on Software Testing and Analysis. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. H. Zankl and A. Middeldorp. Satisfiability of non-linear (ir)rational arithmetic. In International Conference on Logic for Programming, Artificial Intelligence, and Reasoning. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Enhancing symbolic execution with built-in term rewriting and constrained lazy initialization

    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
      ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
      August 2013
      738 pages
      ISBN:9781450322379
      DOI:10.1145/2491411

      Copyright © 2013 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: 18 August 2013

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate112of543submissions,21%

      Upcoming Conference

      FSE '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader