Link Details

Link 877065 thumbnail
User 1010147 avatar

By Michael_MULLER
Published: Nov 12 2012 / 16:13

Software testing aims at checking the correctness of a program. But how can you check the correctness of your tests? Quis custodiet ipsos custodes? Mutation analysis can help you evaluate the quality of a test suite.
  • 21
  • 0
  • 1368
  • 1572
User 771987 avatar

Steve Mcduff replied ago:

0 votes Vote down Vote up Reply

Looks oddly similar to Jester

User 461284 avatar

hjc replied ago:

1 votes Vote down Vote up Reply
User 1082197 avatar

alightgoesout replied ago:

0 votes Vote down Vote up Reply

As mentioned by Steve Mcduff, Jester is indeed another mutation testing tool for Java. PIT offers several improvements. For instance, PIT does in-memory bytecode mutation. This is more efficient than Jester, which mutates the java source and actually writes it to disk before executing it. Also PIT is still supported and developed whereas Jester has not been actively developed for years. As pointed by hjc, the PIT website hosts a detailed comparison with other mutation testing frameworks.

User 771987 avatar

Steve Mcduff replied ago:

0 votes Vote down Vote up Reply

Great, good to know. The best use I found for Jester (and now potentially PIT) was to run unit test education sessions. Ask participants to create unit tests for a class, and then show them how good or bad their tests are with a few mutations. It's a struggle to encourage good basic unit test practices in most organizations. I feel levels usually go from 0 - no UT 1 - basic UT 2 - good UT using code coverage to find gaps 3 - use mutation testing #3 is probably a bit to costly to implement consistently on large projects, but if someone can prove me wrong, I'm very interested in learning how.

Add your comment

Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.

Apache Hadoop
Written by: Piotr Krewski
Featured Refcardz: Top Refcardz:
  1. Play
  2. Akka
  3. Design Patterns
  4. OO JS
  5. Cont. Delivery
  1. Play
  2. Java Performance
  3. Akka
  4. REST
  5. Java