Putting it All Together: Using Socio-Technical Networks to Predict Failures
- Christian Bird ,
- Nachiappan Nagappan ,
- Premkumar Devanbu ,
- Harald Gall ,
- Brendan Murphy ,
- Nachi Nagappan
Proceedings of the 17th International Symposium on Software Reliability Engineering |
Published by IEEE Computer Society
International Symposium on Software Reliability Engineering (ISSRE 2019) Highlights from 30 years of ISSRE - Influential Paper Award
Studies have shown that social factors in development organizations have a dramatic effect on software quality. Separately, program dependency information has also been used successfully to predict which software components are more fault prone. Interestingly, the influence of these two phenomena have only been studied separately. Intuition and practical experience suggests, however, that task assignment (i.e. who worked on which components and how much) and dependency structure (which components have dependencies on others) together interact to influence the quality of the resulting software. We study the influence of combined socio-technical software networks on the fault-proneness of individual software components within a system. The network properties of a software component in this combined network are able to predict if an entity is failure prone with greater accuracy than prior methods which use dependency or contribution information in isolation. We evaluate our approach in different settings by using it on Windows Vista and across six releases of the Eclipse development environment including using models built from one release to predict failure prone components in the next release. We compare this to previous work. In every case, our method performs as well or better and is able to more accurately identify those software components that have more post-release failures, with precision and recall rates as high as 85%.