Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction (2005)

Author(s): Tibor Gyimothy, Rudolf Ferenc, and Istvan Siket
Venue: IEEE Transactions on Software Engineering
Date: 2005

Type of Experiement: Case Study


They use an array of different coupling metrics and use them to determine their accuracy
at predicting fault-proneness within a system. They apply the metrics to the open-source
project Mozilla. The metrics that were compared are: WMC (Weighted Methods per Class),
DIT (Depth of Inheritance Tree), RFC (Response For a Class), NOC (Number of Children),
CBO (Coupling Between Object classes), LCOM (Lack of Cohesion on Methods), LCOMN
(Lack of Cohesion on Methods allowing Negative Value), LOC (Lines of Code).

They compare a whole array of chosen metrics that are used to predict fault-proneness in a
system. They test the selected metrics in comparison with one another on the Mozilla email
client. They use Bugzilla to determine the faults found in between each release and where
they were fixed within the system. They conclude with the CBO metric being the best in
predicting fault- proneness in a class. They also found LOC to perform fairly well and it is
suitable for quick analysis. However for fine grain analysis it starts to shown its weakness
especially within the linear regression statistical analysis.

They found the LCOM metric to have good correctness but its completeness value is low.
They found the DIT metric to be untrustworthy and NOC cannot be used at all for fault-
proneness prediction. They have also applied a machine learning device upon the metrics
that was developed with metric measurements in mind to predict the fault-proneness of a
system. The device chose the CBO metric as the most precise metric of the bunch.