Nester is a free tool for mutation
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
On this screenshot you can see how main screen of Nester looks like after analysis.
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
represent survived mutations, where Nester successfully
find such source code modification, that was formally covered, but not detected by unit tests.
Blue code spots
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
The underlying mechanisms are the following. Latest version of Nester featured XML-based
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:
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
, but if you found something new, please report it via
I hope these words does not scare you, so check it out
- Nester is available under MIT license