Skip to main content

Modelling the Effects of Combining Diverse Software Fault Detection Techniques

  • Chapter
Book cover Formal Methods and Testing

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4949))

Abstract

The software engineering literature contains many studies of the efficacy of fault finding techniques. Few of these, however, consider what happens when several different techniques are used together. We show that the effectiveness of such multi-technique approaches depends upon quite subtle interplay between their individual efficacies and dependence between them. The modelling tool we use to study this problem is closely related to earlier work on software design diversity. The earliest of these results showed that, under quite plausible assumptions, it would be unreasonable even to expect software versions that were developed ‘truly independently’ to fail independently of one another. The key idea here was a ’difficulty function’ over the input space. Later work extended these ideas to introduce a notion of ’forced’ diversity, in which it became possible to obtain system failure behaviour better even than could be expected if the versions failed independently. In this paper we show that many of these results for design diversity have counterparts in diverse fault detection in a single software version. We define measures of fault finding effectiveness, and of diversity, and show how these might be used to give guidance for the optimal application of different fault finding procedures to a particular program. We show that the effects upon reliability of repeated applications of a particular fault finding procedure are not statistically independent - in fact such an incorrect assumption of independence will always give results that are too optimistic. For diverse fault finding procedures, on the other hand, things are different: here it is possible for effectiveness to be even greater than it would be under an assumption of statistical independence. We show that diversity of fault finding procedures is, in a precisely defined way, ’a good thing’, and should be applied as widely as possible. The new model and its results are illustrated using some data from an experimental investigation into diverse fault finding on a railway signalling application.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Rouquet, J.C., Traverse, P.J.: Safe and reliable computing on board of Airbus and ATR aircraft. In: 5th International Workshop on Safety of Computer Control Systems (SAFECOMP 1986), Sarlat, France, pp. 93–97. Pergamon Press, Oxford (1986)

    Google Scholar 

  2. Eckhardt, D.E., Caglayan, A.K., et al.: An experimental evaluation of software redun-dancy as a strategy for improving reliability. IEEE Transactions on Software Engineering 17(7), 692–702 (1991)

    Article  Google Scholar 

  3. Knight, J.C., Leveson, N.G.: An experimental evaluation of the assumption of inde-pendence in multi-version programming. IEEE Transactions on Software Engineering SE-12(1), 96–109 (1986)

    Google Scholar 

  4. Eckhardt, D.E., Lee, L.D.: A theoretical basis for the analysis of multiversion software subject to coincident errors. IEEE Transactions on Software Engineering SE-11(12), 1511–1517 (1985)

    Article  Google Scholar 

  5. Littlewood, B., Miller, D.R.: Conceptual modelling of coincident failures in multi-version software. IEEE Transactions on Software Engineering SE-15(12), 1596–1614 (1989)

    Article  MathSciNet  Google Scholar 

  6. Frankl, P., Hamlet, D., et al.: Choosing a testing method to deliver reliability. In: 19th International Conference on Software Engineering (ICSE 1997), pp. 68–78 (1997)

    Google Scholar 

  7. Adams, E.N.: Optimizing preventive service of software products. IBM Journal of Research and Development 28(1), 2–14 (1984)

    Article  Google Scholar 

  8. Westermann, S.J., Shryane, N.M., et al.: Engineering Cognitive Diversity. In: Redmill, F., Anderson, T. (eds.) Safer Systems: Proceedings of the Fifth Safety-critical Systems Symposium, p. 111. Springer, Heidelberg (1997)

    Google Scholar 

  9. Westerman, S.J., Shryane, N.M., et al.: Cognitive diversity: A structured approach to trapping human error. In: SAFECOMP 1995: 14th International Conference on Computer Safety, Reliability and Security, Belgirate, Italy, pp. 142–155. Springer, Heidelberg (1995)

    Google Scholar 

  10. Shryane, N.M., Westerman, S.J., et al.: Task analysis for the investigation of human error in safety-critical software design: a convergent methods approach. Ergonomics 41(11), 1719–1736 (1998)

    Article  Google Scholar 

  11. Basili, V., Green, S.: Software process evolution at the SEL. IEEE Software 11(4), 58–66 (1994)

    Article  Google Scholar 

  12. Basili, V.R., Selby, R.: Comparing the effectiveness of software testing strategies. IEEE Transactions on Software Engineering 13(12), 1278–1296 (1987)

    Article  Google Scholar 

  13. Frankl, P.G., Weiss, S.N.: An experimental comparison of the effectiveness of branch testing and data flow testing. IEEE Transactions on Software Engineering 19(8), 774–787 (1993)

    Article  Google Scholar 

  14. Grady, R.B.: Practical Software Metrics for Project Management and Process Improve-ment, p. 282. Prentice-Hall, Englewood Cliffs (1992)

    Google Scholar 

  15. Shimeall, T.J., Leveson, N.G.: An empirical comparison of software fault tolerance and fault elimination. IEEE Transactions on Software Engineering 17, 173–182 (1991)

    Article  Google Scholar 

  16. So, S.S., Cha, S.D., et al.: An empirical evaluation of six methods to detect faults in soft-ware. Software Testing, Verification & Reliability 12(3), 155–171 (2002)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Robert M. Hierons Jonathan P. Bowen Mark Harman

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Littlewood, B., Popov, P., Strigini, L., Shryane, N. (2008). Modelling the Effects of Combining Diverse Software Fault Detection Techniques. In: Hierons, R.M., Bowen, J.P., Harman, M. (eds) Formal Methods and Testing. Lecture Notes in Computer Science, vol 4949. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78917-8_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-78917-8_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-78916-1

  • Online ISBN: 978-3-540-78917-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics