Are Developers Fixing Their Own Bugs?: Tracing Bug-Fixing and Bug-Seeding Committers

The process of fixing software bugs plays a key role in the maintenance activities of a software project. Ideally, code ownership and responsibility should be enforced among developers working on the same artifacts, so that those introducing buggy code could also contribute to its fix. However, especially in FLOSS projects, this mechanism is not clearly understood: in particular, it is not known whether those contributors fixing a bug are the same introducing and seeding it in the first place. This paper analyzes the comm-central FLOSS project, which hosts part of the Thunderbird, SeaMonkey, Lightning extensions and Sunbird projects from the Mozilla community. The analysis is focused at the level of lines of code and it uses the information stored in the source code management system. The results of this study show that in 80% of the cases, the bug-fixing activity involves source code modified by at most two developers. It also emerges that the developers fixing the bug are only responsible for 3.5% of the previous modifications to the lines affected; this implies that the other developers making changes to those lines could have made that fix. In most of the cases the bug fixing process in comm-central is not carried out by the same developers than those who seeded the buggy code.

[1]  R. Gabriel,et al.  Innovation Happens Elsewhere: How and Why a Company Should Participate in Open Source , 2004 .

[2]  Tom Mens,et al.  What Does It Take to Develop a Million Lines of Open Source Code? , 2009, OSS.

[3]  Jitesh H. Panchal,et al.  Analysis of the Structure and Evolution of an Open-Source Community , 2011, J. Comput. Inf. Sci. Eng..

[4]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[5]  Stephen R. Schach,et al.  Open-Source Change Logs , 2004, Empirical Software Engineering.

[6]  Andreas Zeller,et al.  When do changes induce fixes? , 2005, ACM SIGSOFT Softw. Eng. Notes.

[7]  Dominique Torre,et al.  Open Source and Commercial Software Platforms: Is Coexistence a Temporary or a Sustainable Outcome? , 2009, Int. J. Open Source Softw. Process..

[8]  Ambjörn Naeve,et al.  Open source for knowledge and learning management : strategies beyond tools , 2007 .

[9]  Jesús M. González-Barahona,et al.  Contributor Turnover in Libre Software Projects , 2006, OSS.

[10]  Gerardo Canfora,et al.  Identifying Changed Source Code Lines from Version Repositories , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[11]  Audris Mockus,et al.  International Workshop on Mining Software Repositories , 2004 .

[12]  Francesco Rentocchini,et al.  An Analysis of the Adoption of Open Source Software by Local Public Administrations: Evidence from the Emilia-Romagna Region of Italy , 2010, Int. J. Open Source Softw. Process..

[13]  Martin Hammitzsch,et al.  Framework for Graphical User Interfaces of Geospatial Early Warning Systems , 2011, Int. J. Open Source Softw. Process..

[14]  Cornelia Boldyreff,et al.  Coordination and productivity issues in free software: The role of brooks' law , 2009, 2009 IEEE International Conference on Software Maintenance.

[15]  K. Amant,et al.  Handbook of Research on Open Source Software: Technological, Economic, and Social Perspectives , 2007 .

[16]  Andreas Zeller,et al.  Mining version archives for co-changed lines , 2006, MSR '06.

[17]  Stefan Koch,et al.  Exploring the effects of SourceForge.net coordination and communication tools on the efficiency of open source projects using data envelopment analysis , 2009, Empirical Software Engineering.

[18]  Sunghun Kim,et al.  Toward an understanding of bug fix patterns , 2009, Empirical Software Engineering.

[19]  Jesús M. González-Barahona,et al.  Using Software Archaeology to Measure Knowledge Loss in Software Projects Due to Developer Turnover , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[20]  Juan Julián Merelo Guervós,et al.  Beyond source code: The importance of other artifacts in software development (a case study) , 2006, J. Syst. Softw..

[21]  Rogerio Atem de Carvalho,et al.  Free and Open Source Enterprise Resource Planning: Systems and Strategies , 2011 .

[22]  Kouichi Kishida,et al.  The Co-Evolution of Systems and Communities in Free and Open Source Software Development , 2005 .

[23]  Marko Seppänen,et al.  Business Models in Open Source Software Value Creation , 2007 .

[24]  Gregorio Robles,et al.  Using Software Archaeology to Measure Knowledge Loss in Software Projects Due to Developer Turnover , 2009 .

[25]  Sofiane Sahraoui,et al.  An Agile Perspective on Open Source Software Engineering , 2012, Int. J. Open Source Softw. Process..

[26]  Imed Hammouda,et al.  Tool Assisted Analysis of Open Source Projects: A Multi-Faceted Challenge , 2011, Int. J. Open Source Softw. Process..

[27]  Alexander Hars,et al.  Open Source Software Business Models and Customer Involvement Economics , 2008 .

[28]  Philip J. Guo,et al.  Characterizing and predicting which bugs get fixed: an empirical study of Microsoft Windows , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[29]  Charles D. Knutson,et al.  Trends That Affect Temporal Analysis Using SourceForge Data , 2010 .

[30]  Daniel M. Germán,et al.  Using software trails to reconstruct the evolution of software , 2004, J. Softw. Maintenance Res. Pract..

[31]  Riina Vuorikari,et al.  European National Educational School Authorities' Actions Regarding Open Content and Open Source Software in Education , 2007 .

[32]  Eugene W. Myers,et al.  A file comparison program , 1985, Softw. Pract. Exp..

[33]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[34]  Daniel M. Germán,et al.  What do large commits tell us?: a taxonomical study of large commits , 2008, MSR '08.

[35]  Yi Zhang,et al.  Classifying Software Changes: Clean or Buggy? , 2008, IEEE Transactions on Software Engineering.

[36]  D HerbslebJames,et al.  Two case studies of open source software development , 2002 .

[37]  David Ma,et al.  Expert recommendation with usage expertise , 2009, 2009 IEEE International Conference on Software Maintenance.

[38]  Michel Wermelinger,et al.  Empirical Studies of Open Source Evolution , 2008, Software Evolution.

[39]  Daniel M. German Using software trails to reconstruct the evolution of software: Research Articles , 2004 .

[40]  Esko Ukkonen,et al.  Algorithms for Approximate String Matching , 1985, Inf. Control..