Skip to main content
Log in

Deriving a Fault Architecture to Guide Testing

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Defect analysis of software components can be used to guide testing, with the goal of focusing on parts of the software that were fault-prone in earlier releases or earlier life cycle phases, such as development. We replicate a study that adapted a reverse architecting technique using defect reports to derive fault architectures. A fault architecture determines and visualizes components that are fault-prone in their relationships with other components, as well as those that are locally fault-prone. Our case study uses defect data from three releases of a large medical record system to identify relationships among system components, based on whether they are involved in the same defect report.

We investigate measures that assess the fault-proneness of components and component relationships. Component relationships are used to derive a fault architecture. The resulting fault architecture indicates what the most fault-prone relationships are in a release. We also apply the technique in a new way. Not only do we derive fault architectures for each release, we derive fault architectures for the development, system test and post release phases within each release. Comparing across releases, makes it possible to see whether some components are repeatedly in fault-prone relationships. Comparing across phases, makes it possible to see whether development fault architectures can be used to identify those parts of the software that need to be tested more. We validate our predictions using system test data from the same release. We also use the development and system test fault architectures to identify fault-prone components after release, and validate our predictions using post release data.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Ash, D., Alderete, J., Oman, P.W., and Lowther, B. 1994. Using software models to track code health. Procs. International Conference on Software Maintenance, ICSM'94, Victoria, BritishColombia, Canada, pp. 154-160.

  • Eick, S., Loader, C., Long, M., Votta, L., and VanderWeil, S. 1992. Estimating software fault content before coding. Procs. 14th International Conference on Software Engineering, Melbourne, Australia, pp. 59-65.

  • Feijs, L., Krikhaar, R., and van Ommering, R. 1998. A relational approach to software architecture analysis. Software Practice and Experience, 28(4): 371-400.

    Google Scholar 

  • Gall, H., Hajek, K., and Jazayeri, M. 1998. Detection of logical coupling based on product release history. Procs. of the International Conference on Software Maintenance, Washington, D.C., pp. 190-198.

  • Khoshgoftaar, T. and Szabo, R. 1994. Improving code churn predictions during the system test and maintenance phases. Procs. International Conference on Software Maintenance, Victoria, BritishColombia, Canada, pp. 58-66.

  • Khoshgoftaar, T. and Allen, E. 1998. Predicting the order of fault-prone modules in legacy software. Procs. Ninth International Symposium on Software Reliability Engineering, Paderborn, Germany, pp. 344-353.

  • Krikhaar, R. 1997. Reverse architecting approach for complex systems. Proceedings of the International Conference on Software Maintenance, Bari, Italy, pp. 1-11.

  • Ohlsson, N., Helander, M., and Wohlin, C. 1996. Quality improvement by identification of fault-prone modules using software design metrics. Procs. International Conference on Software Quality, ICSQ'96, Ottowa, Canada, pp. 1-13.

  • Ohlsson, M. and Wohlin, C. 1998. Identification of green, yellow, and red legacy components. Procs. International Conference on Software Maintenance, ICSM'98, Bethesda, Washington, D.C., pp. 6-15.

  • Ohlsson, M., von Mayrhauser, A., McGuire, B., and Wohlin, C. 1999. Code decay analysis of legacy software through successive releases. Procs. IEEE Aerospace Conference, Track 7.401.

  • Schneidewind, N. F. 1997. Software metrics model for quality control. Procs. International Symposium of Software Metrics, Metrics'97, Albuquerque, New Mexico, pp. 127-136.

  • Stringfellow, C. and Andrews, Anneliese 2001. Quantitative analysis of development defects to guide testing: A case study. Submitted to Journal of Software Quality, 9(3): 195-214.

    Google Scholar 

  • Tilley, S., Wong, K., Storey, M., and Muller, H. 1994. Programmable reverse engineering. International Journal of Software Engineering and Knowledge Engineering, 4(4): 501-520.

    Google Scholar 

  • von Mayrhauser, A., Wang, J., Ohlsson, M., and Wohlin, C. 1999. Deriving a fault architecture from defect history. International Conference on Software Reliability Engineering, pp. 295-303.

  • von Mayrhauser, A., Ohlsson, M., and Wohlin, C. 2000. Deriving fault architecture, from defect history. Journal of Software Maintenance, Research and Practice, 12: 287-304.

    Google Scholar 

  • Wohlin, C. and Runeson, P. 1998. Defect content estimations from review data. Procs. International Conference on Software Engineering, Kyoto, Japan, pp. 400-409.

  • Wohlin, C. and Runeson, P. 1995. An experimental evaluation of capture-recapture in software inspections. Journal of Software Testing, Verification and Reliability, 5(4): 213-232.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Stringfellow, C., Andrews, A. Deriving a Fault Architecture to Guide Testing. Software Quality Journal 10, 299–330 (2002). https://doi.org/10.1023/A:1022138004472

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1022138004472

Navigation