Global and Geographically Distributed Work Teams: Understanding the Bug Fixing Process and Bug-prone Activity Patterns
The open nature of FLOSS (Free/Libre/Open Source Software) projects has brought new ways of analyzing from different perspectives how software is developed. FLOSS projects represent a significant portion of the empirical academic literature. One of the main characteristics of these projects is the distributed environment of work. This implies specific infrastructure to keep communicated developers in order to work all together and make decisions. In addition, the traditional hierarchical structures found in enterprises are now being moved by the flatter structures of the libre software communities where meritocracy is in most of the cases the key to be listened to. One of those innovative ways of doing research is related to the mining of software repositories where traces of the activity is kept and publicly available to anyone interested. This also brings positive consequences in contrast to traditional research and this is the possibility to replicate other studies. This thesis, among other goals aims to provide as much information as possible to be consequently replicated and raise, if proceed, as much discussion among researchers as possible and being as useful as possible to some others. Regarding to the analysis carried out in this dissertation, this is focused on the better understanding of the bug life cycle and human related factors that may be more prone to introduce errors in the source code. Specifically, this will play with the concept of bug seeding that is the event of involuntary introduce an error in the source code that later will be discovered and fixed (bug fixing commit). Understanding when a bug was introduced, where exactly in the source code and by whom, opens new research questions that stress the point of looking for potential causes of that involuntary bug introduction event. Although others could have been studied, this dissertation has focused on two potentially buggy attributes of developers that may help them to be less or more prone to introduce errors: experience and the time of the day. With respect to the main contributions, from our best known, this is the first study where the concept of bug seeding commits is used to study the bug life cycle: studying the time to fix a bug from its very beginning (when it was seeded), resultant distributions, comparison to the time to other similar studies focused on the bug tracking system, finding rate of the buggy commits and study of the defective fixing changes. In addition, once the bug life cycle was studied, this dissertation looked for potential human related factors that might be more prone to be buggy. Among other results, on the contrary to other similar and previous literature, no relationship between the experience of a developer and the quality of the changes was found. Regarding to the time of the day to fix a bug, specific timeframes of the day were found to be more prone to introduce errors than others.
Tesis Doctoral leída en la Universidad Rey Juan Carlos en abril de 2012. Directores de la Tesis: Jesús M. González-Barahona y Gregorio Robles Martínez
- IA - Tesis Doctorales