- EMMA is an open-source toolkit for measuring and reporting Java code coverage. EMMA distinguishes itself from other tools by going after a unique feature combination: support for large-scale enterprise software development while keeping individual developers work fast and iterative. Every developer on your team can now get code coverage for free and they can get it fast!
- There are several commercially available code coverage tools for Java, but they all require a large fee to use. This is a 100% Pure Java implementation of a Code Coverage tool. It uses Jakartas BCEL platform to post-compile class files to add logging statements for tracking coverage.
- Hansel is an extension to JUnit that adds code coverage testing to the testing framework.
Much of the source code is taken from Gretel a Residual Test Coverage Monitoring-Tool developed at the University of Oregon
which stands for Instrumentation Execution Coverage Tool, is a system developed in Java to obtain coverage information for Java programs. InsECT instruments (inserts instructions into) Java class files at the bytecode level with probes to report information about a system at runtime. The goal of InsECT is to provide detailed coverage information about Java programs by taking into full account the object-oriented behavior and language features of Java. Furthermore, as an open-source project, InsECT is designed to be extensible for use in a wide variety of dynamic analyses. InsECT utilizes the Byte Code Engineering Library.
- jcoverage/gpl is a free code-coverage tool for Java™ programmers that allows them to measure the effectiveness of their Java tests and how much of a software programs code has been tested.
jcoverage/gpl identifies how many times each line of code in your application has been executed and you can see which parts of your software remain untested. After instrumenting your code and running your tests, a report is generated allowing you to view information coverage figures from a project level right down to the individual line of code. This process is called code coverage.
jcoverage works by modifying your Java™ classes at the bytecode level. It also works against code that you do not have the source code for, as well as code that has itself been modified at byte-code level, for example, JDO data classes and aspect-derived code - something no other industry tool offers.
- Jester finds code that is not covered by tests. Jester makes some change to your code, runs your tests, and if the tests pass Jester displays a message saying what it changed. Jester includes a script for generating web pages that show the changes made that did not cause the tests to fail.
Jester is different than code coverage tools, because it can find code that is executed by the running of tests but not actually tested. Jesters approach is called mutation testing. However, Jester is not meant as a replacement for code coverage tools, merely as a complementary approach.
Jester is for Java code and JUnit tests (download the latest version of Jester).
JVMDI Code Coverage Analyser
- This small utility is a shared library which when loaded into a Java VM (1.4+) which supports JVMDI will record all the lines of code executed. This is a relatively coarse coverage method, but good enough for a lot of purposes.
It is intended to be used during the test cycle to identify methods which have not been adequately tested.
- NoUnit allows you to see how good your JUnit tests are. It generates a report from your code to graphically show you how many of your projects methods are being tested , and how well.
NoUnit Generates the report in two steps. First , it reads the Java (byte) code and generates XML from it. Then it transforms this XML into the HTML (Code Picture) report of your choice , either using XSLT or Java - JDOM
- Quilt is a Java software development tool that measures coverage , the extent to which unit testing exercises the software under test. It is optimized for use with the JUnit unit test package, the Ant Java build facility, and the Maven project management toolkit.
Quilt is currently undergoing a major transformation. The first release of the new version, 0.6a, became available on 31 August 2003. This is now forking off as a separate project while development of the 0.4/0.5 branch will continue at Codehaus.