Enforcer - Efficient failure injection

Cyrille Artho, Armin Biere, Shinichi Honiden

Research output: Chapter in Book/Report/Conference proceedingConference contribution

6 Citations (Scopus)

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 publicationFM 2006
Subtitle of host publicationFormal Methods - 14th International Symposium on Formal Methods, Proceedings
PublisherSpringer-Verlag
Pages412-427
Number of pages16
ISBN (Print)3540372156, 9783540372158
Publication statusPublished - 2006 Jan 1
Externally publishedYes
EventFM 2006: 14th International Symposium on Formal Methods - Hamilton, Canada
Duration: 2006 Aug 212006 Aug 27

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

Other

OtherFM 2006: 14th International Symposium on Formal Methods
CountryCanada
CityHamilton
Period06/8/2106/8/27

Fingerprint

Injection
Nondeterminism
Testing
Availability
Fault Injection
Concurrent Programming
Unit
Communication
Thread
Schedule
Coverage
Fault
Infrastructure
Resources
Interaction

ASJC Scopus subject areas

  • Computer Science(all)
  • Theoretical Computer Science

Cite this

Artho, C., Biere, A., & Honiden, S. (2006). Enforcer - Efficient failure injection. In FM 2006: Formal Methods - 14th International Symposium on Formal Methods, Proceedings (pp. 412-427). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 4085 LNCS). Springer-Verlag.

Enforcer - Efficient failure injection. / Artho, Cyrille; Biere, Armin; Honiden, Shinichi.

FM 2006: Formal Methods - 14th International Symposium on Formal Methods, Proceedings. Springer-Verlag, 2006. p. 412-427 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 4085 LNCS).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Artho, C, Biere, A & Honiden, S 2006, Enforcer - Efficient failure injection. in FM 2006: Formal Methods - 14th International Symposium on Formal Methods, Proceedings. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 4085 LNCS, Springer-Verlag, pp. 412-427, FM 2006: 14th International Symposium on Formal Methods, Hamilton, Canada, 06/8/21.
Artho C, Biere A, Honiden S. Enforcer - Efficient failure injection. In FM 2006: Formal Methods - 14th International Symposium on Formal Methods, Proceedings. Springer-Verlag. 2006. p. 412-427. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
Artho, Cyrille ; Biere, Armin ; Honiden, Shinichi. / Enforcer - Efficient failure injection. FM 2006: Formal Methods - 14th International Symposium on Formal Methods, Proceedings. Springer-Verlag, 2006. pp. 412-427 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{aacc53e68326469d87e97b3a1444058f,
title = "Enforcer - Efficient failure injection",
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.",
author = "Cyrille Artho and Armin Biere and Shinichi Honiden",
year = "2006",
month = "1",
day = "1",
language = "English",
isbn = "3540372156",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer-Verlag",
pages = "412--427",
booktitle = "FM 2006",

}

TY - GEN

T1 - Enforcer - Efficient failure injection

AU - Artho, Cyrille

AU - Biere, Armin

AU - Honiden, Shinichi

PY - 2006/1/1

Y1 - 2006/1/1

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=33749372210&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=33749372210&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:33749372210

SN - 3540372156

SN - 9783540372158

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 412

EP - 427

BT - FM 2006

PB - Springer-Verlag

ER -