首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#中的变异测试工具

C#中的变异测试工具
EN

Stack Overflow用户
提问于 2016-09-14 10:50:06
回答 1查看 5.1K关注 0票数 6

我正在c#中开始一个新的项目,我正在寻找一个工具来帮助我进行突变测试。我以前用最可怜在java中做过变异测试,并且非常喜欢它。现在,我正在为C#寻找这样一个工具,我能找到的唯一工具要么是在过去几年没有更新,要么仍然处于alpha/beta版本( 乳膏ninjaTurtles内斯特)。

是否有任何工具是可靠的,并可与2010年后推出的工具一起使用?

编辑:有些人可能会说这个问题是存在哪些突变测试框架?[封闭]的翻版。只有这个问题目前已有8年历史,讨论过的大多数工具都无法使用,因为大多数工具在过去6-8年中都没有更新过。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-14 10:59:35

我成功地使用了以下Visual 2013扩展: VisualMutator.Net。这是因为其他的变异工具需要Visual 2005到位,或者其他过时的软件/框架/等等。

这里有更多信息:http://visualmutator.github.io/web/

基本上,您将得到如下所示的UI:

TestingExample.Tests将发生突变。您可能已经有了项目结构的Project & Project.Tests,您可以访问以下变体列表:

ISD (ISK) -超级/基本关键字删除

运算符在属于继承方法的重载方法中删除对基类方法的调用。

DMC -委托方法更改

运算符将处理委托的方法更改为另一种具有类似签名的方法。

委托用于事件处理更改的方法

运算符更改从错误处理中添加或删除方法的调用。EAM,

访问器、修饰符方法更改

运算符将对类属性的调用更改为对同一类型的另一个属性的调用。EHR -

异常处理程序删除

运算符删除catch块,如果存在另一个catch或最后一个catch。

EHC -异常处理更改

运算符将catch块的主体更改为抛出捕获异常。

EXS -异常吞咽

运算符添加空块捕获(异常e),以便任何异常都不能离开当前方法。

JTI,JTD -此关键字插入、删除

运算符添加或删除此关键字(如果存在同名局部变量)。

成员变量初始化删除(字段初始化删除)操作符删除

用适当的值初始化类的字段。

来自另一个继承类的MCI成员调用

运算符将对对象的方法调用更改为对另一个对象调用相同的方法。

PRV -其他兼容类型的参考分配

运算符将将特定对象分配给引用更改为分配另一个兼容对象。

标准操作员:

算术算子替换

运算符将算术运算(+、-、*、/、%)更改为该组中的另一个操作。

逻辑算子替换

运算符将逻辑操作(&、AC.26、ˆ)更改为该组中的另一个操作。

逻辑连接器替换

运算符将逻辑表达式中的连接器(,区)更改为另一个连接器。

ROR -关系算子替换

运算符将每个关系运算符(>,<,<=,>=,==,!=)更改为来自同一组的另一个关系运算符。

Shift算子替换

运算符将逻辑移位(,)改为相反的。

OODL -操作符删除

运算符从每个操作中创建两个变体,如+、-、>、<=、%等。

左边的是什么,另一边是移除操作,右边的是什么(例如从y=a+b;会有以下的变种人: y=a;和y=b;)

SSDL -语句块删除

运算符移除语句和赋值,但不删除声明(例如,从int y=15中删除;将有以下突变体: int;)。

结果如下:

突变评分

未杀死突变体

杀灭突变体

通过以下测试

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39488572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档