你有变异测试的现实应用的例子吗?它比简单的测试覆盖工具更好吗?还是没用?
在现实世界中,突变测试有哪些优点/缺点?
变异测试已经存在了一段时间,似乎至少有一两个商业变异测试框架用于C/C++.你用过它们了吗?你有什么经历?有没有开源替代品?
在尝试运行PIT突变测试时,我收到以下错误:
mutationCoverage failed:计算线覆盖时,所有测试都没有通过而没有突变.变异测试需要绿色套件.
当我进行正常的测试构建时,测试运行得很好但是在运行突变测试阶段时,他们认为会失败,但没有提供有关原因的详细信息.我已经解决了PIT测试常见问题解答中列出的原因,但我仍然不知道可能出现的问题.
我试过了:
我还应该尝试一些其他的事情吗?或者其他方法来调试可能发生的事情?
在Python中编写另一个单元测试(使用Django框架)并在学习了多种测试方法(我对测试软件有点兴趣)之后,我很好奇如果我在代码上进行突变测试,会有多少突变体被杀死.
问题是我使用的是Python 2.7,我找到的工具只有MutPy https://pypi.python.org/pypi/MutPy/0.4.0,它适用于Python 3.x ......
有没有人知道任何(稳定和支持)的Python 2.7变异测试工具?也许我在错误的地方寻找它?
我曾经使用过Heckle,但由于ParseTree的问题,它与ruby 1.9不兼容.我寻找替代方案,但唯一看起来很有希望的是Chaser,而且我没有任何明确的文档可以用来看看我是否可以使用RSpec.它似乎有Test :: Unit依赖.
那么 - 是否有人使用任何很酷的工具来真正检查测试的质量?
或者 - 有没有提供比c0覆盖更好的覆盖工具?这有助于解决同样的问题.我现在正在使用cover_me,但它是c0,就像rcov一样.
我有以下内容:
public class UnsetProperty extends Command {
@Resource
private SetProperty setProperty;
public String parse(String[] args) {
if (args.length != 4) {
throw new RuntimeException("Incorrect number of arguments. Expected 4. Got " + args.length);
}
String publisher = args[0];
String version = args[1];
String mode = args[2];
String property = args[3];
/*
* Unsetting a property is done by changing the current property to null.
* Technically, the old property doesn't get changed, a new one is inserted with
* a …Run Code Online (Sandbox Code Playgroud) 运行时mvn org.pitest:pitest-maven:mutationCoverage出现如下错误(
Environment: Windows 10, Maven 3.6.1, Java 11, junit-jupiter 5.4.1, pitest 1.4.7)
[ERROR] Failed to execute goal org.pitest:pitest-maven:1.4.7:mutationCoverage (default-cli) on project hello-strange-world: Execution default-cli of goal org.pitest:pitest-maven:1.4.7:mutationCoverage failed: Coverage generation minion exited abnormally. Please check the classpath.
[ERROR]
[ERROR] Please copy and paste the information and the complete stacktrace below when reporting an issue
[ERROR] VM : Java HotSpot(TM) 64-Bit Server VM
[ERROR] Vendor : Oracle Corporation
[ERROR] Version : 11.0.2+9-LTS
[ERROR] Uptime : 4936
[ERROR] …Run Code Online (Sandbox Code Playgroud) 我们的项目将整合突变测试作为其构建周期的一部分.目前,我们正处于评估阶段.
到目前为止,我只发现Jester有一个maven-plugin(Grester).我无法找到其他可用的突变测试工具(Jumble,μJava和Javalanche).当然,我们需要完整的maven集成.我们不想重新发明轮子(即,为我们选择的工具编写我们自己的maven插件).
你知道那些Jumble,μJava和Javalanche的maven-plugins吗?我已经google了,就像我说的那样,只找到了Grester.此外,如果你知道任何其他java的变异测试工具,任何提示将不胜感激.
对于遗传编程的研究,我想在llvm的基础上实现一个进化系统并应用代码突变(可能在IR级别).
我发现了llvm-mutate,这是非常有用的执行点突变.据我所知,指令得到计数/编号,然后可以删除编号的指令.
但是,作为代码中的可用语句之一,似乎可以引入新指令.然而,真正的突变将允许插入任何允许的IR指令,而不管它是否在要变异的代码中使用.此外,应该可以插入链接库的库函数调用(不在当前代码中使用,但可能可用,因为lib已在clang中链接).
我是否在llvm-mutate中忽略了这一点,或者到目前为止真的不可能?
是否有任何项目试图/已经为llvm实施(ed)此类突变?
llvm有许多代码分析工具,应该允许实现上述方法.llvm很大,所以我有点迷失方向.任何提示哪些工具可能有用(例如获取可用库函数列表等)?
谢谢Alex
mutation-testing ×10
unit-testing ×5
java ×4
pitest ×3
testing ×3
c++ ×1
clang ×1
frameworks ×1
llvm ×1
maven ×1
maven-3 ×1
python ×1
python-2.7 ×1
rspec2 ×1
ruby ×1
ruby-1.9 ×1
spring ×1
spring-boot ×1