Integrated and automated abstract interpretation, verification and testing of c/c++ modules

  • Authors:
  • Jan Peleska

  • Affiliations:
  • Department of Mathematics and Computer Science, University of Bremen, Germany

  • Venue:
  • Concurrency, Compositionality, and Correctness
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Starting from the perspective of safety-critical systems development in avionics, railways and the automotive domain, we advocate an integrated verification approach for C/C++ modules combining abstract interpretation, formal verification and conventional testing. It is illustrated how testing and formal verification can benefit from abstract interpretation results and, vice versa, how test automation techniques may help to reduce the well known problem of false alarms frequently encountered in abstract interpretations. As a consequence, verification tools integrating these different methodologies can provide a wider variety of useful results to their users and facilitate the bug localisation processes involved. When applied to C/C++ software, the problems of aliasing, type casts and mixed arithmetic and bit operations have to be handled on the level of constraint generation. We cope with this problem by using a symbolic interpretation method operating on an abstracted memory model. We describe the available tool support developed by the author, his research group and industrial partners.