TY - JOUR
T1 - Using K-core Decomposition on Class Dependency Networks to Improve Bug Prediction Model's Practical Performance
AU - Qu, Yu
AU - Zheng, Qinghua
AU - Chi, Jianlei
AU - Jin, Yangxu
AU - He, Ancheng
AU - Cui, Di
AU - Zhang, Hengshan
AU - Liu, Ting
N1 - Publisher Copyright:
© 1976-2012 IEEE.
PY - 2021/2/1
Y1 - 2021/2/1
N2 - In recent years, Complex Network theory and graph algorithms have been proved to be effective in predicting software bugs. On the other hand, as a widely-used algorithm in Complex Network theory, k-core decomposition has been used in software engineering domain to identify key classes. Intuitively, key classes are more likely to be buggy since they participate in more functions or have more interactions and dependencies. However, there is no existing research uses k-core decomposition to analyze software bugs. To fill this gap, we first use k-core decomposition on Class Dependency Networks to analyze software bug distribution from a new perspective. An interesting and widely existed tendency is observed: for classes in k-cores with larger k values, there is a stronger possibility for them to be buggy. Based on this observation, we then propose a simple but effective equation named as top-core which improves the order of classes in the suspicious class list produced by effort-aware bug prediction models. Based on an empirical study on 18 open-source Java systems, we show that the bug prediction models' performances are significantly improved in 85.2 percent experiments in the cross-validation scenario and in 80.95 percent experiments in the forward-release scenario, after using top-core. The models' average performances are improved by 11.5 and 12.6 percent, respectively. It is concluded that the proposed top-core equation can help the testers or code reviewers locate the real bugs more quickly and easily in software bug prediction practices.
AB - In recent years, Complex Network theory and graph algorithms have been proved to be effective in predicting software bugs. On the other hand, as a widely-used algorithm in Complex Network theory, k-core decomposition has been used in software engineering domain to identify key classes. Intuitively, key classes are more likely to be buggy since they participate in more functions or have more interactions and dependencies. However, there is no existing research uses k-core decomposition to analyze software bugs. To fill this gap, we first use k-core decomposition on Class Dependency Networks to analyze software bug distribution from a new perspective. An interesting and widely existed tendency is observed: for classes in k-cores with larger k values, there is a stronger possibility for them to be buggy. Based on this observation, we then propose a simple but effective equation named as top-core which improves the order of classes in the suspicious class list produced by effort-aware bug prediction models. Based on an empirical study on 18 open-source Java systems, we show that the bug prediction models' performances are significantly improved in 85.2 percent experiments in the cross-validation scenario and in 80.95 percent experiments in the forward-release scenario, after using top-core. The models' average performances are improved by 11.5 and 12.6 percent, respectively. It is concluded that the proposed top-core equation can help the testers or code reviewers locate the real bugs more quickly and easily in software bug prediction practices.
KW - Bug prediction
KW - class dependency network
KW - complex network
KW - effort-aware bug prediction
KW - software defects
UR - https://www.scopus.com/pages/publications/85100909370
U2 - 10.1109/TSE.2019.2892959
DO - 10.1109/TSE.2019.2892959
M3 - 文章
AN - SCOPUS:85100909370
SN - 0098-5589
VL - 47
SP - 348
EP - 366
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 2
M1 - 8611396
ER -