JPF-Doop is dead, long live JDoop!

Posted on November 17, 2015 by Marko Dimjašević

JDoop Source Code Snippet

In my first year of a PhD program, I worked on a software testing technique that combines concolic (or dynamic symbolic) execution and feedback-directed random testing. An implementation followed and it was dubbed JPF-Doop. The name was trying to honor two tools that formed the foundation of JPF-Doop — on one hand, it was Java Pathfinder and to be more precise, it was JDart (back then JPF-JDart) that performs concolic execution, and on the other hand there was Randoop, which performs feedback-directed random testing. The name was a bit clumsy.

Nevertheless, for JPF-Doop my advisor and I got a poster presentation at a conference and an extended abstract at a workshop, which was a good acknowledgment for the technique. Until last week JPF-Doop was collecting dust.

Since JPF-Doop’s incarnation several things changed. Most important, all JPF-Doop dependencies are free software now! Most of the dependencies used to be proprietary: JPF used to be NOSA 1.3-licensed (now is Apache 2.0), I think JDart had no license at all and wasn’t available to the general public (now is Apache 2.0), and Z3 used to be licensed under MSR-LA (now is Expat). Given all of that, I thought it made sense to release JPF-Doop and make it free software too.

We’ve been working on the CAVA project, which includes analyzing code written in Java. Given that JPF-Doop analyzes Java code, we decided to revamp JPF-Doop. As of last week, JPF-Doop is no more, and instead it is known as JDoop. The new name is a bit easier to remember as it follows a convention like many other tools that are written and/or work on Java code, having a name J something. JDoop is finally free software and its 1.1 release is available.

If you have a Java project and you want to automatically generate unit tests that cover a (hopefully) large portion of your code base, feel free to give the tool a try. Let me know how it goes.