Menu

Home

Danny Katzel

Transmorgify is a Java Mutation Testing library that dynamically modifies byte code during class loading.

What is Mutation Testing?

Mutation Testing makes small changes to the software under test's code and then runs the software under test's test suite. Since the software has been modified, there should be at least one test that now fails. If all of the tests still pass, then the software is not well tested.

How is Transmorgify Different than other Mutation Testers?

When Transmorgify was written, there were few non-commercial mutation test libraries available. The few programs that were available had problems:

Jester makes mutations on the actual source code. This is very slow since after each mutation, the source has to be recompiled. In addition, if the program crashes or the user kills the mutation program before it completes, the sourcecode is left in a broken state. Jester recommends that users mutation test a copy of their source for that reason. Also since the source is required, Jester is unable to run on java code that the source is not available or not compilable.

Jumble is able to mutate byte code like Transmorgify does. However Jumble uses the BCEL library to read, mutate and write java byte code. Transmorgify uses the ASM library to modify byte code which is faster than BCEL. Jumble will only find and run a test classes that follow specific naming conventions. Transmorgify runs the entire test suite every time.


Project Admins:


MongoDB Logo MongoDB