Predicting bug inducing source code change patterns

A change in source code without the prior analysis of its impact may generate one or more defects. Fixing of such defects consumes maintenance time which ultimately increases the cost of software maintenance. Therefore, in the recent years, several research works have been done to develop techniques for the automatic impact analysis of changes in source code. In this paper, we propose to use Frequent Pattern Mining (FPM) technique of machine learning for the automatic impact analysis of those changes in source code which may induce bugs. Therefore, to find patterns associated with some specific types of software changes, we applied FPM's algorithms' Apriori and Predictive Apriori on the stored data of software changes of the following three Open-Source Software (OSS) projects: Mozilla, GNOME, and Eclipse. We grouped the data of software changes into two major categories: changes to meet bug fixing requirements and changes to meet requirements other than bug fixing. In the case of bug fixing requirements, we predict source files which are frequently changed together to fix any one of the following four types of bugs related to: memory (MEMORY), variables locking (LOCK), system (SYSTEM) and graphical user interface (UI). Our experimental results predict several interesting software change patterns which may induce bugs. The obtained bug inducing patterns have high confidence and accuracy value i.e., more than 90%.

[1]  Gregg Rothermel,et al.  Whole program path-based dynamic impact analysis , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[2]  Franz Wotawa,et al.  Impact analysis of SCRs using single and multi-label machine learning classification , 2010, ESEM '10.

[3]  Huzefa H. Kagdi,et al.  Impact analysis of change requests on source code based on interaction and commit histories , 2014, MSR 2014.

[4]  Catherine Blake,et al.  UCI Repository of machine learning databases , 1998 .

[5]  Kanwal Garg,et al.  Mining Efficient Association Rules Through Apriori Algorithm Using Attributes and Comparative Analysis of Various Association Rule Algorithms , 2013 .

[6]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[7]  Thomas Zimmermann,et al.  Preprocessing CVS Data for Fine-Grained Analysis , 2004, MSR.

[8]  J LoboL.M.R.,et al.  A Comparative Study of Association Rule Algorithms for Course Recommender System in E-learning , 2012 .

[9]  Andreas Zeller,et al.  Mining version histories to guide software changes , 2005, Proceedings. 26th International Conference on Software Engineering.

[10]  Ayse Tosun Misirli,et al.  Erratum to: Studying high impact fix-inducing changes , 2016, Empirical Software Engineering.

[11]  Durga Toshniwal,et al.  Classification of type-2 diabetic patients by using Apriori and predictive Apriori , 2011, Int. J. Comput. Vis. Robotics.

[12]  Marco Aurélio Gerosa,et al.  A Change Impact Analysis Approach for Workflow Repository Management , 2013, 2013 IEEE 20th International Conference on Web Services.

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

[14]  Samuel Ajila,et al.  Software maintenance: An approach to impact analysis of objects change , 1995, Softw. Pract. Exp..

[15]  Aziz Deraman,et al.  Integrating Software Traceability for Change Impact Analysis , 2005, Int. Arab J. Inf. Technol..

[16]  Hareton K. N. Leung,et al.  A survey of code‐based change impact analysis techniques , 2013, Softw. Test. Verification Reliab..