Abstract

Software faults can cause trivial annoyance to catastrophic failures. Recent work in software fault prediction (SFP) advocates the need for predicting faults before deployment to aid testing process. Object-oriented programming is complex while comparing it with procedural languages having multiple dimensions wherein inheritance is an important aspect. In this paper, we aim to investigate how much inheritance metrics assist in predicting software fault proneness. We first select the Chidamber and Kemerer (CK) metrics, most accepted metric suite for predicting software faults and inheritance metrics. We use 65 publicly available base datasets having CK metrics and some other inheritance metrics to evaluate the impact of inheritance on SFP. We split each dataset into further two datasets: inheritance with CK and CK without inheritance for comparison of results. An artificial neural network (ANN) is used for model building, and accuracy, recall, precision, F1 measures, and true negative rate (TNR) are used for measuring performance. Comparison is made and the results show an acceptable contribution of inheritance metrics in SFP. The testing community can safely use inheritance metrics in predicting software faults. Moreover, high inheritance is not desirable, as this can potentially lead to software faults.

Highlights

  • A bug in a software program is a failure or fault that prevents the program from running as intended, for example, generating an incorrect result

  • The cost of business software worldwide was $ 3.8 billion in 2014 [2] which includes 23% of quality assurance and testing [3]. These results demonstrate the importance of software testing in the Software Development Life Cycle (SDLC)

  • From literature review it appeared that Chidamber and Kemerer metric suite (CK) are widely used in software fault prediction (SFP), so we wanted to compare the results of CK metrics without Inheritance (CK−inheritance) and Inheritance with CK (Inheritance+CK )

Read more

Summary

Introduction

A bug in a software program is a failure or fault that prevents the program from running as intended, for example, generating an incorrect result. The essential part of software development is to ensure that developed software has enhanced quality. It is a well-proven fact that the sooner a fault is detected, the sooner it is resolved, the lesser it costs [1]. The cost of business software worldwide was $ 3.8 billion in 2014 [2] which includes 23% of quality assurance and testing [3]. These results demonstrate the importance of software testing in the Software Development Life Cycle (SDLC). Faults are unavoidable certain mechanisms are required to locate and correct them from software

Objectives
Methods
Results
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.