Fault-proneness Prediction Based on Analysis of Human Aspects in Software Developing Process




Journal Title

Journal ISSN

Volume Title




Nowadays, Quality Assurance and debugging defective software is becoming gradually costly and time-consuming. As a result, applying techniques such as fault-proneness prediction can help in this regard in large scale software system development. The specific fault-proneness prediction usually starts with software metrics, which are introduced to quantify and evaluated different aspects of attributes in software processes and productions. Once we have software metrics as indicators, a fault-proneness prediction model can be built using statistics or machine learning methods. However, since software programs are pure cognitive products of human developers; the flaws in it are caused by erroneous behaviors of human involved. Therefore, we feel the importance of introducing quantitative analysis on the human factors to enhance fault-proneness prediction. With that in mind, we come up with two approaches to achieve more precise prediction: firstly, separating the consistent characteristics of human individuals and evaluate their future and classifying certain working activities, and secondly, interaction during development process that could affect the performance of developers. For the first approach, we proposed a new metric based on historical activities: the Developer Risk Score, which is a performance indicator for the developers’ history of making mistakes during their working period on related software projects. Different from previous approaches, the Developer Risk Score further takes software complexity and the severity of bug into account when evaluating the performance of a developer. Our approach proved that for a software module that more high-risk developers involved more tend to be faultprone, and it is more efficient than other approaches when predicting such fault in software modules. For the second approach, we considered a software network with human aspects. Software network is a graphical model that constructed by several elements in modern software systems to symbolize the patterns of activities between them. To integrate human aspects into the model, we proposed the Composite Developer-Module Network. The network combines developers’ network and software modules’ network. By using network structure categorization comparation on the sub-structures within the network, deeper and indirect dependencies between developers and software modules can be included. Our evaluation proved that the more complex sub-structures of software network, that is, more developers or more function calls include in the sub-structures, can be more correlated to possible bug introduction.



Computer Science