当前位置: X-MOL 学术Inf. Softw. Technol. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Identifying method-level mutation subsumption relations using Z3
Information and Software Technology ( IF 3.8 ) Pub Date : 2020-12-04 , DOI: 10.1016/j.infsof.2020.106496
Rohit Gheyi , Márcio Ribeiro , Beatriz Souza , Marcio Guimarães , Leo Fernandes , Marcelo d’Amorim , Vander Alves , Leopoldo Teixeira , Baldoino Fonseca

Context:

Mutation analysis is a popular but costly approach to assess the quality of test suites. One recent promising direction in reducing costs of mutation analysis is to identify redundant mutations, i.e., mutations that are subsumed by some other mutations. A previous approach found redundant mutants manually through truth tables but it cannot be applied to all mutations. Another work derives them using automatic test suite generators but it is a time consuming task to generate mutants and tests, and to execute tests.

Objective:

This article proposes an approach to discover redundant mutants by proving subsumption relations among method-level mutation operators using weak mutation testing.

Method:

We conceive and encode a theory of subsumption relations in the Z3 theorem prover for 37 mutation targets (mutations of an expression or statement).

Results:

We automatically identify and prove a number of subsumption relations using Z3, and reduce the number of mutations in a number of mutation targets. To evaluate our approach, we modified MuJava to include the results of 24 mutation targets and evaluate our approach in 125 classes of 5 large open source popular projects used in prior work. Our approach correctly discards mutations in 75.93% of the cases, and reduces the number of mutations by 71.38%.

Conclusions:

Our approach offers a good balance between the effort required to derive subsumption relations and the effectiveness for the targets considered in our evaluation in the context of strong mutation testing.



中文翻译:

使用Z3识别方法级别的突变归类关系

内容:

变异分析是一种流行但昂贵的评估测试套件质量的方法。降低突变分析成本的一种近期有希望的方向是鉴定冗余突变,即,被某些其他突变归入的突变。先前的方法是通过真值表手动找到多余的突变体,但是不能将其应用于所有突变。另一项工作是使用自动测试套件生成器派生它们,但是生成变量和测试以及执行测试是一项耗时的工作。

目的:

本文提出了一种通过使用弱突变测试证明方法级突变算子之间的包含关系来发现冗余突变体的方法。

方法:

我们在Z3定理证明者中为37个突变目标(表达或陈述的突变)构想并编码了包含关系的理论。

结果:

我们使用Z3自动识别并证明许多归类关系,并减少许多突变目标中的突变数目。为了评估我们的方法,我们对MuJava进行了修改,使其包括24个突变目标的结果,并在先前的工作中使用的5个大型开源流行项目的125类中评估了我们的方法。我们的方法正确地在75.93%的情况下丢弃了突变,并减少了71.38%的突变数。

结论:

我们的方法在得出归类关系所需的工作量与在强突变测试的情况下评估中考虑的目标的有效性之间取得了良好的平衡。

更新日期:2020-12-08
down
wechat
bug