Enforcer - Efficient Failure Injection

  • Armin Biere
  • , Cyrille Artho
  • , Shinichi Honiden

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Non-determinism of the thread schedule is a well-known problem in concurrent programming. However, other sources of non-determinism exist which cannot be controlled by an application, such as network availability. Testing a program with its communication resources being unavailable is difficult, as it requires a change on the host system, which has to be coordinated with the test suite. Essentially, each interaction of the application with the environment can result in a failure. Only some of these failures can be tested. Our work identifies such potential failures and develops a strategy for testing all relevant outcomes of such actions. Our tool, Enforcer, combines the structure of unit tests, coverage information, and fault injection. By taking advantage of a unit test infrastructure, performance can be improved by orders of magnitude compared to previous approaches. Our tool has been tested on several real-world programs, where it found faults without requiring extra test code.
Original languageEnglish
Title of host publicationProc. Formal Methods (FM'06)
PublisherSpringer
Pages412-427
Number of pages16
ISBN (Print)3540372156, 9783540372158
DOIs
Publication statusPublished - 2006

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume4085 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Fields of science

  • 102 Computer Sciences

Cite this