Abstract
Software fault injection techniques are beginning to gain a strong recognition in critical domains. Their adoption is already recommended in several safety critical standards, such as automotive, avionics, and aerospace systems. This paper aims to provide an overview on software fault injection, suited both for researchers and practitioners in the field. The work presents the fundamental concepts on Software Fault Injection, and then it discusses existing techniques.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Weyuker, E.: Testing component-based software: a cautionary tale. IEEE Softw. 15(5), 54–59 (1998)
U.S.-Canada Power System Outage Task Force: Final Report on the August 14, 2003 Blackout in the United States and Canada: Causes and Recommendations. U.S. Energy Department (2004)
Dvorak, D.: NASA Study on Flight Software Complexity. NASA Office of Chief Engineer (2009)
International Organization for Standardization: Product development: software level. ISO 26262–6 (2012)
National Aeronautics and Space Administration: NASA Software Safety Guidebook. NASA-GB-8719.13 (2004)
Voas, J., Charron, F., McGraw, G., Miller, K., Friedman, M.: Predicting how badly good software can behave. IEEE Softw. 14(4), 73–83 (1997)
Christmansson, J., Chillarege, R.: Generation of an error set that emulates software faults based on field data. In: Proceedings of Symposium on Fault-Tolerant Computing (1996)
Avizienis, A., Laprie, J., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. IEEE Trans. Depend. Secure Comput. 1(1), 11–33 (2004)
Hsueh, M., Tsai, T., Iyer, R.: Fault injection techniques and tools. IEEE Comput. 30(4), 75–82 (1997)
Arlat, J., Aguera, M., Amat, L., Crouzet, Y., Fabre, J., Laprie, J., Martins, E., Powell, D.: Fault injection for dependability validation: a methodology and some applications. IEEE Trans. Softw. Eng. 16(2), 166–182 (1990)
Powell, D., Martins, E., Arlat, J., Crouzet, Y.: Estimators for fault tolerance overage evaluation. IEEE Trans. Comput. 44(2), 261–274 (1995)
Bouricius, W., Carter, W., Schneider, P.: Reliability modeling techniques for self-repairing computer systems. In: Proceedings of 24th ACM National Conference. ACM (1969)
Powell, D.: Failure mode assumptions and assumption coverage. In: Proceedings of International Symposium on Fault-Tolerant Computing (1992)
Bondavalli, A., Ceccarelli, A., Falai, L., Vadursi, M.: Foundations of measurement theory applied to the evaluation of dependability attributes. In: Proceedings of International Conference on Dependable Systems and Networks (2007)
Chillarege, R., Bhandari, I., Chaar, J., Halliday, M., Moebus, D., Ray, B., Wong, M.: Orthogonal defect classification—a concept for in-process measurements. IEEE Trans. Softw. Eng. 18(11), 943–956 (1992)
Sullivan, M., Chillarege, R.: Software defects and their impact on system availability: a study of field failures in operating systems. In: Proceedings of International Symposium on Fault-Tolerant Computing (1991)
Chillarege, R., Kao, W., Condit, R.: Defect type and its impact on the growth curve. In: Proceedings of 13th International Conference on Software Engineering (1991)
Kanoun, K., Spainhower, L.: Dependability Benchmarking for Computer Systems. Wiley-IEEE Computer Society, Hoboken (2008)
DBench project: DBench Final Report. http://www.laas.fr/DBench/ (2004)
Véras, P., Villani, E., Ambrosio, A., Silva, N., Vieira, M., Madeira, H.: Errors on space software requirements: a field study and application scenarios. In: Proceedings of International Symposium on Software Reliability Engineering (2012)
Leveson, N.: Role of software in spacecraft accidents. J. Spacecraft Rockets 41(4), 564–575 (2004)
Fonseca, J., Vieira, M., Madeira, H.: Training security assurance teams using vulnerability injection. In: Proceedings of Pacific Rim International Symposium on Dependable Computing (2008)
Fonseca, J., Vieira, M., Madeira, H.: Vulnerability& attack injection for web applications. In: Proceedings of International Conference on Dependable Systems and Networks (2009)
Salfner, F., Lenk, M., Malek, M.: A survey of online failure prediction methods. ACM Comput. Surv. 42(3), 1–42 (2010)
Vieira, M., Madeira, H., Irrera, I., Malek, M.: Fault injection for failure prediction methods validation. In: Proceedings of Workshop on Hot Topics in System Dependability (2009)
Barton, J., Czeck, E., Segall, Z., Siewiorek, D.: Fault injection experiments using FIAT. IEEE Trans. Comput. 39(4), 575–582 (1990)
Dawson, S., Jahanian, F., Mitton, T., Tung, T.: Testing of Fault-Tolerant and real-time distributed systems via protocol fault injection. In: Proceedings of International Symposium on Fault-Tolerant Computing (1996)
Xu, J., Chen, S., Kalbarczyk, Z., Iyer, R.: An experimental study of security vulnerabilities caused by errors. In: Procdings of International Conference on Dependable Systems and Networks (2001)
Bondavalli, A., Chiaradonna, S., Cotroneo, D., Romano, L.: Effective fault treatment for improving the dependability of COTS and legacy-based applications. IEEE Trans. Depend. Secure Comput. 1(4), 223–237 (2004)
Carreira, J., Madeira, H., Silva, J.: Xception: a technique for the experimental evaluation of dependability in modern computers. IEEE Trans. Softw. Eng. 24(2), 125–136 (1998)
Aidemark, J., Vinter, J., Folkesson, P., Karlsson, J.: GOOFI: generic object-oriented fault injection tool. In: Proceedings of International Conference on Dependable Systems and Networks (2001)
IEEE: IEEE Standard Glossary of Software Engineering Terminology. IEEE Std 610.12-1990 (1990)
Koopman, P., DeVale, J.: The exception handling effectiveness of POSIX operating systems. IEEE Trans. Softw. Eng. 26(9), 837–848 (2000)
IEEE: IEEE Standard for Information Technology—portable operating system interface (POSIX) Part 1. IEEE Std 1003.1b-1993 (1994)
Jarboui, T., Arlat, J., Crouzet, Y., Kanoun, K., Marteau, T.: Analysis of the effects of real and injected software faults: Linux as a case study. In: Proceedings of Pacific Rim International Symposium on Dependable Computing (2002)
Daran, M., Thévenod-Fosse, P.: Software error analysis: a real case study involving real faults and mutations. ACM Softw. Eng. Notes 21(3), 158–171 (1996)
Andrews, J., Briand, L., Labiche, Y.: Is mutation an appropriate tool for testing experiments? In: Proceedings of International Conference on Software Engineering (2005)
Madeira, H., Costa, D., Vieira, M.: On the emulation of software faults by software fault injection. In: Proceedings of International Conference on Dependable Systems and Networks (2000)
Duraes, J., Madeira, H.: Emulation of software faults: a field data study and a practical approach. IEEE Trans. Softw. Eng. 32(11), 849–867 (2006)
Duraes, J., Madeira, H.: Emulation of software faults by educated mutations at machine-code level. In: Proceedings of International Symposium on Software Reliability Engineering (2002)
Cotroneo, D., Lanzaro, A., Natella, R., Barbosa, R.: Experimental analysis of binary-level software fault injection in complex software. In: Proceedings of Ninth European Dependable Computing Conference (2012)
Natella, R., Cotroneo, D., Duraes, J., Madeira, H.: Representativeness analysis of injected software faults in complex software. In: Procedings of 2010 IEEE/IFIP International Conference on Dependable Systems and Networks (2010)
Natella, R., Cotroneo, D., Duraes, J., Madeira, H.: On fault representativeness of software fault injection. IEEE Trans. Softw. Eng. (2011) (PrePrint). http://dx.doi.org/10.1109/TSE.2011.124
Natella, R., Cotroneo, D.: Emulation of transient software faults for dependability assessment: a case study. In: European Dependable Computing Conference (2010)
Basso, T., Moraes, R., Sanches, B., Jino, M.: An investigation of java faults operators derived from a field data study on java software faults. In: Workshop de Testes e Tolerância a Falhas (2009)
Acknowledgments
Authors would like to thank Dr. Roberto Natella for having supported them in the writing of this paper.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Italia
About this chapter
Cite this chapter
Cotroneo, D., Madeira, H. (2013). Introduction to Software Fault Injection. In: Cotroneo, D. (eds) Innovative Technologies for Dependable OTS-Based Critical Systems. Springer, Milano. https://doi.org/10.1007/978-88-470-2772-5_1
Download citation
DOI: https://doi.org/10.1007/978-88-470-2772-5_1
Published:
Publisher Name: Springer, Milano
Print ISBN: 978-88-470-2771-8
Online ISBN: 978-88-470-2772-5
eBook Packages: Computer ScienceComputer Science (R0)