• DocumentCode
    1401062
  • Title

    Is proof more cost-effective than testing?

  • Author

    King, Steve ; Hammond, Jonathan ; Chapman, Rod ; Pryor, Andy

  • Author_Institution
    Dept. of Comput. Sci., York Univ., UK
  • Volume
    26
  • Issue
    8
  • fYear
    2000
  • fDate
    8/1/2000 12:00:00 AM
  • Firstpage
    675
  • Lastpage
    686
  • Abstract
    The paper describes the use of formal development methods on an industrial safety-critical application. The Z notation was used for documenting the system specification and part of the design, and the SPARK subset of Ada was used for coding. However, perhaps the most distinctive nature of the project lies in the amount of proof that was carried out: proofs were carried out both at the Z level (approximately 150 proofs in 500 pages) and at the SPARK code level (approximately 9000 verification conditions generated and discharged). The project was carried out under UK Interim Defence Standards 00-55 and 00-56, which require the use of formal methods on safety-critical applications. It is believed to be the first to be completed against the rigorous demands of the 1991 version of these standards. The paper includes comparisons of proof with the various types of testing employed, in terms of their efficiency at finding faults. The most striking result is that the Z proof appears to be substantially more efficient at finding faults than the most efficient testing phase. Given the importance of early fault detection, we believe this helps to show the significant benefit and practicality of large-scale proof on projects of this kind
  • Keywords
    Ada; formal specification; military computing; program testing; safety-critical software; theorem proving; 00-55; 00-56; Ada; SPARK code level; SPARK subset; UK Interim Defence Standards; Z level; Z notation; Z proof; fault detection; formal development methods; formal methods; industrial safety-critical application; large-scale proof; rigorous demands; safety-critical applications; system specification; testing phase; verification conditions; Code standards; Computer industry; Fault detection; Formal specifications; Helicopters; Information systems; Large-scale systems; Marine vehicles; Software testing; Sparks;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.879807
  • Filename
    879807