Injecting faults into environment simulators for testing safety critical software

  • Hong Zhu
  • P. A. V. Hall
  • J. H. R. May
  • T. Cockram
Session 6: Software testing
Part of the Lecture Notes in Computer Science book series (LNCS, volume 852)


Software testing via environment simulation is an approach to testing safety critical software. By this approach, to test software in adverse conditions we need to simulate the failure processes of the environment system. Such testing is essential for safety critical software, especially for protection software. However, due to the complexity of failure processes, the development of simulators of failure processes is complicated, expensive and difficult. This paper presents a method to derive such simulators systematically and efficiently. The basic idea is to inject faults into the simulator of the healthy environment system to obtain the simulators of faulty environments.

Key words

Safety critical software Software testing Program transformation Fault injection Simulation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A. V. & Peterson, T. G., A minimum distance error correcting parser for context free languages, SIAM J. Comput., 305–312, (Dec. 1972)Google Scholar
  2. 2.
    Burns, A., McDermid, J., & Dobson, J., On the Meaning of Safety and Security, The Computer Journal, Vol., 35, No.1, 3–15, (January 1992)CrossRefGoogle Scholar
  3. 3.
    Budd, T. A, Mutation Analysis: Ideas, Examples, Problems and Prospects, In: Chandrasekaran, B., and Radicchi, S. (eds.): Computer Program Testing, North-Holland, 1981,pp.129–150.Google Scholar
  4. 4.
    Burstall, R. M., and Darlington, J., A transformation system for developing recursive programs, Journal of ACM, Vol. 24, No.1, (1977)Google Scholar
  5. 5.
    DeMillo, R. A., Guindi, D. S., McCracken, W. M., Offutt, A. J., King, K. N., An Extended Overview of the Mothra Software Testing Environment, In: Proceedings of Second Workshop on Software Testing, Verification, and Analysis, July 1988, pp142–151.Google Scholar
  6. 6.
    DeMillo, R. A., Lipton, R. J. A., & Sayward, F. G., Hints on Test Data Selection: Help for the Practising Programmer, Computer, Vol. 11, No.4, pp34–41. (1978)Google Scholar
  7. 7.
    Hall, P. A. V., and Weedon, R., Object oriented module interconnection languages, In: Prieto-Diaz, R. & Frankes, W.B., (eds.): Advances in Software Reuse, Selected papers from the second international workshop on software reusability, March 24–26, Lucca, Italy, IEEE Computer Society Press. (1993)Google Scholar
  8. 8.
    Hall, P. A. V. (ed.), Software Reuse and Reverse Engineering in Practice, Chapman & Hall. (1992)Google Scholar
  9. 9.
    Howden, W. E., Weak Mutation Testing and Completeness of Test Sets, IEEE Transactions on Software Engineering, Vol. SE-8, No.4, July, 1982, pp371–379.Google Scholar
  10. 10.
    Jin, L. & Zhu, H., A Metalanguage to Express Human Guidance for Program Transformation, In: Proceedings of IEEE International Workshop on Tools for Artificial Intelligence, IEEE Computer Society Press, Fairfax, USA, October 1989, pp717–722.Google Scholar
  11. 11.
    Jin, L., TrapML — A Metalanguage for Transformational Programming, Journal of Computer Science and Technology, (January 1991)Google Scholar
  12. 12.
    Jin, L., Zhu, H., and Xu, J., NDTPS — An Experimental Metalanguage Transformational Programming System, In: Proc. of Inter. Conf. on New Generation Computer Systems, Beijing, April 1989.Google Scholar
  13. 13.
    King, K. N., & Offutt, A. J., A Fortran Language System for Mutation-based Software Testing, Software — Practice and Experience, Vol. 21, No. 7, pp685–718, (July 1991)Google Scholar
  14. 14.
    Leveson, N. G. & Harvey, P. R., Analyzing Software Safety, IEEE Transactions on Software Engineering, September, 1983, pp569–579.Google Scholar
  15. 15.
    Leveson, N. G., Cha, S. S., & Shimeall, T. J., Safety Verification of Ada Programs Using Software Fault Trees, IEEE Software, July 1991, pp48–59.Google Scholar
  16. 16.
    Leveson, N. G., Software Safety: Why, What, and How, Computing Surveys, Vol. 18, No. 2, pp125–163. (June 1986,)Google Scholar
  17. 17.
    Leveson, N. G., Software Safety in Embedded computer systems, Communications of the ACM, february 1991, pp34–46.Google Scholar
  18. 18.
    MacFarlane, A. G. J., Dynamical System Models, George G. Harrap & Co. Ltd., (1970).Google Scholar
  19. 19.
    Fishwick, P. A. and Luker, P. A., (eds.), Qualitative Simulation, Modeling and Analysis, Advances in Simulation Vol. 5, Springer-Verlag, (1991)Google Scholar
  20. 20.
    Ministry of Defence, Defence Standard 00-56 (Interim), Issue 1, April 1991.Google Scholar
  21. 21.
    Morell, L. J., A Theory of Fault-Based Testing, IEEE Transactions on Software Engineering, Vol. 16, No. 8, pp844–857. (August, 1990)CrossRefGoogle Scholar
  22. 22.
    Partsch, H. and Steinbruggen, R., Program transformation systems, ACM Computing Survey, Vol. 15, No.3, (1983)Google Scholar
  23. 23.
    Pepper, P. (ed), Program transformation and programming environments, Springer-Verlag, (1984)Google Scholar
  24. 24.
    Prieto-Diaz, R., and Neighbors, J. M., Module interconnection languages, The Journal of Systems and Software, Vol. 6, pp307–334, (November 1986)CrossRefGoogle Scholar
  25. 25.
    Redmill, F. & Anderson, T., (eds), Safety-Critical Systems: Current Issues, Techniques and Standards, Chapman & Hall, (1993)Google Scholar
  26. 26.
    Redmill, F. & Anderson, T., (eds), Directions in Safety-Critical Systems, Proceedings of the Safety-Critical System Symposium, Bristol. (1993)Google Scholar
  27. 27.
    Tracz, W., Tutorial: Software Reuse: Emerging Technology, IEEE Computer Society Press, (1988)Google Scholar
  28. 28.
    Veseley, W. E., Goldberg, F. F., Roberts, N. H., & Haasl, D. F., Fault-Tree Handbook, Reg.0492, US Nuclear Regulatory Comm., Washington, D.C., January (1981)Google Scholar
  29. 29.
    Wichmann, B. A., (ed), Software in Safety-Related Systems, BCS Special Report, John Wiley & Sons, New York, (1992)Google Scholar
  30. 30.
    Zhu, H., Hall, P. A. V. and Cockram, T., Testing Protection Software Through Simulation of Failures, Technical Report, Dept. of Computing, The Open Univ.Google Scholar
  31. 31.
    Zhu, H., Hall, P. A. V, Testing Protection Software Through Simulation of Failures, Proc. of RTS'94, Jan. 11–14, 1994, Paris, pp155–170.Google Scholar
  32. 32.
    Zhu, H., Hall, P. A. V, May, J. H. R., and Cockram, T., Knowledge engineering helps testing protection software, Proc. of SEKE'6, June 20–23, 1994, Jurmala, Latvia, pp116–123.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Hong Zhu
    • 1
  • P. A. V. Hall
    • 1
  • J. H. R. May
    • 1
  • T. Cockram
    • 2
  1. 1.Department of ComputingThe Open UniversityMilton KeynesUK
  2. 2.Rolls-Royce plc., Genesis CentreHigh Integrity Systems & Software CentreBirchwood, Warrington, CheshireUK

Personalised recommendations