Do API-Migration Changes Introduce New Bugs?
Year 2021,
Volume: 16 , 182 - 190, 31.12.2021
Omar Meqdadı
Shadi Aljawarneh
Muneer Banı Yasseın
Abstract
Software quality is broadly dependent on the use of dependent platforms, compilers, and APIs. This research reports a case study exploring the risk of API-migration activities in the regard of bug-introducing changes and software maintenance quality. The study involves screening tens of thousands of commits for six large C++ open source systems to identify bug-introducing commits caused by undertaking adaptive maintenance tasks through using traditional heuristic approaches. The obtained results show that 14.5% to 22.2% of examined adaptive commits enclose buggy code changes and so developers have to consider the potential risk of introducing new bugs after undertaking API-migration practices. Moreover, from investigating the bug fixing activities made by API-migration tasks, we provide a demonstration that typically these fixing activities do not cause further bugs and hence are safe undertakings. We feel that this work has developed a data set that will be used for constructing approaches to identify, characterize, and minimize potential adaptive maintenance practices that introduce bugs into a software system.
References
-
Alali, A., Kagdi, H., & Maletic, J. I. (2008, June). What's a typical commit? a characterization of open source software repositories. In 2008 16th IEEE international conference on program comprehension (pp. 182-191). IEEE.
-
Bird, C., Bachmann, A., Aune, E., Duffy, J., Bernstein, A., Filkov, V., & Devanbu, P. (2009, August). Fair and balanced? bias in bug-fix datasets. In Proceedings of the 7th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (pp. 121-130).
-
Eyolfson, J., Tan, L., & Lam, P. (2011, May). Do time of day and developer experience affect commit bugginess?. In Proceedings of the 8th Working Conference on Mining Software Repositories (pp. 153-162).
-
Fischer, M., Pinzger, M., & Gall, H. (2003, September). Populating a release history database from version control and bug tracking systems. In International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. (pp. 23-32). IEEE.
-
Hassan, A. E., & Holt, R. C. (2005, September). The top ten list: Dynamic fault prediction. In 21st IEEE International Conference on Software Maintenance (ICSM'05) (pp. 263-272). IEEE.
-
Kim, M., Cai, D., & Kim, S. (2011, May). An empirical investigation into the role of API-level refactorings during software evolution. In Proceedings of the 33rd International Conference on Software Engineering (pp. 151-160).
-
Kim, S., Whitehead, E. J., & Zhang, Y. (2008). Classifying software changes: clean or buggy?. IEEE Transactions on Software Engineering, 34(2), 181-196.
-
Kim, S., Zimmermann, T., Pan, K., & James Jr, E. (2006, September). Automatic identification of bug-introducing changes. In 21st IEEE/ACM international conference on automated software engineering (ASE'06) (pp. 81-90). IEEE.
-
Linares-Vásquez, M., Bavota, G., Bernal-Cárdenas, C., Di Penta, M., Oliveto, R., & Poshyvanyk, D. (2013, August). Api change and fault proneness: A threat to the success of android apps. In Proceedings Of The 2013 9th Joint Meeting On Foundations of Software Engineering (pp. 477-487).
-
Meqdadi, O., & Aljawarneh, S. (2020). A study of code change patterns for adaptive maintenance with AST analysis. International Journal of Electrical and Computer Engineering, 10(3), 2719-2733.
-
Meqdadi, O., & Aljawarneh, S. (2019, December). Bug types fixed by api-migration: a case study. In Proceedings of the Second International Conference on Data Science, E-Learning and Information Systems (pp. 1-7).
-
Meqdadi, O., Alhindawi, N., Alsakran, J., Saifan, A., & Migdadi, H. (2019). Mining software repositories for adaptive change commits using machine learning techniques. Information and Software Technology, 109, 80-91.
-
Meqdadi, O., Alhindawi, N., Maletic, J.I., and Collard, M.L. (2013). Understanding large-scale adaptive changes from version histories: a case study. In Proceedings of the 29th IEEE International Conference on Software Maintenance, ERA Track, (pp. 22-28).
-
Mileva, Y. M., Dallmeier, V., Burger, M., & Zeller, A. (2009, August). Mining trends of library usage. In Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops (pp. 57-62).
-
Posnett, D., D'Souza, R., Devanbu, P., & Filkov, V. (2013, May). Dual ecological measures of focus in software development. In 2013 35th International Conference on Software Engineering (ICSE) (pp. 452-461). IEEE.
-
Posnett, D., Hindle, A., & Devanbu, P. (2011, October). Got issues? do new features and code improvements affect defects?. In 2011 18th Working Conference on Reverse Engineering (pp. 211-215). IEEE.
-
Rahman, F., & Devanbu, P. (2011, May). Ownership, experience and defects: a fine-grained study of authorship. In Proceedings of the 33rd International Conference on Software Engineering (pp. 491-500).
-
Schach, S. R., Jin, B. O., Yu, L., Heller, G. Z., & Offutt, J. (2003). Determining the distribution of maintenance categories: Survey versus measurement. Empirical Software Engineering, 8(4), 351-365.
-
Śliwerski, J., Zimmermann, T., & Zeller, A. (2005). When do changes induce fixes?. ACM sigsoft software engineering notes, 30(4), 1-5.
-
Swanson, E. B. (1976, October). The dimensions of maintenance. In Proceedings of the 2nd international conference on Software engineering (pp. 492-497).
-
Tufano, M., Bavota, G., Poshyvanyk, D., Di Penta, M., Oliveto, R., & De Lucia, A. (2017). An empirical study on developer‐related factors characterizing fix‐inducing commits. Journal of Software: Evolution and Process, 29(1), e1797.
-
Zibran, M. F., Eishita, F. Z., & Roy, C. K. (2011, October). Useful, but usable? factors affecting the usability of APIs. In 2011 18th Working Conference on Reverse Engineering (pp. 151-155). IEEE.
Year 2021,
Volume: 16 , 182 - 190, 31.12.2021
Omar Meqdadı
Shadi Aljawarneh
Muneer Banı Yasseın
References
-
Alali, A., Kagdi, H., & Maletic, J. I. (2008, June). What's a typical commit? a characterization of open source software repositories. In 2008 16th IEEE international conference on program comprehension (pp. 182-191). IEEE.
-
Bird, C., Bachmann, A., Aune, E., Duffy, J., Bernstein, A., Filkov, V., & Devanbu, P. (2009, August). Fair and balanced? bias in bug-fix datasets. In Proceedings of the 7th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (pp. 121-130).
-
Eyolfson, J., Tan, L., & Lam, P. (2011, May). Do time of day and developer experience affect commit bugginess?. In Proceedings of the 8th Working Conference on Mining Software Repositories (pp. 153-162).
-
Fischer, M., Pinzger, M., & Gall, H. (2003, September). Populating a release history database from version control and bug tracking systems. In International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. (pp. 23-32). IEEE.
-
Hassan, A. E., & Holt, R. C. (2005, September). The top ten list: Dynamic fault prediction. In 21st IEEE International Conference on Software Maintenance (ICSM'05) (pp. 263-272). IEEE.
-
Kim, M., Cai, D., & Kim, S. (2011, May). An empirical investigation into the role of API-level refactorings during software evolution. In Proceedings of the 33rd International Conference on Software Engineering (pp. 151-160).
-
Kim, S., Whitehead, E. J., & Zhang, Y. (2008). Classifying software changes: clean or buggy?. IEEE Transactions on Software Engineering, 34(2), 181-196.
-
Kim, S., Zimmermann, T., Pan, K., & James Jr, E. (2006, September). Automatic identification of bug-introducing changes. In 21st IEEE/ACM international conference on automated software engineering (ASE'06) (pp. 81-90). IEEE.
-
Linares-Vásquez, M., Bavota, G., Bernal-Cárdenas, C., Di Penta, M., Oliveto, R., & Poshyvanyk, D. (2013, August). Api change and fault proneness: A threat to the success of android apps. In Proceedings Of The 2013 9th Joint Meeting On Foundations of Software Engineering (pp. 477-487).
-
Meqdadi, O., & Aljawarneh, S. (2020). A study of code change patterns for adaptive maintenance with AST analysis. International Journal of Electrical and Computer Engineering, 10(3), 2719-2733.
-
Meqdadi, O., & Aljawarneh, S. (2019, December). Bug types fixed by api-migration: a case study. In Proceedings of the Second International Conference on Data Science, E-Learning and Information Systems (pp. 1-7).
-
Meqdadi, O., Alhindawi, N., Alsakran, J., Saifan, A., & Migdadi, H. (2019). Mining software repositories for adaptive change commits using machine learning techniques. Information and Software Technology, 109, 80-91.
-
Meqdadi, O., Alhindawi, N., Maletic, J.I., and Collard, M.L. (2013). Understanding large-scale adaptive changes from version histories: a case study. In Proceedings of the 29th IEEE International Conference on Software Maintenance, ERA Track, (pp. 22-28).
-
Mileva, Y. M., Dallmeier, V., Burger, M., & Zeller, A. (2009, August). Mining trends of library usage. In Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops (pp. 57-62).
-
Posnett, D., D'Souza, R., Devanbu, P., & Filkov, V. (2013, May). Dual ecological measures of focus in software development. In 2013 35th International Conference on Software Engineering (ICSE) (pp. 452-461). IEEE.
-
Posnett, D., Hindle, A., & Devanbu, P. (2011, October). Got issues? do new features and code improvements affect defects?. In 2011 18th Working Conference on Reverse Engineering (pp. 211-215). IEEE.
-
Rahman, F., & Devanbu, P. (2011, May). Ownership, experience and defects: a fine-grained study of authorship. In Proceedings of the 33rd International Conference on Software Engineering (pp. 491-500).
-
Schach, S. R., Jin, B. O., Yu, L., Heller, G. Z., & Offutt, J. (2003). Determining the distribution of maintenance categories: Survey versus measurement. Empirical Software Engineering, 8(4), 351-365.
-
Śliwerski, J., Zimmermann, T., & Zeller, A. (2005). When do changes induce fixes?. ACM sigsoft software engineering notes, 30(4), 1-5.
-
Swanson, E. B. (1976, October). The dimensions of maintenance. In Proceedings of the 2nd international conference on Software engineering (pp. 492-497).
-
Tufano, M., Bavota, G., Poshyvanyk, D., Di Penta, M., Oliveto, R., & De Lucia, A. (2017). An empirical study on developer‐related factors characterizing fix‐inducing commits. Journal of Software: Evolution and Process, 29(1), e1797.
-
Zibran, M. F., Eishita, F. Z., & Roy, C. K. (2011, October). Useful, but usable? factors affecting the usability of APIs. In 2011 18th Working Conference on Reverse Engineering (pp. 151-155). IEEE.