skip to main content
article

Assume-guarantee testing

Published:05 September 2005Publication History
Skip Abstract Section

Abstract

Verification techniques for component-based systems should ideally be able to predict properties of the assembled system through analysis of individual components before assembly. This work introduces such a modular technique in the context of testing. Assume-guarantee testing relies on the (automated) decomposition of key system-level requirements into local component requirements at design time. Developers can verify the local requirements by checking components in isolation; failed checks may indicate violations of system requirements, while valid traces from different components compose via the assume-guarantee proof rule to potentially provide system coverage. These local requirements also form the foundation of a technique for efficient predictive testing of assembled systems: given a correct system run, this technique can predict violations by alternative system runs without constructing those runs. We discuss the application of our approach to testing a multi-threaded NASA application, where we treat threads as components.

References

  1. R. Alur, T. A. Henzinger, F. Y. C. Mang, S. Qadeer, S. K. Rajamani, and S. Tasiran. MOCHA: Modularity in model checking. In International Conference on Computer-Aided Verification, June-July, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. H. Barringer, D. Giannakopoulou, and C. S. Pǎsǎreanu. Proof rules for automated compositional verification through learning. In International Workshop on Specification and Verification of Component-Based Systems, Sept. 2003.Google ScholarGoogle Scholar
  3. H. Barringer, A. Goldberg, K. Havelund, and K. Sen. Rule-based runtime verification. In International Conference on Verification, Model Checking and Abstract Interpretation, Jan. 2004.Google ScholarGoogle ScholarCross RefCross Ref
  4. E. M. Clarke, D. E. Long, and K. L. McMillan. Compositional model checking. In Symposium on Logic in Computer Science, June 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. M. Cobleigh, D. Giannakopoulou, and C. S. Pǎsǎreanu. Learning assumptions for compositional verification. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. de Alfaro and T. A. Henzinger. Interface automata. In Symposium on the Foundations of Software Engineering, Sept. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Dingel. Computer assisted assume guarantee reasoning with VeriSoft. In International Conference on Software Engineering May 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Flanagan, S. N. Freund, and S. Qadeer. Thread-modular verification for shared-memory programs. In European Symposium on Programming, Apr. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Giannakopoulou, C. S. Pǎsǎreanu, and H. Barringer. Assumption generation for software component verification. In International Conference on Automated Software Engineering, Sept. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Giannakopoulou, C. S. Pǎsǎreanu, and J. M. Cobleigh. Assume-guarantee verification of source code with design-level assumptions. In International Conference on Software Engineering, May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Godefroid. Model checking for programming languages using VeriSoft. In Symposium on Principles of Programming Languages, Jan. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. Grieskamp, Y. Gurevich, W. Schulte, and M. Veanes. Generating finite state machines from abstract state machines. In International Symposium on Software Testing and Analysis, July 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. O. Grumberg and D. E. Long. Model checking and modular verification. In International Conference on Concurrency Theory, Aug. 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. L. J. Jagadeesan, A. A. Porter, C. Puchol, J. C. Ramming, and L. G. Votta. Specification-based testing of reactive software: Tools and experiments (experience report). In International Conference on Software Engineering, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. B. Jones. Specification and design of (parallel) programs. In IFIP World Computer Congress, Sept. 1983.Google ScholarGoogle Scholar
  16. J. Levy, H. Saidi, and T. E. Uribe. Combining monitors for run-time system verification. Electronic Notes in Theoretical Computer Science, 70(4), Dec. 2002.Google ScholarGoogle Scholar
  17. A. Pnueli. In transition from global to modular temporal reasoning about programs. In K. Apt, editor, Logic and Models of Concurrent Systems, volume 13, New York, 1984. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. P. Raymond, X. Nicollin, N. Halbwachs, and D. Weber. Automatic testing of reactive systems. In Real-Time Systems Symposium, Dec. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. Sen, G. Rosu, and G. Agha. Detecting errors in multithreaded programs by generalized predictive analysis of executions. In Conference on Formal Methods for Open Object-Based Distributed Systems, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. W. Visser, K. Havelund, G. Brat, and S.-J. Park. Model checking programs. In International Conference on Automated Software Engineering, Sept. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. W. Visser, C. S. Pǎsǎreanu, and S. Khurshid. Test input generation with Java PathFinder. In International Symposium on Software Testing and Analysis, July 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Assume-guarantee testing

                  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

                  Full Access

                  • Published in

                    cover image ACM SIGSOFT Software Engineering Notes
                    ACM SIGSOFT Software Engineering Notes  Volume 31, Issue 2
                    March 2006
                    193 pages
                    ISSN:0163-5948
                    DOI:10.1145/1118537
                    Issue’s Table of Contents
                    • cover image ACM Conferences
                      SAVCBS '05: Proceedings of the 2005 conference on Specification and verification of component-based systems
                      September 2005
                      95 pages
                      ISBN:1595933719
                      DOI:10.1145/1123058

                    Copyright © 2005 Authors

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 5 September 2005

                    Check for updates

                    Qualifiers

                    • article

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader