Carma
What is it ?
Carma is a tool which validates the quality of your product by analyzing your test cases. It clearly identifies gaps in your test cases and reports the conditions which certainly require additional and/or enhanced test cases. It exceeds the power of plain code coverage tools as such tools rely on a technique which does not seriously help in identifying weak test cases. Just imagine a load of test cases without any assertions. The coverage results would signal a excellent coverage but still erroneous behavior in your code cannot be detected at all. Carma uses a more mature technique and cannot be tricked in this way as the tests are not verified their-self, but instead the sensitivity for errors in your product is determined. That makes Carma much more powerful than coverage tools. If you want to know more about the technique used by Carma visit Mutation Testing (Wikipedia) and Fault Injection (Wikipedia).
Current State
Carma is currently in a beta stage with the primary things working. So while users will probably find some issues and quirks we'd like to get some feedback on Carma. Two aspects receive the main focus until a first public release:
- Usability - We try to make Carma in every aspect simple to use. From easy integration into your build up to clean and easily understandable reports
- Extensibility - The software development world is very inhomogenous and therefore we designed Carma to be extensible in any aspect. That means different build tools, test frameworks, configuration types and error classes can be added in the future without big efforts in the inner core of Carma. As a starting point we provide integration hooks for Apache Ant and Apache Maven 2 - two very common build frameworks - and support for the mainstream test suite JUnit (version 3)
Try it yourself
In case we could find your interest and you want to try out Carma yourself just go to the download page and get the latest bundle. Preliminary documentation for Carma can be found on the menu bar above. The manual is still under heavy development but should give you already a more detailed explanation on what Carma does exactly. The Carma Ant Tutorial based on Apache Commons Codec and Carma Maven 2 Tutorial are nice introductions on how to get started with Carma on your own project.

