zir*_*aak 3 c# mutation-testing visual-studio-extensions
我正在c#中开始一个新项目,我正在寻找一种可以帮助我进行突变测试的工具.我以前在使用pitest的 java中进行了突变测试并非常喜欢它.现在我正在为C#寻找这样一个工具,我能找到的唯一工具要么在过去几年没有更新,要么仍然在alpha/beta(cream,ninjaTurtles,Nester).
是否有任何可靠的工具可以与2010年之后出现的工具一起使用?
编辑:有人可能会说这个问题与存在哪些突变测试框架是重复的?[关闭].只有那个问题目前已经有8年的历史了,所讨论的大部分工具都无法使用,因为大多数工具在过去的6到8年里都没有更新过.
我成功使用了以下Visual Studio 2013扩展:VisualMutator.Net.那是因为其他突变工具需要Visual Studio 2005或其他超级过时的软件/框架/等等.
更多这里:http://visualmutator.github.io/web/
您将基本上获得如下所示的UI:
TestingExample.Tests将会发生变异.您可能已经将项目结构化了Project & Project.Tests
您可以访问以下变体列表:
ISD(ISK) - 超级/基本关键字删除
运算符在属于继承方法的重载方法中删除对基类方法的调用.
DMC - 委派方法更改
运营商将处理委派的方法更改为具有类似签名的另一方法.
DEH - 为事件处理更改委派的方法
操作员更改从错误处理添加或删除方法的调用.EAM,
EMM - 访问器,修改器方法更改
运算符将对类属性的调用更改为调用另一个相同类型的属性.EHR -
异常处理程序删除
如果存在另一个catch或最后,运算符将删除catch块.
EHC - 异常处理变更
运算符将catch块的主体更改为抛出捕获的异常.
EXS - 吞咽异常
运算符添加空块捕获(异常e),以便没有异常可以保留当前方法.
JTI,JTD - 此关键字插入,删除
如果存在具有相同名称的局部变量,则运算符添加或删除此关键字.
JID - 成员变量初始化删除(字段初始化删除)运算符删除
用适当的值初始化类的字段.
MCI - 来自另一个继承类的成员调用
运算符将对方法的调用更改为在另一个对象上调用相同的方法.
PRV - 具有其他兼容类型的参考分配
操作员更改将某些对象分配给引用以分配另一个兼容对象.
标准运营商:
AOR - 算术运算符替换
操作员将算术运算(+, - ,*,/,%)更改为该组中的另一个.
LOR - 逻辑运算符替换
操作员将逻辑操作(&,|,)更改为该组中的另一个操作.
LCR - 更换逻辑连接器
运算符将逻辑表达式中的连接符(,||)更改为另一个.
ROR - 关系运算符替换
运算符将每个关系运算符(>,<,<=,> =,==,!=)更改为来自同一组的另一个运算符.
SOR - 换档操作员更换
操作员将逻辑移位(»,«)更改为相反的移位.
OODL - 操作员删除
运算符从每个操作创建两个突变体,例如+, - ,>,<=,%等.在一个操作中,它会删除操作
它的左侧是什么,另一个是它移除了操作,右侧是什么(例如从y = a + b;将有以下突变体:y = a;和y = b;).
SSDL - 语句块删除
运算符删除语句和赋值,但不删除声明(例如,从int y = 15;将有以下突变:int y;).
结果如下:
通过以下测试