In 2005, an IBM Fellow estimated that all the software developers in the world collectively wrote over 100 billion lines of source code each year. These lines of code can contain bugs – vulnerabilities that can cause software to fail, or that can be exploited by malicious hackers.
That’s an insurmountable amount of code to check for bugs, and it’s exactly why the National Science Foundation has awarded a $1.2 million grant to researchers at Carnegie Mellon University, UC-Berkeley, and UC-Santa Barbara to develop automated bug-detection and repair techniques that work at large scales.
We don’t want too much human involvement, because that’s very expensive.Corina Pasareanu, Associate Research Professor, CyLab
“We don’t want too much human involvement, because that’s very expensive,” says CyLab associate research professor Corina Pasareanu. “We want to better integrate the machine and the human. We think algorithms are good at repetitive work, like systematically exploring many computations, but humans have ingenuity that can help guide that analysis.”
The grant, titled, “HUGS: Human-Guided Software Testing and Analysis for Scalable Bug Detection and Repair,” aims to develop techniques that can be applied to software testing products that would benefit both industry and government organizations.
“The idea of this project is to design analysis tools with human intervention in mind,” says Pasareanu. “The analysis will run autonomously, but is self-monitored. When it detects that it’s stuck, the human can step in and provide feedback.”
When the tool breaks, Pasareanu says, it shouldn’t just give output that says, “OUT OF MEMORY;” it should give detailed information about which part of the program broke that will allow the human to quickly and efficiently intervene. While some similar tools exist today, Pasareanu says the feedback they provide are often “incomprehensible.”
The idea is to have a cooperation between the code writers and industry at-large.Corina Pasareanu, Associate Research Professor, CyLab
The techniques developed under this grant will be integrated into open-sourced tools that can be applied to several programming languages.
“The idea is to have a cooperation between the code writers and industry at-large,” says Pasareanu.
Other researchers on the grant include UC-Santa Barbara professor Tevfik Bultan and UC-Berkeley professor Koushik Sen.