Injection of faults at component interfaces and inside the component code: are they equivalent?

  • Authors:
  • R. Moraes;R. Barbosa;J. Duraes;N. Mendes;E. Martins;H. Madeira

  • Affiliations:
  • State University of Campinas, UNICAMP, Brazil;Critical Software SA, Portugal;CISUC, University of Coimbra, Portugal;CISUC, University of Coimbra, Portugal;State University of Campinas, UNICAMP, Brazil;CISUC, University of Coimbra, Portugal

  • Venue:
  • EDCC '06 Proceedings of the Sixth European Dependable Computing Conference
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The injection of interface faults through API parameter corruption is a technique commonly used in experimental dependability evaluation. Although the interface faults injected by this approach can be considered as a possible consequence of actual software faults in real applications, the question of whether the typical exceptional inputs and invalid parameters used in these techniques do represent the consequences of software bugs is largely an open issue. This question may not be an issue in the context of robustness testing aimed at the identification of weaknesses in software components. However, the use of interface faults by API parameter corruption as a general approach for dependability evaluation in component-based systems requires an in depth study of interface faults and a close observation of the way internal component faults propagate to the component interfaces. In this work we present the results of experimental evaluation of realistic component-based applications developed in Java and C using the injection of interface faults by API parameter corruption and the injection of software faults inside the components by modification of the target code. The faults injected inside software components emulate typical programming errors and are based on an extensive field data study previously published. The results show the consequences of internal component faults in several operational scenarios and provide empirical evidences that interface faults and software component faults cause different impact in the system.