Skip to main content

A Unified Approach to Abstract Interpretation, Formal Verification and Testing of C/C++ Modules

  • Conference paper
Book cover Theoretical Aspects of Computing - ICTAC 2008 (ICTAC 2008)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5160))

Included in the following conference series:

Abstract

In this paper, a unified approach to abstract interpretation, formal verification and testing is described. The approach is applicable for verifying and testing C/C++ functions and methods and complies with the requirements of today’s applicable standards for the development of safety-critical systems in the avionics and railway domains. We give an overview over the techniques required and motivate why an integrated approach is not only desirable from the verification specialists’ perspective, but also from the tool builders’ point of view. Tool support for our approach is available, and it is currently applied in industrial verification projects for railway control systems. All techniques can be adapted to model-based testing in a straightforward way. The objective of this article is to describe the interplay between the methods, techniques and tool components involved; we give references to more comprehensive descriptions of the underlying technical details.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. IEC 61508 Functional safety of electric/electronic/programmable electronic safety-related systems. International Electrotechnical Commission (2006)

    Google Scholar 

  2. Apt, K.R., Olderog, E.R.: Verification of Sequential and Concurrent Programs. Springer, Heidelberg (1991)

    MATH  Google Scholar 

  3. Badban, B., Fränzle, M., Peleska, J., Teige, T.: Test automation for hybrid systems. In: Proceedings of the Third International Workshop on SOFTWARE QUALITY ASSURANCE (SOQUA 2006), Portland Oregon, November 2006, USA (2006)

    Google Scholar 

  4. Beck, K.: Test-Driven Development. Addison-Wesley, Reading (2003)

    Google Scholar 

  5. Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: Combination of abstractions in the Astrée static analyzer. In: Okada, M., Satoh, I. (eds.) ASIAN 2006. LNCS, vol. 4435, pp. 1–24. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  6. Blanchet., B., et al.: Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. In: Mogensen, T.A., et al. (eds.) The Essence of Computation. LNCS, vol. 2566, pp. 85–108. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  7. European Committee for Electrotechnical Standardization. EN 50128 – Railway applications – Communications, signalling and processing systems – Software for railway control and protection systems. CENELEC, Brussels (2001)

    Google Scholar 

  8. Fehnker, A., Huuck, R., Jayet, P., Lussenburg, M., Rauch, F.: Goanna - a static model checker. In: Proceedings of 11th International Workshop on Formal Methods for Industrial Critical Systems (FMICS), Bonn, Germany (2006)

    Google Scholar 

  9. Fränzle, M., Herde, C., Teige, T., Ratschan, S., Schubert, T.: Efficient solving of large non-linear arithmetic constraint systems with complex boolean structure. Journal on Satisfiability, Boolean Modeling and Computation (2007)

    Google Scholar 

  10. GCC, the GNU Compiler Collection. The GIMPLE family of intermediate representations, http://gcc.gnu.org/wiki/GIMPLE

  11. Goubault-Larrecq, J., Parrennes, F.: Cryptographic protocol analysis on real C code. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 363–379. Springer, Heidelberg (2005)

    Google Scholar 

  12. Jaulin, L., Kieffer, M., Didrit, O., Walter, É.: Applied Interval Analysis. Springer, London (2001)

    MATH  Google Scholar 

  13. Leveson, N.G.: Safeware. Addison-Wesley, Reading (1995)

    Google Scholar 

  14. Löding, H.: Behandlung komplexer Datentypen in der automatischen Testdatengenerierung. Master’s thesis, University of Bremen (May 2007)

    Google Scholar 

  15. Peleska, J.: Integrated and automated abstract interpretation, verification and testing of C/C++ modules. In: Dams, D.R., Hannemann, U., Steffen, M. (eds.) Correctness, Concurrency and Compositionality – Festschrift for Willem-Paul de Roever. LNCS Festschrift series. Springer, Heidelberg (2008)

    Google Scholar 

  16. Peleska, J., Löding, H.: Symbolic and abstract interpretation for c/c++ programs. In: Proceedings of the 3rd intl Workshop on Systems Software Verification (SSV 2008), February 2008. Electronic Notes in Theoretical Computer Science, Elsevier, Amsterdam (2008)

    Google Scholar 

  17. Peleska, J., Löding, H., Kotas, T.: Test automation meets static analysis. In: Koschke, R., Rödiger, K.-H., Herzog, O., Ronthaler, M. (eds.) Proceedings of the INFORMATIK 2007, Band 2, Bremen, Germany, September 24-27, pp. 280–286 (2007)

    Google Scholar 

  18. Peleska, J., Möller, O., Löding, H.: Model-based testing for model-driven development with uml/dsl. In: Proceedings of the Software & Systems Quality Conference (SQC 2008) (to appear, 2008), http://www.informatik.uni-bremen.de/agbs/jp/jp_papers_e.html

  19. Peleska, J., Zahlten, C.: Integrated automated test case generation and static analysis. In: Proceedings of the QA+Test 2007 International Conference on QA+Testing Embedded Systems, Bilbao (Spain), October17 - 19 (2007)

    Google Scholar 

  20. Ranise, S., Tinelli, C.: Satisfiability modulo theories. TRENDS and CONTROVERSIES–IEEE Magazine on Intelligent Systems 21(6), 71–81 (2006)

    Google Scholar 

  21. SC-167. Software Considerations in Airborne Systems and Equipment Certification. RTCA (1992)

    Google Scholar 

  22. Schlich, B., Salewski, F., Kowalewski, S.: Applying model checking to an automotive microcontroller application. In: Proc. IEEE 2nd Int’l Symp. Industrial Embedded Systems (SIES 2007), IEEE, Los Alamitos (2007)

    Google Scholar 

  23. Strichman, O.: On solving presburger and linear arithmetic with sat. In: Aagaard, M.D., O’Leary, J.W. (eds.) FMCAD 2002. LNCS, vol. 2517, pp. 160–170. Springer, Heidelberg (2002)

    Google Scholar 

  24. Tseitin, G.S.: On the complexity of derivation in propositional calculus. In: Slisenko, A.O. (ed.) Studies in Constructive Mathematics and Mathematical Logic, Part 2, Consultants Bureau, New York, p. 115 (1962)

    Google Scholar 

  25. Venet, A., Brat, G.: Precise and efficient static array bound checking for large embedded c programs. In: Proceedings of the PLDI 2004, Washington, DC, June 9-11, 2004, ACM Press, USA (2004)

    Google Scholar 

  26. Verified Systems International GmbH, Bremen. RT-Tester 6.2 – User Manual (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

John S. Fitzgerald Anne E. Haxthausen Husnu Yenigun

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Peleska, J. (2008). A Unified Approach to Abstract Interpretation, Formal Verification and Testing of C/C++ Modules. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigun, H. (eds) Theoretical Aspects of Computing - ICTAC 2008. ICTAC 2008. Lecture Notes in Computer Science, vol 5160. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85762-4_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85762-4_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85761-7

  • Online ISBN: 978-3-540-85762-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics