Abstract
It would obviously be very valuable to know in advance which files in the next release of a large software system are most likely to contain the largest numbers of faults. This is true whether the goal is to validate the system by testing or formally verifying it, or by using some hybrid approach. To accomplish this, we developed negative binomial regression models and used them to predict the expected number of faults in each file of the next release of a system. The predictions are based on code characteristics and fault and modification history data. This paper discusses what we have learned from applying the model to several large industrial systems, each with multiple years of field exposure. It also discusses our success in making accurate predictions and some of the issues that had to be considered.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adams, E.N.: Optimizing Preventive Service of Software Products. IBM J. Res. Develop 28(1), 2–14 (Jan, 1984) (1984)
Arisholm, E., Briand, L.C.: Predicting Fault-prone Components in a Java Legacy System. In: Proc. ACM/IEEE ISESE, Rio de Janeiro (2006)
Basili, V.R., Perricone, B.T.: Software Errors and Complexity: An Empirical Investigation. Communications of the ACM 27(1), 42–52 (1984)
Bell, R.M., Ostrand, T.J., Weyuker, E.J.: Looking for Bugs in All the Right Places. In: Proc. ACM/International Symposium on Software Testing and Analysis (ISSTA 2006), July 2006, pp. 61–71. Portland, Maine (2006)
Chidamber, S.R., Kemerer, C.F.: A Metrics Suite for Object Oriented Design. IEEE Trans. on Software Engineering 20(6), 476–493 (1994)
Denaro, G., Pezze, M.: An Empirical Evaluation of Fault-Proneness Models. In: Proc. International Conf on Software Engineering (ICSE 2002), Miami, USA (May 2002)
Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does Code Decay? Assessing the Evidence from Change Management Data. IEEE Trans. on Software Engineering 27(1), 1–12 (2001)
Fenton, N.E., Ohlsson, N.: Quantitative Analysis of Faults and Failures in a Complex Software System. IEEE Trans. on Software Engineering 26(8), 797–814 (2000)
Graves, T.L., Karr, A.F., Marron, J.S., Siy, H.: Predicting Fault Incidence Using Software Change History. IEEE Trans. on Software Engineering 26(7), 653–661 (2000)
Guo, L., Ma, Y., Cukic, B., Singh, H.: Robust Prediction of Fault-Proneness by Random Forests. In: Proc. ISSRE 2004, Saint-Malo, France (Nov. 2004)
Hatton, L.: Re examining the Fault Density - Component Size Connection. In: IEEE Software, March/April, pp. 89–97 (1997)
Khoshgoftaar, T.M., Allen, E.B., Kalaichelvan, K.S., Goel, N.: Early Quality Prediction: A Case Study in Telecommunications. In: IEEE Software, (Jan 1996) pp. 65–71 (1996)
Khoshgoftaar, T.M., Allen, E.B., Deng, J.: Using Regression Trees to Classify Fault-Prone Software Modules. IEEE Trans. on Reliability 51(4), 455–462 (2002)
Mockus, A., Weiss, D.M.: Predicting Risk of Software Changes. In: Bell Labs Technical Journal, April-June 2000, pp. 169–180 (2000)
Moller, K.-H., Paulish, D.J.: An Empirical Investigation of Software Fault Distribution. In: Proc. IEEE First International Software Metrics Symposium, Baltimore, May 21-22, 1993, pp. 82–90 (1993)
Munson, J.C., Khoshgoftaar, T.M.: The Detection of Fault-Prone Programs. IEEE Trans. on Software Engineering 18(5), 423–433 (1992)
Nagappan, N., Ball, T., Zeller, A.: Mining Metrics to Predict Component Failures. In: Nagappan, N., Ball, T. (eds.) Proc. Int. Conf. on Software Engineering, May 2006, pp. 452–461. Shanghai, China (2006)
Ohlsson, N., Alberg, H.: Predicting Fault-Prone Software Modules in Telephone Switches. In: IEEE Trans. on Software Engineering, 22th edn., 12, December 1996, pp. 886–894 (1996)
Ostrand, T., Weyuker, E.J.: The Distribution of Faults in a Large Industrial Software System. In: Proc. ACM/International Symposium on Software Testing and Analysis (ISSTA2002), Rome, Italy, July 2002, pp. 55–64 (2002)
Ostrand, T.J., Weyuker, E.J., Bell, R.M.: Predicting the Location and Number of Faults in Large Software Systems. IEEE Trans. on Software Engineering 31(4) (2005)
Ostrand, T.J., Weyuker, E.J., Bell, R.M.: Automating Algorithms for the Identification of Fault-Prone Files. In: Proc. ACM/International Symposium on Software Testing and Analysis (ISSTA 2007), London, England (July 2007)
Pighin, M., Marzona, A.: An Empirical Analysis of Fault Persistence Through Software Releases. In: Proc. IEEE/ACM ISESE 2003, pp. 206–212 (2003)
Succi, G., Pedrycz, W., Stefanovic, M., Miller, J.: Practical Assessment of the Models for Identification of Defect-prone Classes in Object-oriented Commercial Systems Using Design Metrics. Journal of Systems and Software 65(1), 1–12 (2003)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Weyuker, E.J., Ostrand, T.J. (2008). What Can Fault Prediction Do for YOU?. In: Beckert, B., Hähnle, R. (eds) Tests and Proofs. TAP 2008. Lecture Notes in Computer Science, vol 4966. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-79124-9_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-79124-9_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-79123-2
Online ISBN: 978-3-540-79124-9
eBook Packages: Computer ScienceComputer Science (R0)