BugPicker 1.2


BugPicker is a next-generation, open-source Software Quality Assurance Tool (BSD-2 License) for general-purpose Java based applications. BugPicker applies well-established and also latest research results from the area of static analyses to detect bugs that are not detected by other bug finding tools. Under the hood, it employs techniques from the area of abstract interpretation to perform (more) complex data-flow analyses.

BugPicker is used to identify issues in the OpenJDK 8 and here is what one of the core developers said regarding one specific issue in the code he is working on:

[...] a clear case of bad code [...] It will get fixed [...]
A core JDK developer; Oct. 2014

Introducing BugPicker

Distinguishing Features

Today, a larger number of open-source tools for software quality assurance for Java programs already exists. These tools can roughly be grouped in two categories:
First, those tools that use relatively shallow static analysis (e.g., FindBugs, CheckStyle, PMD, JDepend) and can therefore only identify style issues or very simple bugs.
Second, tools that aim at proving properties about the software (e.g., Key or ESCJava). Though the latter tools are able to identify very complex bugs, they always require significant effort and understanding on part of those developers who want to use these tools. The space between theses two categories of tools is currently only – and also just partially – filled by very expensive commercial tools. This space will be filled by BugPicker; it will bring advanced software quality assurance to a wide range of projects!

Flaws Identified by BugPicker

In general, BugPicker analyzes the control- and data-flow of applications to identify code issues that affect overall quality of the software. E.g., BugPicker will identify code that (provably) will prevent other code from ever executing or which performs useless computations. Such code is often the result of issues in the source code and has a significant impact on core properties such as correctness, comprehensibility, maintainability, evolvability and reusability. In Java source code, such flaws manifest themselves in the following way: To get a good idea about concrete issues that are identified by BugPicker take a look at the following presentation.
Presentation of Flaws in the JDK 8
To navigate in the presentation click on it or use the cursor keys (after first clicking on it).

Next Steps

  1. Follow the instructions on how to download and install BugPicker.
  2. Follow the tutorial on how to use BugPicker.





Created By

(Names are given in alphabetical order.)
David Becker
Development of the user interface.
Tobias Becker
Development of the user interface.
Michael Eichberg
Development of the analysis; project coordination.
Marco Jacobasch
Development of the unused methods analysis.
Arne Lottmann
Build process engineering; overall quality assurance (automated tests, ui testing); development of the user interface.
Babak Moghimi
Development of the user interface; tool integration.