我成功使用了以下 Visual Studio 2013 扩展:VisualMutator.Net。那是因为其他变异工具需要 Visual Studio 2005 或其他超级过时的软件/框架/等等。
更多信息:http: //visualmutator.github.io/web/
你基本上会得到一个像下面这样的用户界面:

TestingExample.Tests
会变异。可能您已经构建了项目结构Project & Project.Tests
您可以访问以下变体列表:
ISD (ISK) – 超级/基本关键字删除
运算符删除属于继承方法的重载方法中对基类方法的调用。
DMC – 委托方法变更
操作员将处理委托的方法更改为具有类似签名的另一种方法。
DEH – 为事件处理变更委派的方法
操作员更改调用,从错误处理中添加或删除方法。外联,
EMM – 访问器,修改器方法更改
运算符将对类属性的调用更改为对同一类型的另一个属性的调用。电子病历 -
异常处理程序删除
如果存在另一个 catch 或 finally,操作员将删除 catch 块。
EHC – 异常处理变更
运算符将 catch 块的主体更改为抛出捕获的异常。
EXS——异常吞咽
运算符添加空块 catch(Exception e) 以便没有异常可以离开当前方法。
JTI, JTD – 这个关键字插入、删除
如果存在同名的局部变量,则运算符添加或删除此关键字。
JID——成员变量初始化删除(Field Initialization Deletion)操作符删除
用适当的值初始化类的字段。
MCI – 来自另一个继承类的成员调用
运算符将对对象的方法的调用更改为在另一个对象上调用相同的方法。
PRV - 与其他兼容类型的参考分配
运算符将分配某个对象到引用更改为分配另一个兼容对象。
标准运算符:
AOR – 算术运算符替换
运算符将算术运算(+、-、*、/、%)更改为该组中的另一个。
LOR – 逻辑运算符替换
运算符将逻辑运算(&、|、^)更改为该组中的另一个。
LCR – 逻辑连接器更换
运算符将逻辑表达式中的连接符 (,||) 更改为另一个。
ROR – 关系运算符替换
运算符将每个关系运算符(>、<、<=、>=、==、!=)更改为同一组中的另一个。
SOR – 移位运算符替换
运算符将逻辑移位 (», «) 更改为相反的移位。
OODL – 运算符删除
运算符从每个操作中创建两个突变体,例如 +、-、>、<=、% 等。在一个中它删除操作
左边是什么,另一个是删除操作,右边是什么(例如,从 y=a+b;将有以下突变体:y=a;和 y=b;)。
SSDL – 语句块删除
运算符删除语句和赋值,但不删除声明(例如从 int y=15;将有以下突变体:int y;)。
结果如下所示:
突变评分

未杀变种人

杀死变种人

通过以下测试
