Tests and Proofs

;

54,98 €
52,23 €
AGGIUNGI AL CARRELLO
TRAMA
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.

SOMMARIO
Combining Static and Dynamic Reasoning for Bug Detection.- Testable Requirements and Specifications.- Proving Programs Incorrect Using a Sequent Calculus for Java Dynamic Logic.- Testing and Verifying Invariant Based Programs in the SOCOS Environment.- Testing and Proving Distributed Algorithms in Constructive Type Theory.- Automatic Testing from Formal Specifications.- Using Contracts and Boolean Queries to Improve the Quality of Automatic Test Generation.- Symbolic Execution Techniques for Refinement Testing.- Test-Sequence Generation with Hol-TestGen with an Application to Firewall Testing.- Generating Unit Tests from Formal Proofs.- Using Model Checking to Generate Fault Detecting Tests.- White-Box Testing by Combining Deduction-Based Specification Extraction and Black-Box Testing.

ALTRE INFORMAZIONI
  • Condizione: Nuovo
  • ISBN: 9783540737698
  • Collana: Lecture Notes in Computer Science
  • Dimensioni: 235 x 155 mm Ø 454 gr
  • Formato: Brossura
  • Illustration Notes: IX, 217 p.
  • Pagine Arabe: 217
  • Pagine Romane: ix