Towards semi-automated assignment of software change requests

Abstract Change Requests (CRs) are key elements to software maintenance and evolution. Finding the appropriate developer to a CR is crucial for obtaining the lowest, economically feasible, fixing time. Nevertheless, assigning CRs is a labor-intensive and time consuming task. In this paper, we report on a questionnaire-based survey with practitioners to understand the characteristics of CR assignment, and on a semi-automated approach for CR assignment which combines rule-based and machine learning techniques. In accordance with the results of the survey, the proposed approach emphasizes the use of contextual information, essential to effective assignments, and puts the development team in control of the assignment rules, toward making its adoption easier. The assignment rules can be either extracted from the assignment history or created from scratch. An empirical validation was performed through an offline experiment with CRs from a large software project. The results pointed out that the approach is up to 46.5% more accurate than other approaches which relying solely on machine learning techniques. This indicates that a rule-based approach is a viable and simple method to leverage CR assignments.

[1]  Jun Yan,et al.  Automatic Bug Triage using Semi-Supervised Text Classification , 2017, SEKE.

[2]  Gail C. Murphy,et al.  Automatic bug triage using text categorization , 2004, SEKE.

[3]  Franz Wotawa,et al.  Automatic Classification of Software Change Request Using Multi-label Machine Learning Methods , 2009, 2009 33rd Annual IEEE Software Engineering Workshop.

[4]  Javed Ferzund,et al.  Automated Change Request Triage Using Alpha Frequency Matrix , 2011, 2011 Frontiers of Information Technology.

[5]  Onaiza Maqbool,et al.  Bug Prioritization to Facilitate Bug Report Triage , 2012, Journal of Computer Science and Technology.

[6]  Chao Liu,et al.  Improving Bug Assignment with Bug Tossing Graphs and Bug Similarities , 2011, 2010 International Conference on Biomedical Engineering and Computer Science.

[7]  Philip J. Guo,et al.  "Not my bug!" and other reasons for software bug report reassignments , 2011, CSCW.

[8]  Ibrahim Aljarah,et al.  Selecting discriminating terms for bug assignment: a formal analysis , 2011, Promise '11.

[9]  Iulian Neamtiu,et al.  The Journal of Systems and Software 85 (2012) 2275–2292 Contents lists available at SciVerse ScienceDirect The Journal of Systems and Software , 2022 .

[10]  He Jiang,et al.  Developer prioritization in bug repositories , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[11]  Thomas L. Casavant,et al.  A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems , 1988, IEEE Trans. Software Eng..

[12]  Denys Poshyvanyk,et al.  Journal of Software Maintenance and Evolution: Research and Practice Assigning Change Requests to Software Developers , 2022 .

[13]  Günter Neumann,et al.  Assisting bug Triage in Large Open Source Projects Using Approximate String Matching , 2012, ICSEA 2012.

[14]  Shari Lawrence Pfleeger,et al.  Principles of survey research part 2: designing a survey , 2002, SOEN.

[15]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

[16]  Tao Zhang,et al.  How to Recommend Appropriate Developers for Bug Fixing? , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference.

[17]  Ahmed Tamrawi,et al.  Fuzzy set and cache-based approach for bug triaging , 2011, ESEC/FSE '11.

[18]  Massimiliano Di Penta,et al.  An approach to classify software maintenance requests , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[19]  Mario Linares Vásquez,et al.  Triaging incoming change requests: Bug or commit history, or code authorship? , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[20]  Daniel Lucrédio,et al.  The bug report duplication problem: an exploratory study , 2011, Software Quality Journal.

[21]  Silvio Romero de Lemos Meira,et al.  Towards understanding software change request assignment: a survey with practitioners , 2013, EASE '13.

[22]  Gerardo Canfora,et al.  A Taxonomy of Information Retrieval Models and Tools , 2004 .

[23]  Thomas Zimmermann,et al.  Duplicate bug reports considered harmful … really? , 2008, 2008 IEEE International Conference on Software Maintenance.

[24]  Gail C. Murphy,et al.  Determining Implementation Expertise from Bug Reports , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[25]  Kevin Crowston,et al.  Coordination practices within FLOSS development teams: The bug fixing process , 2004, Computer Supported Acitivity Coordination.

[26]  Gerardo Canfora,et al.  Supporting change request assignment in open source development , 2006, SAC.

[27]  Gail C. Murphy,et al.  Who should fix this bug? , 2006, ICSE.

[28]  Silvio Romero de Lemos Meira,et al.  Challenges and opportunities for software change request repositories: a systematic mapping study , 2014, J. Softw. Evol. Process..

[29]  Bora Caglayan,et al.  Issue ownership activity in two large software projects , 2012, SOEN.

[30]  Qing Wang,et al.  An empirical study on bug assignment automation using Chinese bug data , 2009, ESEM 2009.

[31]  He Jiang,et al.  Towards Training Set Reduction for Bug Triage , 2011, 2011 IEEE 35th Annual Computer Software and Applications Conference.

[32]  Peter Jackson,et al.  Introduction to expert systems , 1986 .

[33]  Premkumar T. Devanbu,et al.  Fair and balanced?: bias in bug-fix datasets , 2009, ESEC/FSE '09.

[34]  Thomas Zimmermann,et al.  Optimized Assignment of Developers for Fixing Bugs – An Initial Evaluation for Eclipse Projects (Short Paper) , 2009, ESEM 2009.

[35]  Dane Bertram,et al.  Communication, collaboration, and bugs: the social nature of issue tracking in small, collocated teams , 2010, CSCW '10.

[36]  S. Verma,et al.  Predicting expert developers for newly reported bugs using frequent terms similarities of bug attributes , 2012, 2011 Ninth International Conference on ICT and Knowledge Engineering.

[37]  Silvio Romero de Lemos Meira,et al.  Combining rule-based and information retrieval techniques to assign software change requests , 2014, ASE.

[38]  Kalervo Järvelin,et al.  Task complexity affects information seeking and use , 1995 .

[39]  Shenglong Tan,et al.  A Framework of Bug Reporting System Based on Keywords Extraction and Auction Algorithm , 2010, 2010 Fifth Annual ChinaGrid Conference.

[40]  Franz Wotawa,et al.  Automatic Software Bug Triage System (BTS) Based on Latent Semantic Indexing and Support Vector Machine , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[41]  Ken-ichi Matsumoto,et al.  An analysis method for improving a bug modification process in open source software development , 2009, IWPSE-Evol '09.

[42]  Michael W. Godfrey,et al.  A Market-Based Bug Allocation Mechanism Using Predictive Bug Lifetimes , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[43]  Oscar Nierstrasz,et al.  Assigning bug reports using a vocabulary-based expertise model of developers , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[44]  Thomas Zimmermann,et al.  Improving bug triage with bug tossing graphs , 2009, ESEC/FSE '09.

[45]  Gail C. Murphy,et al.  Reducing the effort of bug report triage: Recommenders for development-oriented decisions , 2011, TSEM.