Randoop logo

Randoop

Automatic unit test generation for Java

View the Project on GitHub randoop/randoop


What is Randoop?

Randoop is a unit test generator for Java. It automatically creates unit tests for your classes, in JUnit format.

The Randoop manual tells you how to install and run Randoop.

How does Randoop work?

Randoop generates unit tests using feedback-directed random test generation. This technique pseudo-randomly, but smartly, generates sequences of method/constructor invocations for the classes under test. Randoop executes the sequences it creates, using the results of the execution to create assertions that capture the behavior of your program. Randoop creates tests from the code sequences and assertions.

Randoop can be used for two purposes: to find bugs in your program, and to create regression tests to warn you if you change your program's behavior in the future.

Randoop's combination of test generation and test execution results in a highly effective test generation technique. Randoop has revealed previously-unknown errors even in widely-used libraries including Sun's and IBM's JDKs and a core .NET component. Randoop continues to be used in industry, for example at ABB corporation.


Documentation

Randoop user manual

For Randoop developers/contributors:

Scientific papers about Randoop


.NET version of Randoop

A version of Randoop that works with Microsoft's .NET platform is available at https://github.com/abb-iss/Randoop.NET. Randoop.NET is a from-scratch re-implementation of feedback-directed test generation. The link above is to ABB Corporation's updated version of Randoop.NET. Compared to the original version of Randoop.NET from Microsoft Research: