Skip to main content

A Combined Testing and Verification Approach for Software Reliability

  • Conference paper
  • First Online:
FME 2001: Formal Methods for Increasing Software Productivity (FME 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2021))

Included in the following conference series:

Abstract

Automatic and manual software verification is based on applying mathematical methods to a model of the software. Modeling is usually done manually, thus it is prone to modeling errors. This means that errors found in the model may not correspond to real errors in the code, and that if the model is found to satisfy the checked properties, the actual code may still have some errors. For this reason, it is desirable to be able to perform some consistency checks between the actual code and the model. Exhaustive consistency checks are usually not possible, for the same reason that modeling is necessary. We propose a methodology for improving the throughput of software verification by performing some consistency checks between the original code and the model, specifically, by applying software testing. In this paper we present such a combined testing and verification methodology and demonstrate how it is applied using a set of software reliability tools. We introduce the notion of a neighborhood of an error trace, consisting of a tree of execution paths, where the original error trace is one of them. Our experience with the methodology shows that traversing the neighborhood of an error is extremely useful in locating its cause. This is crucial not only in understanding where the error stems from, but in getting an initial idea of how to redesign the code. We use as a case study a robot control system, and report on several design and modeling errors found during the verification and testing process.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Cetin, M., Kapoor, C., Tesar, D.: Performance based robot redundancy resolution with multiple criteria, Proc. of ACME Design Engineering Technical Conference, Georgia (1998)

    Google Scholar 

  2. Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. Workshop on Logic of Programs, Yorktown Heights, NY. Lecture Notes in Computer Science, Vol. 131. Springer-Verlag, Berlin Heidelberg New York (1981)

    Google Scholar 

  3. Clarke, E.M., Grunberg, O., and Peled, D.: Model Checking, MIT Press (1999)

    Google Scholar 

  4. Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs, Comm. ACM, Vol. 18(8) 1975 453–457

    Article  MATH  MathSciNet  Google Scholar 

  5. Emerson, E.A., Clarke, E.M.: Characterizing correctness properties of parallel programs using fixpoints, Lecture Notes in Computer Science, Vol. 85, Springer-Verlag, Berlin Heidelberg New York (1980) 169–181

    Google Scholar 

  6. Graig, J.J: Introduction to Robotics: Mechanics and Control. Addison-Wesley (1989)

    Google Scholar 

  7. Gunter, E.L., Peled, D.: Path Exploration Tool, Proceeding of TACAS 1999, Amsterdam, The Netherlands, (1999) 405–419

    Google Scholar 

  8. Harel, D.: From Play-In Scenarios to Code: An Achievable Dream, Proceedings of FASE 2000, Berlin, Germany, Lecture Notes in Computer Science, Vol. 1783, Springer-Verlag, Berlin Heidelberg New York (2000) 22–34

    Google Scholar 

  9. Hoare, C.A.R.: Communicating Sequential Processes, Comm. ACM, Vol. 21(8) (1978) 666–677

    Article  MATH  MathSciNet  Google Scholar 

  10. Hoare, C.A.R.: An axiomatic basis for computer programming, Comm. ACM, Vol. 12 (1969) 576–580

    Article  MATH  Google Scholar 

  11. Holzmann, G.J.: Design and Validation of Computer Protocols, Prentice Hall Software Series, (1992)

    Google Scholar 

  12. Jackson, D.: Aspect: Detecting Bugs with Abstract Dependencies. ACM Transactions on Software Engineering and Methodology, Vol. 4(2) (1995) 279–295

    Article  Google Scholar 

  13. Kapoor, C., and Tesar, D.: A Reusable Operational Software Architecture for Advanced Robotics (OSCAR), The University of Texas at Austin, Report to U.S. Dept. of Energy, Grant No. DE-FG01 94EW37966 and NASA Grant No. NAG 9-809 (1998)

    Google Scholar 

  14. Kernighan, B., and Ritchie, D.: The C programming Language, Prentice Hall (1988)

    Google Scholar 

  15. Myers, G.J.: The Art of Software Testing, Wiley (1979)

    Google Scholar 

  16. Murphy, G., Notkin, D., and Sullivan, K: Software Reflexion Models: Bridging the Gap between Source and High-Level Models, In Proceedings of SIGSOFT’95 Third ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM (1995) 18–28

    Google Scholar 

  17. Pnueli, A.: The temporal logic of programs, Proc. of the 18th IEEE Symp. on Foundation of Computer Science (1977) 46–57

    Google Scholar 

  18. Quielle, J.P., and Sifakis, J.: Specification and verification of concurrent systems in CESAR, Proceedings of the 5th International Symposium on Programming (1981) 337–350

    Google Scholar 

  19. SES inc., ObjectBench Technical Reference, SES Inc. (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sharygina, N., Peled, D. (2001). A Combined Testing and Verification Approach for Software Reliability. In: Oliveira, J.N., Zave, P. (eds) FME 2001: Formal Methods for Increasing Software Productivity. FME 2001. Lecture Notes in Computer Science, vol 2021. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45251-6_35

Download citation

  • DOI: https://doi.org/10.1007/3-540-45251-6_35

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41791-0

  • Online ISBN: 978-3-540-45251-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics