In this paper we apply mutation testing in an in-time fashion, i.e., across multiple project releases. Thus, we investigate how the mutants of the current version behave in the future versions of the programs. We study the characteristics of what we call latent mutants, i.e., the mutants that are live in one version and killed in later revisions, and explore whether they are predictable with these properties. We examine 131,308 mutants generated by Pitest on 13 open-source projects. Around 11.2% of these mutants are live, and 3.5% of them are latent, manifesting in 104 days on average. Using the mutation operators and change-related features we successfully demonstrate that these latent mutants are identifiable, predicting them with an accuracy of 86% and a balanced accuracy of 67% using a simple random forest classifier.
翻译:本文以跨时方式应用变异测试,即跨越多个项目版本。因此,我们研究了当前版本生成的变异体在程序未来版本中的行为特征。我们重点考察了所谓“潜在变异体”的特性——即在某一版本中存活、在后续修订中被杀死的变异体,并探究其是否可通过相关属性进行预测。基于Pitest在13个开源项目生成的131,308个变异体,我们发现约11.2%的变异体处于存活状态,其中3.5%为潜在变异体,平均潜伏周期为104天。通过结合变异运算符与变更关联特征,我们成功验证了这类潜在变异体的可识别性:使用简单的随机森林分类器可实现86%的准确率与67%的平衡准确率预测。