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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
IEC 61508 Functional safety of electric/electronic/programmable electronic safety-related systems. International Electrotechnical Commission (2006)
Apt, K.R., Olderog, E.R.: Verification of Sequential and Concurrent Programs. Springer, Heidelberg (1991)
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)
Beck, K.: Test-Driven Development. Addison-Wesley, Reading (2003)
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)
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)
European Committee for Electrotechnical Standardization. EN 50128 – Railway applications – Communications, signalling and processing systems – Software for railway control and protection systems. CENELEC, Brussels (2001)
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)
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)
GCC, the GNU Compiler Collection. The GIMPLE family of intermediate representations, http://gcc.gnu.org/wiki/GIMPLE
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)
Jaulin, L., Kieffer, M., Didrit, O., Walter, É.: Applied Interval Analysis. Springer, London (2001)
Leveson, N.G.: Safeware. Addison-Wesley, Reading (1995)
Löding, H.: Behandlung komplexer Datentypen in der automatischen Testdatengenerierung. Master’s thesis, University of Bremen (May 2007)
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)
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)
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)
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
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)
Ranise, S., Tinelli, C.: Satisfiability modulo theories. TRENDS and CONTROVERSIES–IEEE Magazine on Intelligent Systems 21(6), 71–81 (2006)
SC-167. Software Considerations in Airborne Systems and Equipment Certification. RTCA (1992)
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)
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)
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)
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)
Verified Systems International GmbH, Bremen. RT-Tester 6.2 – User Manual (2007)
Author information
Authors and Affiliations
Editor information
Rights 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)