Skip to main content
  • Conference proceedings
  • © 2007

Tests and Proofs

First International Conference, TAP 2007 Zurich, Switzerland, February 12-13, 2007 Revised Papers

Part of the book series: Lecture Notes in Computer Science (LNCS, volume 4454)

Part of the book sub series: Programming and Software Engineering (LNPSE)

Conference series link(s): TAP: International Conference on Tests and Proofs

Conference proceedings info: TAP 2007.

Buy it now

Buying options

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

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (12 papers)

  1. Front Matter

  2. Combining Static and Dynamic Reasoning for Bug Detection

    • Yannis Smaragdakis, Christoph Csallner
    Pages 1-16
  3. Testable Requirements and Specifications

    • Jonathan S. Ostroff, Faraz Ahmadi Torshizi
    Pages 17-40
  4. Testing and Verifying Invariant Based Programs in the SOCOS Environment

    • Ralph-Johan Back, Johannes Eriksson, Magnus Myreen
    Pages 61-78
  5. Automatic Testing from Formal Specifications

    • Manoranjan Satpathy, Michael Butler, Michael Leuschel, S. Ramesh
    Pages 95-113
  6. Using Contracts and Boolean Queries to Improve the Quality of Automatic Test Generation

    • Lisa (Ling) Liu, Bertrand Meyer, Bernd Schoeller
    Pages 114-130
  7. Symbolic Execution Techniques for Refinement Testing

    • Pascale Le Gall, Nicolas Rapin, Assia Touil
    Pages 131-148
  8. Generating Unit Tests from Formal Proofs

    • Christian Engel, Reiner Hähnle
    Pages 169-188
  9. Back Matter

Other Volumes

  1. Tests and Proofs

About this book

To prove the correctness of a program is to demonstrate, through impeccable mathematical techniques, that it has no bugs. To test a program is to run it with the expectation of discovering bugs. These two paths to software reliability seem to diverge from the very start: if you have proved your program correct, it is fruitless to comb it for bugs; and if you are testing it, that surely must be a sign that you have given up on any hope to prove its correctness. Accordingly, proofs and tests have, since the onset of software engineering research, been pursued by distinct communities using different kinds of techniques and tools. Dijkstra’s famous pronouncement that tests can only show the presence of errors — in retrospect, perhaps one of the best advertisements one can imagine for testing, as if “only” finding bugs were not already a momentous achievement! — didn’t help make testing popular with provers, or proofs attractive to testers. And yet the development of both approaches leads to the discovery of common issues and to the realization that each may need the other. The emergence of model checking was one of the first signs that apparent contradiction may yield to complementarity; in the past few years an increasing number of research efforts have encountered the need for combining proofs and tests, dropping earlier dogmatic views of incompatibility and taking instead the best of what each of these software engineering domains has to offer.

Bibliographic Information

Buy it now

Buying options

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

Other ways to access