Python source code Analysis for Bug Detection using Transformers
Downloads
Effective bug detection is pivotal in software development, with the identification and localization of defects being crucial for robust applications. In Python-based programs, the conventional bug detection process relies on a Python interpreter, causing workflow interruptions due to sequential error detection. As Python's adoption surges, the demand for efficient bug detection tools intensifies. This paper addresses the challenges associated with bug detection in Python, focusing on the prevalence of built-in type bugs that can lead to code crashes.
Building on recent advancements, this survey explores bug detection methodologies across programming languages, emphasizing Python, JavaScript, and C. The diverse array of techniques covered includes static and dynamic analyses, machine learning-based bug detection, and predictive analysis engines(specifically deep-learning based). The survey provides insights into bug detection in Python programs, offering perspectives on addressing built-in type bugs and optimizing tools within the language's constraints.
Y. Teshima and Y. Watanobe, “Bug detection based on lstm networks and solution codes,” in 2018 IEEE International Conference on Systems,Man, and Cybernetics (SMC), pp. 3541–3546, 2018.
A. Kaur, K. Kaur, and D. Chopra, “Entropy based bug prediction using neural network based regression,” in International Conference on Computing, Communication Automation, pp. 168–174, 2015.
S. Wang, D. Chollak, D. Movshovitz-Attias, and L. Tan, “Bugram:Bug detection with n-gram language models,” in 2016 31st IEEE/ACM
International Conference on Automated Software Engineering (ASE),pp. 708–719, 2016.
Z. Xu, P. Liu, X. Zhang, and B. Xu, “Python predictive analysis for bug detection,” in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, (NewYork, NY, USA), p. 121–132, Association for Computing Machinery,2016.
P. Gyimesi, B. Vancsics, A. Stocco, D. Mazinanian, Beszedes, R. Fer- ´enc, and A. Mesbah, “Bugsjs: a benchmark of javascript bugs,” in 2019 12th IEEE Conference on Software Testing, Validation and Verification
(ICST), pp. 90–101, 2019.
C. Le Goues, N. Holtschulte, E. K. Smith, Y. Brun, P. Devanbu,S. Forrest, and W. Weimer, “The manybugs and introclass benchmarks
for automated repair of c programs,” IEEE Transactions on Software Engineering, vol. 41, no. 12, pp. 1236–1256, 2015.
X. Zhang, R. Yan, J. Yan, B. Cui, J. Yan, and J. Zhang, “Excepy:A python benchmark for bugs with python built-in types,” in 2022
IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 856–866, 2022.
T. Chappelly, C. Cifuentes, P. Krishnan, and S. Gevay, “Machine learning for finding bugs: An initial report,” in 2017 IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE),
pp. 21–26, 2017.
Q. Hanam, F. S. d. M. Brito, and A. Mesbah, “Discovering bug patterns in javascript,” in Proceedings of the 2016 24th ACM SIGSOFT
International Symposium on Foundations of Software Engineering, FSE 2016, (New York, NY, USA), p. 144–156, Association for Computing
Machinery, 2016.
D. Chen, B. Li, C. Zhou, and X. Zhu, “Automatically identifying bug entities and relations for bug analysis,” in 2019 IEEE 1st International Workshop on Intelligent Bug Fixing (IBF), pp. 39–43, 2019.
Z. Ni, B. Li, X. Sun, T. Chen, B. Tang, and X. Shi, “Analyzing bug fix for automatic bug cause classification,” Journal of Systems and Software, vol. 163, p. 110538, 2020.
M. Pradel and K. Sen, “Deepbugs: A learning approach to name-based bug detection,” Proc. ACM Program. Lang., vol. 2, oct 2018.
X. Huo, M. Li, and Z.-H. Zhou, “Learning unified features from natural and programming languages for locating buggy source code,”
in Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence, IJCAI’16, p. 1606–1612, AAAI Press, 2016.
X. Huo and M. Li, “Enhancing the unified features to locate buggy files by exploiting the sequential nature of source code,” in Proceedings of the 26th International Joint Conference on Artificial Intelligence, IJCAI’17,
p. 1909–1915, AAAI Press, 2017.
E. Dinella, H. Dai, Z. Li, M. Naik, L. Song, and K. Wang, “Hoppity: Learning graph transformations to detect and fix bugs in programs,” in International Conference on Learning Representations, 2020.