Tracking Down Software Bugs, Automatically!

Home » Blog » Software » Enterprise Software » Tracking Down Software Bugs, Automatically!

Last week MIT researchers published an article about an automatic bug-repair system called Prophet. Prophet is a machine-learning system that learns general properties and patterns of successful error corrections in software and applies those patterns to making new error corrections in other programs.

While the possibility of having software track down and fix bugs automatically (which effectively would mean creating self-correcting computer programs) is exciting enough in its own right, Prophet possibly has far-reaching implications for verifying the general correctness of code as well. Although mathematically proving that particular computer programs are correct is an established discipline in theoretical computer science, doing so is difficult and costly (further exacerbated by often unclear requirements and unknown or unforeseen constraints), which is why it’s almost never done in practice. MIT professor of electrical engineering and computer science Martin Rinard, who co-authored a paper describing Prophet with MIT graduate student Fan Long, says:

“One of the most intriguing aspects of this research is that we’ve found that there are indeed universal properties of correct code that you can learn from one set of applications and apply to another set of applications.”

Prophet looks very promising and could be groundbreaking for software engineering but it’s still very much a research project. While not quite as sophisticated there are tools that help you find common bugs you can use today. FindBugs™ uses static analysis to look for bugs in Java code. FindBugs™ analyzes your code base and recognizes common patterns that typically lead to software errors and security or performance issues. The tool can be run on the command line but is also available as a plugin for IntelliJ IDEA (and various other IDEs), Maven and continuous integration servers such as Jenkins or Hudson.

One comment
  1. Pingback: Varying Degrees Of Software Quality And What To Do About It | Björn Wilmsmann

Leave a Comment

* Checkbox GDPR is required


I agree

By continuing to browse the site you agree to our use of cookies. Privacy Policy

Privacy Preference Center

Strictly necessary

These cookies are necessary for the site to function.

PHPSESSID: Preserves user session state across page requests.

__cfduid: Used by the content network, Cloudflare, to identify trusted web traffic.



Remembers the user's submitted data when a comment is submitted in a blog post. The purpose is to aut o-populate form fields for subsequent comments, in order to save time for the user.



Statistic cookies help us to understand how visitors interact with our websites by collecting and reporting information anonymously.

_ga: Registers a unique ID that is used to generate statistical data on how the visitor uses the website.

_gat: Used by Google Analytics to throttle request rate.

_gid: Registers a unique ID that is used to generate statistical data on how the visitor uses the website.

collect: Used to send data to Google Analytics about the visitor's device and behaviour. Tracks the visitor across d evices and marketing channels.



We use Wordfence to secure our website against hacking attempts:


Close your account?

Your account will be closed and all data will be permanently deleted and cannot be recovered. Are you sure?