标签: mutation-testing

适用于Android的变异测试工具

我对Mutation Testing非常感兴趣,所以我尝试了一些像mujava这样的工具,这个工具很适合Java代码.我还读到在Android上应用变异测试并非易事.

所以,我的问题是,有没有人知道为Android代码执行变异测试的工具或方法?

先感谢您!

testing android mutation-testing

6
推荐指数
1
解决办法
1144
查看次数

哪些编程语言可以支持变异测试?

在某些语言中实施突变测试比其他语言更难(或不可能)吗?例如,是否可以在函数式编程语言中实现突变测试?

mutation-testing

5
推荐指数
1
解决办法
322
查看次数

开源变异测试C ++

我需要一个开源工具(甚至是一个相对原始的工具),它可以对C ++代码执行变异测试。我要求它必须是开源的,因为我需要在概念验证实验中对其进行修改。

我尝试了Googling,但没有提出开源工具,但提出了这个问题,但是答案中建议的工具不是开源的,也不是对C ++进行了突变。

c++ open-source mutation-testing

5
推荐指数
1
解决办法
1741
查看次数

如何从 PIT 突变分析中排除测试?

我现在正处于一个旷日持久的境地,有一个困难的项目,其中很大一部分被重构并检查了大量失败的测试。

我在 Maven 中运行 PIT,但很长一段时间都无法运行,因为测试必须是绿色的,但我希望至少在运行的测试上有 PIT 概述。

将失败的测试与 PIT 隔离的最有效方法是什么?

junit unit-testing mutation-testing maven pitest

5
推荐指数
1
解决办法
3843
查看次数

pitest-maven 报告聚合目标的正确设置

伙计们!我尝试在我的 Maven / Java 项目中使用 pitest-maven 插件,但显然无法生成汇总报告(考虑到我有一个多模块项目)。我从官方网站和其他几个来源收集了一些信息,但是,它们都没有真正帮助定义此场景的正确配置。简而言之,我的结构如下所示:

父项目

  • 孩子A
  • 儿童乙
  • 孩子 ...
  • 儿童 N

在某些子模块中,执行 pi-test 确实有意义,而其他子模块则没有。可以这么说,我的配置一般是。

父模块 pom:

<profile>
        <id>run-pitest</id>
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.pitest</groupId>
                        <artifactId>pitest-maven</artifactId>
                        <version>1.3.2</version>
                        <configuration>
                            <outputFormats>
                                <param>HTML</param>
                                <param>XML</param>
                            </outputFormats>
                            <!--<historyInputFile>${project.basedir}/pitHistory.txt</historyInputFile>-->
                            <!--<historyOutputFile>${project.basedir}/pitHistory.txt</historyOutputFile>-->
                            <mutators>
                                <mutator>CONDITIONALS_BOUNDARY</mutator>
                                <mutator>MATH</mutator>
                                <mutator>INCREMENTS</mutator>
                                <mutator>NEGATE_CONDITIONALS</mutator>
                            </mutators>
                            <verbose>true</verbose>
                            <exportLineCoverage>true</exportLineCoverage>
                            <testPlugin>testng</testPlugin>
                            <!--<reportsDirectory>${project.build.directory}/pit-reports</reportsDirectory>-->
                        </configuration>
                        <executions>
                            <execution>
                                <phase>test</phase>
                                <goals>
                                    <goal>mutationCoverage</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>report</id>
                                <phase>site</phase>
                                <goals>
                                    <goal>report-aggregate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.pitest</groupId>
                    <artifactId>pitest-maven</artifactId>
                </plugin>
            </plugins>
        </build>
    </profile>
Run Code Online (Sandbox Code Playgroud)

具有突变的子项目:

<plugins>
        <plugin>
            <groupId>org.pitest</groupId>
            <artifactId>pitest-maven</artifactId>
            <configuration>
                <mutationThreshold>80</mutationThreshold>
                <exportLineCoverage>true</exportLineCoverage> …
