Exploring the missing link: an empirical study of software fixes. (7th October 2013) - Hamill, Maggie; Goseva‐Popstojanova, Katerina; Brucker, Achim D.; Julliand, Jacques
SUMMARY Many papers have been published on analysis and prediction of software faults and/or failures, but few addressed the software fixes made to correct the faults and prevent failures from reoccurring. This paper contributes towards filling this gap by focusing on empirical characterization of software fixes. The results are based on the data extracted from a safety–critical NASA mission. In particular, 21 large‐scale software components (which together constitute over 8000 files and millions of lines of code) were analysed. The unique characteristic of this work is the fact that links were established from software faults (i.e. the root causes) to (potential or observed) failures and consequently to fixes made to correct these faults. Specifically, for the fixes associated with individual failures, the spread across software components and types of software artifacts being fixed was studied. Our results showed that significant number of software failures required fixes in multiple software components and/or multiple software artifacts (i.e. 15% and 26%, respectively). The results also showed that the patterns of software components that were often fixed together were significantly affected by the software architecture. Furthermore, the types of fixed software artifacts were highly correlated with fault type and they had different distributions for prerelease and post‐release failures. Copyright © 2013 John Wiley & Sons, Ltd.