Home > Research > Publications & Outputs > Analyzing the Effects of Bugs on Software Inter...


Text available via DOI:

View graph of relations

Analyzing the Effects of Bugs on Software Interfaces

Research output: Contribution to journalJournal articlepeer-review

<mark>Journal publication date</mark>1/03/2020
<mark>Journal</mark>IEEE Transactions on Software Engineering
Issue number3
Number of pages23
Pages (from-to)280-301
Publication StatusPublished
Early online date26/06/18
<mark>Original language</mark>English


Critical systems that integrate software components (e.g., from third-parties) need to address the risk of residual software defects in these components. Software fault injection is an experimental solution to gauge such risk. Many error models have been proposed for emulating faulty components, such as by injecting error codes and exceptions, or by corrupting data with bit-flips, boundary values, and random values. Even if these error models have been able to find breaches in fragile systems, it is unclear whether these errors are in fact representative of software faults. To pursue this open question, we propose a methodology to analyze how software faults in $C/C_{++}$ software components turn into errors at components' interfaces (interface error propagation), and present an experimental analysis on what, where, and when to inject interface errors. The results point out that the traditional error models, as used so far, do not accurately emulate software faults, but that richer interface errors need to be injected, by: injecting both fail-stop behaviors and data corruptions; targeting larger amounts of corrupted data structures; emulating silent data corruptions not signaled by the component; combining bit-flips, boundary values, and data perturbations. IEEE