Run Code Online (Sandbox Code Playgroud)

mutation-testing maven-plugin pitest

5
推荐指数
1
解决办法
2451
查看次数

坑突变-如果(x!= null)返回null否则抛出新的RuntimeException

我有一个返回自定义对象的方法

public MyObject getTheObject(){
  ...
  return muObject;
}
Run Code Online (Sandbox Code Playgroud)

其单元测试检查getTheObject()方法返回的对象是否不为null

@Test
public void testGetTheObject(){
  ...
  assertNotNull(actualObject);
}
Run Code Online (Sandbox Code Playgroud)

并通过测试。

使用Pitest进行突变测试时它显示一个SURVIVED突变,它表示如下内容:

mutated returned of Object for value for ..../getTheObject to ( if ( x!= null ) null else throw new RuntimeException )
Run Code Online (Sandbox Code Playgroud)

问题是我们的单元测试应该如何摆脱这个问题,并且KILL该突变

java unit-testing mutation-testing pitest

5
推荐指数
2
解决办法
792
查看次数

使用Mono.Cecil创建带有内联参数的IL指令

我现在正在玩变异测试.我正在研究的一个突变涉及交换参数,例如,我可能需要交换参数,Ldarg.0Ldarg_S使用指示索引的操作数.

这个操作数类型是一个内联arg,在Mono.Cecil中我认为需要我创建一个正确实例化ParameterDefinition来存储32位int索引.有没有人有丝丝足够的经验,指出我的一个简单的方法正确的方向,以创建一个Instruction与实例OpCodeLdarg_SOperand适当的类型?

.net mutation-testing mono.cecil

4
推荐指数
1
解决办法
1379
查看次数

变异测试-是否在for-each循环中否定条件?

我们只是在进行突变测试,而我不了解一件事。为什么总是在这样的for-each循环上尝试应用“否定条件变量”:

for (final Order order : orders)
Run Code Online (Sandbox Code Playgroud)

如果我看一下mutator的描述(http://pitest.org/quickstart/mutators/#NEGATE_CONDITIONALS),那么它应该只!=对to ==<to 这样的条件进行突变>=。所以我真的不明白为什么在这里使用它,为什么它有时会失败,有时却不会。

有人可以向我解释一下吗?

java mutation-testing pitest

4
推荐指数
1
解决办法
1650
查看次数

Pitest 无法检测到测试类别

我的 maven 和 pitest 配置有问题。

Pitest 代突变没问题,但他看不到我的测试类..

如果您有任何解决方案:D


我有这样的主要来源 /src/main/java/com.plugin..... .java

我有这样的测试源 /src/test/java/com.plugin.....java


pom.xml 配置:

<plugin>
            <groupId>org.pitest</groupId>
            <artifactId>pitest-maven</artifactId>
            <version>1.1.9</version>
            <configuration>
                <targetClasses>
                    <param>com.plugin.business.centre*</param>
                </targetClasses>
                <targetTests>
                    <param> com.plugin.business.centre*</param>
                </targetTests>
            </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

在 < targetTests > .. 他只知道我的带有自动完成功能的源类,而不知道我的测试类。


[INFO] --- pitest-maven:1.1.9:mutationCoverage (default-cli) @ Polux ---
[INFO] Found plugin : Default csv report plugin
[INFO] Found plugin : Default xml report plugin
[INFO] Found plugin : Default html report plugin
[INFO] Found plugin : Default limit mutations plugin
[INFO] Found shared classpath plugin : …
Run Code Online (Sandbox Code Playgroud)

java mutation-testing maven pitest

3
推荐指数
2
解决办法
5592
查看次数

忽略 Stryker 突变测试中的日志条目

我正在将其添加Stryker.net到我的 C# 项目中。我发现它在所有日志条目上都发生了变化。有什么办法可以在配置中忽略这些吗?

.net c# mutation-testing stryker stryker-net

3
推荐指数
1
解决办法
861
查看次数