Applying Social Network Analysis to Software Fault-Proneness Prediction
MetadataShow full item record
Due to the rapid pace of software development, end-users now anticipate a seemingly limitless expansion of capabilities from their software. As a result, software systems are becoming increasingly complex and more susceptible to failures. Although software fault localization techniques are becoming more comprehensive, it is still expensive to precisely locate, let alone fix, bugs in a program. Hence, fault-proneness prediction can be applied beforehand to alleviate the cost of program debugging by identifying software modules which are likely to contain faults. Meanwhile, social network analysis (SNA) has been frequently applied in software engineering to depict relations between (1) modules, (2) developers, or (3) modules and developers. Previous studies have shown that these relations have been used to build social networks to predict fault-prone modules and the results are encouraging. Although these networks are useful for fault-proneness prediction, they are built either by a single relation or by a pair of relations aforementioned. In addition, these networks appear to neglect an essential factor: developer quality. After all, it is developers who make mistakes and introduce faults into software. We therefore, propose Tri-Relation Network (TRN), a weighted social network that integrates all three types of relations. Four network node centrality metrics are correspondingly derived from TRN. Moreover, a calibration mechanism for edge weights on TRN is explored as well. Case studies reveal that TRN holds great promise in the context of fault-proneness prediction and the effectiveness improves further after applying the calibration mechanism on current TRN.