Nester is a free tool for
mutation
testing of your C# source code in order to measure the adequacy of your unit
tests. It involves modification of programs to see if existing tests can distinguish
the original program from the modified program.
Current version of Nester (0.3 Alpha) supports only C# programs for Microsoft Visual
Studio 2005. At the moment only
NUnit framework is supported.
On this screenshot you can see how main screen of Nester looks like after analysis.
Project view shows your project structure with folders and files. Selected
file is shown in the
Source code view.
Green code spots there stand for killed mutations (where effective unit tests
were able to recognize modification).
Red
code spots represent survived mutations, where Nester successfully
find such source code modification, that was formally covered, but not detected by unit tests.
Blue code spots represent pieces,
that was not covered by unit tests.
Details for the selected mutations can be viewed in
Mutations Information
area. The
results can be saved to file for further
processing.
The underlying mechanisms are the following. Latest version of Nester featured XML-based
C# grammar and the corresponding parser. This allows
to specify
transformation rules based on grammar
tokens, rather than regular expressions, which was used in the previous versions.
For example, the following piece of code:
if (isZero)
will be replaced to
if (Nester.CodeInterface.InstrumentationCall.IfCondition(IsZero, 42))
Where IfCondition() will be invoked, Nester decide whenever it should return the correct value,
as was passed to the input, or modify it according to the mutation rules. This
dynamic
style of mutations is a major advantage of current version against previous and allows to analyze
mutations much faster.
Here you can see full list of changes.
Please remember this is still alpha, so there are plenty of bugs there. List of known defects is available
here, but if you found something new, please report it via
SourceForge.
I hope these words does not scare you, so
check it out
- Nester is available under
MIT license.