University of Toronto
Obtaining an accurate characterization of pre-release changes, especially those related to fault corrections, can give indications for the quality of the software development process and its product. The resulting indications can then be leveraged to identify areas for quality improvement within development organizations. Towards this objective, we studied the evolution of source code modules in a large industrial enterprise resource planning system spanning a time period of over two years from initial creation to release. In this paper, we describe the process used in our case study, and present the frequency distributions of pre-release changes and faults along with lessons learned from the case study. Overall, we found that (a) only 22% of pre-release changes contribute new functionality to the system under development; the remaining majority of pre-release changes are either fault corrections or code clean-ups (b) over 72% of pre-release faults are propagated from upper-stream requirements and design activities (c) fault classes that are the target of most fault detection tools have a low frequency.