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

Precision reuse for efficient regression verification

Published:18 August 2013Publication History

ABSTRACT

Continuous testing during development is a well-established technique for software-quality assurance. Continuous model checking from revision to revision is not yet established as a standard practice, because the enormous resource consumption makes its application impractical. Model checkers compute a large number of verification facts that are necessary for verifying if a given specification holds. We have identified a category of such intermediate results that are easy to store and efficient to reuse: abstraction precisions. The precision of an abstract domain specifies the level of abstraction that the analysis works on. Precisions are thus a precious result of the verification effort and it is a waste of resources to throw them away after each verification run. In particular, precisions are reasonably small and thus easy to store; they are easy to process and have a large impact on resource consumption. We experimentally show the impact of precision reuse on industrial verification problems created from 62 Linux kernel device drivers with 1119 revisions.

References

  1. J. Backes, S. Person, N. Rungta, and O. Tkachuk. Regression verification using impact summaries. In Proc. SPIN, LNCS 7976, pp. 99–116. Springer, 2013.Google ScholarGoogle Scholar
  2. T. Ball and S. K. Rajamani. The Slam project: Debugging system software via static analysis. In Proc. POPL, pp. 1–3. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Barrett, A. Stump, and C. Tinelli. The SMT-LIB Standard: Version 2.0. In Proc. SMT, 2010.Google ScholarGoogle Scholar
  4. D. Beyer. Second competition on software verification (Summary of SV-COMP 2013). In Proc. TACAS, LNCS 7795, pp. 594–609. Springer, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Beyer, A. Cimatti, A. Griggio, M. E. Keremoglu, and R. Sebastiani. Software model checking via large-block encoding. In Proc. FMCAD, pp. 25–32. IEEE, 2009.Google ScholarGoogle Scholar
  6. D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar. The software model checker Blast. Int. J. Softw. Tools Technol. Transfer, 9(5-6):505–525, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Beyer, T. A. Henzinger, M. E. Keremoglu, and P. Wendler. Conditional model checking: A technique to pass information between verifiers. In Proc. FSE. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Beyer, T. A. Henzinger, and G. Théoduloz. Lazy shape analysis. In Proc. CAV, LNCS 4144, pp. 532–546. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Beyer, T. A. Henzinger, and G. Théoduloz. Program analysis with dynamic precision adjustment. In Proc. ASE, pp. 29–38. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Beyer, A. Holzer, M. Tautschnig, and H. Veith. Information reuse for multi-goal reachability analyses. In Proc. ESOP, pp. 472–491. Springer, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Beyer and M. E. Keremoglu. CPAchecker: A tool for configurable software verification. In Proc. CAV, LNCS 6806, pp. 184–190. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Beyer, M. E. Keremoglu, and P. Wendler. Predicate abstraction with adjustable-block encoding. In Proc. FMCAD, pp. 189–197. FMCAD, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Beyer and S. Löwe. Explicit-state software model checking based on CEGAR and interpolation. In Proc. FASE, LNCS 7793, pp. 146–162. Springer, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Beyer, S. Löwe, E. Novikov, A. Stahlbauer, and P. Wendler. Reusing precisions for efficient regression verification. Technical Report MIP-1302, University of Passau, 2013. http://arxiv.org/abs/1305.6915.Google ScholarGoogle Scholar
  15. D. Beyer and A. K. Petrenko. Linux driver verification. In Proc. ISoLA, LNCS 7610, pp. 1–6. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Beyer and P. Wendler. Reuse of verification results: Conditional model checking, precision reuse, and verification witnesses. In Proc. SPIN, LNCS 7976, pp. 1–17. Springer, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  17. M. Böhme, B. C. d. S. Oliveira, and A. Roychoudhury. Partition-based regression verification. In Proc. ICSE. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Chaki, A. Gurfinkel, and O. Strichman. Regression verification for multi-threaded programs. In Proc. VMCAI, pp. 119–135. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. H. Chockler, A. Ivrii, A. Matsliah, S. Moran, and Z. Nevo. Incremental formal verification of hardware. In Proc. FMCAD, pp. 135–143. FMCAD, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Christakis, P. Müller, and V. Wüstholz. Collaborative verification and testing with explicit assumptions. In Proc. FM, pp. 132–146, 2012.Google ScholarGoogle ScholarCross RefCross Ref
  21. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement for symbolic model checking. J. ACM, 50(5):752–794, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. B. Godlin and O. Strichman. Regression verification: Proving the equivalence of similar programs. Software Testing, Verification, and Reliability, 2009.Google ScholarGoogle Scholar
  23. S. Graf and H. Sa¨ıdi. Construction of abstract state graphs with Pvs. In CAV, pp. 72–83. Springer, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. L. Graves, M. J. Harrold, J.-M. Kim, A. A. Porter, and G. Rothermel. An empirical study of regression test selection techniques. In Proc. ICSE, pp. 188–197. IEEE, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. H. Hardin, R. P. Kurshan, K. L. McMillan, J. A. Reeds, and N. J. A. Sloane. Efficient regression verification. In Proc. WODES, pp. 147–150, 1996.Google ScholarGoogle Scholar
  26. T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In Proc. POPL, pp. 232–244. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. T. A. Henzinger, R. Jhala, R. Majumdar, and M. A. A. Sanvido. Extreme model checking. In Proc. Verification: Theory and Practice, LNCS 2772, pp. 332–358. Springer, 2003.Google ScholarGoogle Scholar
  28. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL, pp. 58–70. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. A. V. Khoroshilov, V. S. Mutilin, A. K. Petrenko, and V. Zakharov. Establishing Linux driver verification process. In Proc. Ershov Memorial Conference, LNCS 5947, pp. 165–176. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Lauterburg, A. Sobeih, D. Marinov, and M. Viswanathan. Incremental state-space exploration for programs with dynamically allocated data. In Proc. ICSE, pp. 291–300. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. U. Mandrykin, V. S. Mutilin, E. M. Novikov, A. V. Khoroshilov, and P. E. Shved. Using Linux device drivers for static verification tools benchmarking. Programming and Comp. Softw., 38(5):245–256, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. G. J. Myers. The Art of Software Testing. Wiley, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Person, G. Yang, N. Rungta, and S. Khurshid. Directed incremental symbolic execution. ACM SIGPLAN Notices, 46(6):504–515, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. G. Rothermel and M. J. Harrold. Analyzing regression test selection techniques. IEEE Trans. Softw. Eng., 22(8):529–551, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. O. Sery, G. Fedyukovich, and N. Sharygina. Incremental upgrade checking by means of interpolation-based function summaries. In Proc. FMCAD, pp. 114–121. FMCAD, 2012.Google ScholarGoogle Scholar
  36. O. V. Sokolsky and S. A. Smolka. Incremental model checking in the modal mu-calculus. In Proc. CAV, LNCS 818, pp. 351–363. Springer, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. O. Strichman and B. Godlin. Regression verification — a practical way to verify programs. In Proc. Verified Software: Theories, Tools, Experiments, pp. 496–501. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. W. Visser, J. Geldenhuys, and M. B. Dwyer. Green: Reducing, reusing, and recycling constraints in program analysis. In Proc. FSE. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. G. Yang, M. B. Dwyer, and G. Rothermel. Regression model checking. In ICSM, pp. 115–124. IEEE, 2009.Google ScholarGoogle Scholar
  40. G. Yang, C. S. Păsăreanu, and S. Khurshid. Memoized symbolic execution. In ISSTA, pp. 144–154. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Precision reuse for efficient regression verification

              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%

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader