Software Bug Prediction Using Static Analysis with Abstract Syntax Trees
Hisham Abdullah Bin Ateya 1, Saeed Mohammed Baneamoon 2, 3
Journal Title:International Journal of Engineering and Artificial Intelligence
Predicting software bugs in the early stage of the software development life cycle had some challenges, such as generating test data that had been used into the test, and exploring the method paths. This paper aims to explore the importance of using and applying abstract syntax trees (AST) with static program analysis in software testing to predict the software bugs that can be found to increase software quality and reduce the time required for discovering the software bugs and money cost by automating the unit tests. To achieve these goals, a new approach proposes to identify the potential bugs in the source code for the method under test by constructing an abstract syntax tree model for the method, then traversing the tree and exploring all paths to find the bugs. Hence, Smart Unit Tests are generated accurately to cover all possible executions paths for the tested method. At the end, the proposed approach uses static analysis, is able to predict all kinds of static bugs and generates the minimal suite of unit tests which are able to cover all the possible execution paths for the tested code. This indicates that the proposed approach achieves good results compared with other techniques regarding the type of bugs that can be predicted as well as the number of generated unit tests that are required to test the code.