Results 1 -
6 of
6
Quantitative Analysis of Faults and Failures in a Complex Software System
- IEEE Transactions on Software Engineering
, 2000
"... The dearth of published empirical data on major industrial systems has been one of the reasons that software engineering has failed to establish a proper scientific basis. In this paper we hope to provide a small contribution to the body of empirical knowledge. We describe a number of results from a ..."
Abstract
-
Cited by 111 (5 self)
- Add to MetaCart
The dearth of published empirical data on major industrial systems has been one of the reasons that software engineering has failed to establish a proper scientific basis. In this paper we hope to provide a small contribution to the body of empirical knowledge. We describe a number of results from a quantitative study of faults and failures in two releases of a major commercial system. We tested a range of basic software engineering hypotheses relating to: the Pareto principle of distribution of faults and failures; the use of early fault data to predict later fault and failure data; metrics for fault prediction; and benchmarking fault data. For example, we found strong evidence that a small number of modules contain most of the faults discovered in pre-release testing, and that a very small number of modules contain most of the faults discovered in operation. However, in neither case is this explained by the size or complexity of the modules. We found no evidence to support previous claims relating module size to fault density, nor did we find evidence that popular complexity metrics are good predictors of either fault-prone or failure-prone modules. We confirmed that the number of faults discovered in pre-release testing is an order of magnitude greater than the number discovered in 12 months of operational use. We also discovered fairly
The Accuracy of Fault Prediction in Modified Code – Statistical Model vs. Expert Estimation
"... Fault prediction models still seem to be more popular in academia than in industry. In industry expert estimations of fault proneness are the most popular methods of deciding where to focus the fault detection efforts. In this paper we present a study in which we empirically evaluate the accuracy of ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Fault prediction models still seem to be more popular in academia than in industry. In industry expert estimations of fault proneness are the most popular methods of deciding where to focus the fault detection efforts. In this paper we present a study in which we empirically evaluate the accuracy of fault prediction offered by statistical models as compared to expert estimations. The study is industry based. It involves a large telecommunication system and experts that were involved in the development of this system. Expert estimations are compared to simple prediction models built on another large system, also from the telecommunication domain. We show that the statistical methods clearly outperform the expert estimations. As the main reason for the superiority of the statistical models we see their ability to cope with large datasets, which results in their ability to perform reliable predictions for larger number of components in the system, as well as the ability to perform prediction at a more fine-grain level, e.g., at the class instead of at the component level. 1.
Increasing the Efficiency of Fault Detection in Modified Code
"... Many software systems are developed in a number of consecutive releases. Each new release does not only add new code but also modifies already existing one. In this study we have shown that the modified code can be an important source of faults. The faults are widely recognized as one of the major c ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Many software systems are developed in a number of consecutive releases. Each new release does not only add new code but also modifies already existing one. In this study we have shown that the modified code can be an important source of faults. The faults are widely recognized as one of the major cost drivers in software projects. Therefore we look for methods of improving fault detection in the modified code. We suggest and evaluate a number of prediction models for increasing the efficiency of fault detection. We evaluate them against the theoretical best model, a simple model based on size, as well as against analyzing the code in a random order (not using any model). We find that using our models provides a significant improvement both over not using any model at all and using the simple model based on the class size. The gain offered by the models corresponds to 30 % to 60 % of the theoretical maximum. 1.
Impact of Faults in Different Software Systems: A Survey
"... Abstract—Software maintenance is extremely important activity in software development life cycle. It involves a lot of human efforts, cost and time. Software maintenance may be further subdivided into different activities such as fault prediction, fault detection, fault prevention, fault correction ..."
Abstract
- Add to MetaCart
Abstract—Software maintenance is extremely important activity in software development life cycle. It involves a lot of human efforts, cost and time. Software maintenance may be further subdivided into different activities such as fault prediction, fault detection, fault prevention, fault correction etc. This topic has gained substantial attention due to sophisticated and complex applications, commercial hardware, clustered architecture and artificial intelligence. In this paper we surveyed the work done in the field of software maintenance. Software fault prediction has been studied in context of fault prone modules, self healing systems, developer information, maintenance models etc. Still a lot of things like modeling and weightage of impact of different kind of faults in the various types of software systems need to be explored in the field of fault severity.
EMERALD
, 1999
"... Abstract—Software faults are defects in software modules that might cause failures. Software developers tend to focus on faults, because they are closely related to the amount of rework necessary to prevent future operational software failures. The goal of this paper is to predict which modules are ..."
Abstract
- Add to MetaCart
Abstract—Software faults are defects in software modules that might cause failures. Software developers tend to focus on faults, because they are closely related to the amount of rework necessary to prevent future operational software failures. The goal of this paper is to predict which modules are fault-prone and to do it early enough in the life cycle to be useful to developers. A regression tree is an algorithm represented by an abstract tree, where the response variable is a real quantity. Software modules are classified as fault-prone or not, by comparing the predicted value to a threshold. A classification rule is proposed that allows one to choose a preferred balance between the two types of misclassification rates. A case study of a very large telecommunications systems considered software modules to be fault-prone if any faults were discovered by customers. Our research shows that classifying fault-prone modules with regression trees and the using the classification rule in this paper, resulted in predictions with satisfactory accuracy and robustness. Index Terms—Classification, fault-prone modules, regression trees, software metrics, software reliability, S-Plus.
The Accuracy of Early Fault Prediction in Modified Code
"... Software systems are normally developed in a number of releases. Each release usually modifies existing code. In this study we show that such modified code can be an important source of faults. Since faults are considered major cost drivers of software projects, the ability to identify fault-prone c ..."
Abstract
- Add to MetaCart
Software systems are normally developed in a number of releases. Each release usually modifies existing code. In this study we show that such modified code can be an important source of faults. Since faults are considered major cost drivers of software projects, the ability to identify fault-prone classes before they are implemented would give a chance to apply some preventive measures, which could bring significant savings on project costs. To achieve that, however, the prediction model available early in the development process would have to be accurate. In this study we compare the accuracy of fault prediction models available before and after the system is implemented. We find that fault prediction models that are available after the system is implemented are about 34 % more accurate compared to models available before the system is implemented. We discover that the higher accuracy of the prediction models available after the system is implemented is caused by the metric that describes the size of the class modification. This metric is a code metric that is available only after the system is developed. As further work, we suggest defining design metrics that describe the characteristics of modifications and evaluating their applicability to predict faults in modified code.

