Skip to main content

Improving the Quality of Software by Quantifying the Code Change Metric and Predicting the Bugs

  • Conference paper
Computational Science and Its Applications – ICCSA 2013 (ICCSA 2013)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7972))

Included in the following conference series:

Abstract

“When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure, when you cannot express it in numbers, your knowledge is of a meagre and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced to the stage of science.” LORD WILLIAM KELVIN (1824 – 1907). During the last decade, the quantification of software engineering process has got a pace due to availability of a huge amount of software repositories. These repositories include source code, bug, communication among developers/users, changes in code, etc. Researchers are trying to find out useful information from these repositories for improving the quality of software.

The absence of bugs in the software is a major factor that decides the quality of software. In the available literature, researchers have proposed and implemented a plethora of bug prediction approaches varying in terms of accuracy, complexity and input data. The code change metric based bug prediction is proven to be very useful. In the literature, decay functions have been proposed that decay the complexity of code changes over a period of time in either exponential or linear fashion but they do not fit in open source software development paradigm because in open source software development paradigm, the development team is geographical dispersed and there is an irregular fluctuation in the code changes and bug detection/fixing process. The complexity of code changes reduces over a period of time that may be less than exponential or more than linear. This paper presents the method that quantifies the code change metric and also proposed decay functions that capture the variability in the decay curves represented the complexity of code changes. The proposed decay functions model the complexity of code changes which reduces over a period of time and follows different types of decay curves. We have collected the source code change data of Mozilla components and applied simple linear regression (SLR) and support vector regression (SVR) techniques to validate the proposed method and predict the bugs yet to come in future based on the current year complexity of code changes (entropy). The performance of proposed models has been compared using different performance criteria namely R2, Adjusted R2, Variation and Root Mean Squared Prediction Error (RMSPE).

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. Arisholm, E., Briand, L.C.: Predicting fault prone components in a java legacy system. In: Proceedings of the 2006 ACM/IEEE International Symposium on Empirical Software Engineering, pp. 8–17. ACM (2006)

    Google Scholar 

  2. D’Ambros, M., Lanza, M., Robbes, R.: An extensive comparison of bug prediction approaches. In: MSR 2010: Proceedings of the 7th International Working Conference on Mining Software Repositories, pp. 31–41 (2010)

    Google Scholar 

  3. D’Ambros, M., Lanza, M., Robbes, R.: Evaluating defect prediction approaches: A benchmark and an extensive comparison. Empirical Software Engineering 17(4-5), 537–577 (2012)

    Google Scholar 

  4. Elish, K.O., Elish, M.O.: Predicting defect-prone software modules using support vector machines. The Journal of Systems and Software 81, 649–660 (2008)

    Article  Google Scholar 

  5. Fenton, N.E., Ohlsson, N.: Quantitative analysis of faults and failures in a complex software system. IEEE Transactions on Software Engineering 26(8), 797–814 (2000)

    Article  Google Scholar 

  6. Goel, A.L., Okumoto, K.: Time dependent error detection rate model for software reliability and other performance measures. IEEE Transactions on Reliability R-28(3), 206–211 (1979)

    Article  Google Scholar 

  7. Graves, T.L., Karr, A.F., Marron, J.S., Siy, H.P.: Predicting fault incidence using software change history. IEEE Transactions on Software Engineering 26(7), 653–661 (2000)

    Article  Google Scholar 

  8. Gyimóthy, T., Ferenc, R., Siket, I.: Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Transactions on Software Engineering 31(10), 897–910 (2005)

    Article  Google Scholar 

  9. Hassan, A.E.: Predicting Faults based on complexity of code change. In: The Proceedings of 31st Intl. Conf. on Software Engineering, pp. 78–88 (2009)

    Google Scholar 

  10. Hassan, A.E., Holt, R.C.: Studying the chaos in code development. In: Proceedings of 10th Working Conference on Reverse Engineering (November 2003)

    Google Scholar 

  11. Hassan, A.E., Holt, R.C.: The chaos of software development. In: Proceedings of the 6th IEEE International Workshop on Principles of Software Evolution (September 2003)

    Google Scholar 

  12. Hassan, A.E., Holt, R.C.: The top ten list: Dynamic fault prediction. In: Proceedings of ICSM 2005, pp. 263–272 (2005)

    Google Scholar 

  13. Herraiz, I., Gonzalez-Barahona, J.M., Robles, G.: Towards a theoretical model for software growth. In: Proceedings of the 4th International Workshop on Mining Software Repositories, Minnesotta, USA (2007)

    Google Scholar 

  14. Kapur, P.K., Garg, R.B., Kumar, S.: Contributions to Hardware and Software Reliability. World Scientific Publishing Co. Ltd., Singapore (1999)

    Book  MATH  Google Scholar 

  15. Kapur, P.K., Garg, R.B.: A software reliability growth model for an error removal phenomenon. Software Engineering Journal 7, 291–294 (1992)

    Article  Google Scholar 

  16. Kim, S., Zimmermann, T., Whitehead, J., Zeller, A.: Predicting faults from cached history. In: Proceedings of ICSE 2007, pp. 489–498. IEEE CS (2007)

    Google Scholar 

  17. Khoshgoftaar, T.M., Allen, E.B., Jones, W.D., Hudepohl, J.P.: Data mining for predictors of software quality. International Journal of Software Engineering and Knowledge Engineering 9(5), 547–563 (1999)

    Article  Google Scholar 

  18. Leszak, M., Perry, D.E., Stoll, D.: Classification and evaluation of defects in a project retrospective. The Journal of Systems and Software 61(3), 173–187 (2002)

    Article  Google Scholar 

  19. Lyu, M.R.: Handbook of Software Reliability Engineering. McGraw-Hill (1996)

    Google Scholar 

  20. Musa, J.D., Iannino, A., Okumoto, K.: Software Reliability, Measurement, Prediction and Application. McGraw-Hill (1987)

    Google Scholar 

  21. Nagappan, N., Ball, T.: Use of relative code churn measures to predict system defect density. In: Proceedings of the 27th International Conference on Software Engineering, pp. 284–292 (2005)

    Google Scholar 

  22. Nagappan, N., Ball, T.: Static analysis tools as early indicators of pre-release defect density. In: Proceedings of ICSE 2005, pp. 580–586. ACM (2005)

    Google Scholar 

  23. Nagappan, N., Ball, T., Zeller, A.: Mining metrics to predict component failures. In: Proceedings of ICSE 2006, pp. 452–461 ACM (2006)

    Google Scholar 

  24. Ohba, M.: Inflection S-shaped software reliability growth model. In: Osaki, S., Hotoyama, Y. (eds.) Stochastic Models in Reliability Theory. LNEMS, vol. 235, pp. 144–162. Springer, Heidelberg (1984)

    Chapter  Google Scholar 

  25. Ostrand, T.J., Weyuker, E.J., Bell, R.M.: Predicting the location and number of faults in large complex systems. IEEE Transactions on Software Engineering 31(4), 340–355 (2005)

    Article  Google Scholar 

  26. Shannon, C.E.: A Mathematical Theory of Communication. The Bell System Technical Journal 27, 379–423, 623–656 (1948)

    Google Scholar 

  27. Singh, V.B.: A Study on Software Reliability Growth Modeling using Change Point and Fault Dependency. University of Delhi (2008)

    Google Scholar 

  28. The bugZilla project (2012), http://www.bugzilla.org

  29. The Mozilla project (2012), http://www.mozilla.org

  30. Weisberg, S.: Applied Linear Regression. John Wiley and Sons (1980)

    Google Scholar 

  31. Yamada, S., Ohba, M., Osaki, S.: S-shaped software reliability growth modelling for software error detection. IEEE Trans. on Reliability R-32 (5), 475–484 (1983)

    Article  Google Scholar 

  32. Vapnik, V.: The Nature of Statistical Learning Theory. Springer, New York (1995)

    Book  MATH  Google Scholar 

  33. Xing, F., Guo, P.: Support vector regression for software reliability growth modeling and prediction. In: Wang, J., Liao, X.-F., Yi, Z. (eds.) ISNN 2005. LNCS, vol. 3496, pp. 925–930. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  34. Singh, V.B., Chaturvedi, K.K.: Entropy based bug prediction using support vector regression. In: Proceedings ISDA 2012 - 12th International Conference on Intelligent System Design and Applications, Kochi, India, November 27-29, pp. 746–751. IEEE Xplore, USA (2012)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Singh, V.B., Chaturvedi, K.K. (2013). Improving the Quality of Software by Quantifying the Code Change Metric and Predicting the Bugs. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2013. ICCSA 2013. Lecture Notes in Computer Science, vol 7972. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39643-4_30

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-39643-4_30

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-39642-7

  • Online ISBN: 978-3-642-39643-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics