首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stryker (突变测试框架)如何生成突变体?

Stryker (突变测试框架)如何生成突变体?
EN

Stack Overflow用户
提问于 2019-10-04 00:09:52
回答 2查看 376关注 0票数 3

我正在研究变异测试,并试图将Stryker集成到我的代码库中。我的应用程序是用React,Nodejs编写的,目前使用Jest进行客户端测试,使用Mocha进行服务器端测试。关于这一点,我有几个问题:

  1. 以前有人试过/研究过突变测试吗?你对这方面的利弊有什么想法/担心吗?
  2. 就Stryker框架而言,我很好奇Stryker是如何生成变种人的?在Stryker中是否有生成突变体的算法?

如有任何意见,将不胜感激。提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2019-10-04 16:48:57

对于一般的突变测试概念,我完全推荐Pitest (java的MT实现)文档:

我之前也写过这个话题:https://pedrorijo.com/blog/intro-mutation/

对于你的问题,这应该给你一个好的想法,现有的可能性。不确定前锋的具体细节

票数 1
EN

Stack Overflow用户

发布于 2019-10-04 17:23:41

  1. 变异测试是以一种有意义的方式提高测试“覆盖率”的重要工具。如果您希望在自动化单元测试套件中提供更完整的回归覆盖,变异测试可以帮助您发现测试覆盖率中的漏洞,这可以帮助查找和防止bug。但是要注意:您仍然需要考虑所需的测试类型。简单地增加测试,仅仅是为了杀死变种人是有害的。您的测试最终可能会以这种方式过度耦合到您的实现。然而,这并不会使变异测试变得糟糕,它只是意味着你必须像大多数工具一样聪明地使用这个工具。另一个警告是,突变测试可能很慢,但由于您不必像常规测试套件那样频繁地运行突变测试,这并不是一个可怕的问题。
  2. Stryker使用特定的变异器来查找它知道如何变异的代码。您可以找到变异器在手册中的列表。如果你感到冒险,你可以加入你自己的变异者。但是算法的基本工作方式是:
    1. 将代码解析为可由算法检查的内容。
    2. 寻找适合特定模板的代码片段
    3. 修改代码的方式仍然应该是有效的语法,但以一种可能是“错误”的方式更改行为。(最简单的例子是完全删除行为)

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

https://stackoverflow.com/questions/58228323

复制
相关文章

相似问题

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