Chapter 12ISOLATING THE CAUSES OF EMERGENT FAILURES IN COMPUTER SOFTWARE

Ross Gore

Virginia Modeling Analysis and Simulation Center, Old Dominion University, Norfolk, VA, 23529, USA

SUMMARY

Faults in computer software can be either deterministic or non-deterministic. For deterministic faults, a variety of approaches exist for automated debugging including statistical approaches, state-altering approaches, and general approaches. Although these approaches are effective, they assume the fault in the software is deterministic; the activation of the fault is reproduced with a certain set of inputs to the system. However, for many faults, the assumption that a fault is deterministic is not true. The activation and propagation of the fault are not always reproducible. These types of faults are emergent. Emergent faults are caused by (i) employing stochastics in software and (ii) the effect of the internal environment of the system on fault activation conditions. In the first case, the output of software that employs stochastics can include some natural random variance. In these cases, it is difficult to determine if the software passes or fails a given test case because there is variance in the output. In the second case, the states of a system (e.g., hardware, operating system behavior, and application) executing the program can impact defect activation. For each of these cases, we present specific approaches to account for the non-determinism needs to be introduced to enable existing ...

Get Emergent Behavior in Complex Systems Engineering now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.