Studying Application–Library Interaction and Behavior with LibTrac

The boundary between programs and libraries is an appealing location for injecting faults during testing: the cost of doing so is low, and one can emulate a wide range of errors. Several tools exist, but using them faces the challenge of deciding exactly which library calls to fail, when, and in what way. The space of possibilities is vast, and the choice of injection scenario can substantially influence test effectiveness. We present LibTrac, a tool for studying the program/library boundary for the purpose of choosing fault injection scenarios. LibTrac can answer questions like: What classes of library functions does a program use? How does the program behave when these calls fail? Are there usage patterns that are more common than others? Unlike similar tools (like ltrace), LibTrac is lightweight and does not influence the behavior of the studied program. We expect LibTrac to be useful to anyone who is considering incorporating library-level fault injection in their software testing strategy. To illustrate LibTrac's effectiveness, we report the results of studying 13 real-world systems with LibTrac.

Published in:
Proceedings of the Intl. Conference on Dependable Systems and Networks
Presented at:
Intl. Conference on Dependable Systems and Networks, Chicago, IL, June 2010
Ieee Service Center, 445 Hoes Lane, Po Box 1331, Piscataway, Nj 08855-1331 Usa

 Record created 2010-02-26, last modified 2018-03-17

Rate this document:

Rate this document:
(Not yet reviewed)