Using Bounded Model Checking for Coverage Analysis of Safety-Critical Software in an Industrial Setting

  • Authors:
  • Damiano Angeletti;Enrico Giunchiglia;Massimo Narizzano;Alessandra Puddu;Salvatore Sabina

  • Affiliations:
  • Ansaldo STS, Genova, Italy 3-16151;DIST, Università di Genova, Viale Causa, Genova, Italy 13-16145;DIST, Università di Genova, Viale Causa, Genova, Italy 13-16145;DIST, Università di Genova, Viale Causa, Genova, Italy 13-16145;Ansaldo STS, Genova, Italy 3-16151

  • Venue:
  • Journal of Automated Reasoning
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Testing and Bounded Model Checking (BMC) are two techniques used in Software Verification for bug-hunting. They are expression of two different philosophies: testing is used on the compiled code and it is more suited to find errors in common behaviors, while BMC is used on the source code to find errors in uncommon behaviors of the system. Nowadays, testing is by far the most used technique for software verification in industry: it is easy to use and even when no error is found, it can release a set of tests certifying the (partial) correctness of the compiled system. In the case of safety critical software, in order to increase the confidence of the correctness of the compiled system, it is often required that the provided set of tests covers 100% of the code. This requirement, however, substantially increases the costs associated to the testing phase, since it often involves the manual generation of tests. In this paper we show how BMC can be productively applied to the Software Verification process in industry. In particular, we show how to productively use a Bounded Model Checker for C programs (CBMC) as an automatic test generator for the Coverage Analysis of Safety Critical Software. In particular, we experimented CBMC on a subset of the modules of the European Train Control System (ETCS) of the European Rail Traffic Management System (ERTMS) source code, an industrial system for the control of the traffic railway, provided by Ansaldo STS. The Code of the ERTMS/ETCS, with thousands of lines, has been used as trial application with CBMC obtaining a set of tests satisfying the target 100% code coverage, requested by the CENELEC EN50128 guidelines for software development of safety critical systems. The use of CBMC for test generation led to a dramatic increase in the productivity of the entire Software Development process by substantially reducing the costs of the testing phase. To the best of our knowledge, this is the first time that BMC techniques have been used in an industrial setting for automatically generating tests achieving full coverage of Safety-Critical Software. The positive results demonstrate the maturity of Bounded Model Checking techniques for automatic test generation in industry.