Skip to main content

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Weyuker, E.: Testing component-based software: a cautionary tale. IEEE Softw. 15(5), 54–59 (1998)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Dvorak, D.: NASA Study on Flight Software Complexity. NASA Office of Chief Engineer (2009)

    Google Scholar 

  4. International Organization for Standardization: Product development: software level. ISO 26262–6 (2012)

    Google Scholar 

  5. National Aeronautics and Space Administration: NASA Software Safety Guidebook. NASA-GB-8719.13 (2004)

    Google Scholar 

  6. Voas, J., Charron, F., McGraw, G., Miller, K., Friedman, M.: Predicting how badly good software can behave. IEEE Softw. 14(4), 73–83 (1997)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. Hsueh, M., Tsai, T., Iyer, R.: Fault injection techniques and tools. IEEE Comput. 30(4), 75–82 (1997)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Powell, D., Martins, E., Arlat, J., Crouzet, Y.: Estimators for fault tolerance overage evaluation. IEEE Trans. Comput. 44(2), 261–274 (1995)

    Google Scholar 

  12. Bouricius, W., Carter, W., Schneider, P.: Reliability modeling techniques for self-repairing computer systems. In: Proceedings of 24th ACM National Conference. ACM (1969)

    Google Scholar 

  13. Powell, D.: Failure mode assumptions and assumption coverage. In: Proceedings of International Symposium on Fault-Tolerant Computing (1992)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Kanoun, K., Spainhower, L.: Dependability Benchmarking for Computer Systems. Wiley-IEEE Computer Society, Hoboken (2008)

    Google Scholar 

  19. DBench project: DBench Final Report. http://www.laas.fr/DBench/ (2004)

  20. 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)

    Google Scholar 

  21. Leveson, N.: Role of software in spacecraft accidents. J. Spacecraft Rockets 41(4), 564–575 (2004)

    Google Scholar 

  22. Fonseca, J., Vieira, M., Madeira, H.: Training security assurance teams using vulnerability injection. In: Proceedings of Pacific Rim International Symposium on Dependable Computing (2008)

    Google Scholar 

  23. Fonseca, J., Vieira, M., Madeira, H.: Vulnerability& attack injection for web applications. In: Proceedings of International Conference on Dependable Systems and Networks (2009)

    Google Scholar 

  24. Salfner, F., Lenk, M., Malek, M.: A survey of online failure prediction methods. ACM Comput. Surv. 42(3), 1–42 (2010)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. Barton, J., Czeck, E., Segall, Z., Siewiorek, D.: Fault injection experiments using FIAT. IEEE Trans. Comput. 39(4), 575–582 (1990)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Google Scholar 

  32. IEEE: IEEE Standard Glossary of Software Engineering Terminology. IEEE Std 610.12-1990 (1990)

    Google Scholar 

  33. Koopman, P., DeVale, J.: The exception handling effectiveness of POSIX operating systems. IEEE Trans. Softw. Eng. 26(9), 837–848 (2000)

    Google Scholar 

  34. IEEE: IEEE Standard for Information Technology—portable operating system interface (POSIX) Part 1. IEEE Std 1003.1b-1993 (1994)

    Google Scholar 

  35. 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)

    Google Scholar 

  36. 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)

    Google Scholar 

  37. Andrews, J., Briand, L., Labiche, Y.: Is mutation an appropriate tool for testing experiments? In: Proceedings of International Conference on Software Engineering (2005)

    Google Scholar 

  38. 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)

    Google Scholar 

  39. 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)

    Google Scholar 

  40. 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)

    Google Scholar 

  41. 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)

    Google Scholar 

  42. 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)

    Google Scholar 

  43. 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

  44. Natella, R., Cotroneo, D.: Emulation of transient software faults for dependability assessment: a case study. In: European Dependable Computing Conference (2010)

    Google Scholar 

  45. 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)

    Google Scholar 

Download references

Acknowledgments

Authors would like to thank Dr. Roberto Natella for having supported them in the writing of this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Domenico Cotroneo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics