Software bugs fixed automatically with AI and Big Data
- Author:Ella Cai
- Release on:2017-10-23
It works on bugs in object-oriented programmes, typically used for business application software development, and reduces average time to diagnose and fix single-fault-location bugs by 28.8%, claims Fujitsu, compared to the conventional heuristic-search-based patch generation – which cannot handle a large number of patch candidates – followed by manual patching.
Researchers worked on the Defects4J benchmark data-set – a collection of bugs from object-oriented, open-source programmes, including Java. “We investigated 20 method-invocation related bugs, with trackable bug repositories, from Defects4J,” said Fujitsu. ”
It found 29 out of the 49 single-fault-location bugs (59.2%) in the Defects4J data-set are method-invocation related bugs, saying that patches for such bugs typically have a have a large number of candidate patches, often several hundred.
“Conventional techniques, such as the heuristic-search-based automated repair tool ACS, essentially do not fix method-invocation related bugs, and can correctly fix only six out of the 29 [20.7%] single-fault-location method-invocation Defects4J bugs, and overall only 14 out of the 49 bugs,” said Fujitsu labs. “By contrast, our technique, fixed method-invocation bugs and generated 15 correct patches out of 29 bugs [51.7%], and overall correctly fixed 26 out of the 49 bugs.”
The automated patch generation AI engine (see diagram) consists of a bug localiser, a patch candidate generator, candidate ranking and test validation.
A logistic regression model is created by learning the relationship between a library of existing buggy source code, their bug reports and the final patches for those bugs.
After this, based on the created model, a ranked list of patch candidates can be generated from: new buggy source code, a bug report and the population of patch candidates.
The highest ranked candidates are then validated by checking if they pass test cases, and the first candidate that passes all test cases is recommended as a potential patch for the bug.
“By focusing on new aspects such as bug reports and the buggy code surrounding the patch, method-invocation related bugs can be effectively supported and the patch generation precision could be improved significantly compared to the conventional techniques,” said the Labs.
Software bugs
Among the 29 method-invocation related bugs, for the 20 bugs that have trackable bug repositories, Fujitsu investigated bug-fixing time – from bug report creation to the bug report closing, and got the 17.1 days average figure.
Conventional technology, which generated 6 correct patches for the 20 bugs, reduced average fix time to 17.0 days.
The AI scheme, which generated 11 correct patches for the 20 bugs, achieved 12.1 days average fix time.
“The difference is because our proposed technology can generate more correct patches than the conventional one can as well as because it can fix time-consuming bugs,” said Fujitsu, which is further developing the technique, refining use-cases, identifying target markets and conducting field trials – with a view to releasing a service-based product in financial year 2018.
Researchers worked on the Defects4J benchmark data-set – a collection of bugs from object-oriented, open-source programmes, including Java. “We investigated 20 method-invocation related bugs, with trackable bug repositories, from Defects4J,” said Fujitsu. ”
It found 29 out of the 49 single-fault-location bugs (59.2%) in the Defects4J data-set are method-invocation related bugs, saying that patches for such bugs typically have a have a large number of candidate patches, often several hundred.
“Conventional techniques, such as the heuristic-search-based automated repair tool ACS, essentially do not fix method-invocation related bugs, and can correctly fix only six out of the 29 [20.7%] single-fault-location method-invocation Defects4J bugs, and overall only 14 out of the 49 bugs,” said Fujitsu labs. “By contrast, our technique, fixed method-invocation bugs and generated 15 correct patches out of 29 bugs [51.7%], and overall correctly fixed 26 out of the 49 bugs.”
The automated patch generation AI engine (see diagram) consists of a bug localiser, a patch candidate generator, candidate ranking and test validation.
A logistic regression model is created by learning the relationship between a library of existing buggy source code, their bug reports and the final patches for those bugs.
After this, based on the created model, a ranked list of patch candidates can be generated from: new buggy source code, a bug report and the population of patch candidates.
The highest ranked candidates are then validated by checking if they pass test cases, and the first candidate that passes all test cases is recommended as a potential patch for the bug.
“By focusing on new aspects such as bug reports and the buggy code surrounding the patch, method-invocation related bugs can be effectively supported and the patch generation precision could be improved significantly compared to the conventional techniques,” said the Labs.
Software bugs
Among the 29 method-invocation related bugs, for the 20 bugs that have trackable bug repositories, Fujitsu investigated bug-fixing time – from bug report creation to the bug report closing, and got the 17.1 days average figure.
Conventional technology, which generated 6 correct patches for the 20 bugs, reduced average fix time to 17.0 days.
The AI scheme, which generated 11 correct patches for the 20 bugs, achieved 12.1 days average fix time.
“The difference is because our proposed technology can generate more correct patches than the conventional one can as well as because it can fix time-consuming bugs,” said Fujitsu, which is further developing the technique, refining use-cases, identifying target markets and conducting field trials – with a view to releasing a service-based product in financial year 2018.