Conference Paper
BibTex RIS Cite

Do API-Migration Changes Introduce New Bugs?

Year 2021, Volume: 16 , 182 - 190, 31.12.2021
https://doi.org/10.55549/epstem.1068608

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
https://doi.org/10.55549/epstem.1068608

Abstract

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.
There are 22 citations in total.

Details

Primary Language English
Subjects Engineering
Journal Section Articles
Authors

Omar Meqdadı

Shadi Aljawarneh

Muneer Banı Yasseın

Publication Date December 31, 2021
Published in Issue Year 2021Volume: 16

Cite

APA Meqdadı, O., Aljawarneh, S., & Banı Yasseın, M. (2021). Do API-Migration Changes Introduce New Bugs?. The Eurasia Proceedings of Science Technology Engineering and Mathematics, 16, 182-190. https://doi.org/10.55549/epstem.1068608