一句话:提出 MuDelta,用机器学习预测与提交变更相关的变异体,提升持续演化软件变异测试的有效性。
针对程序变更,传统变异测试会产生大量与变更行为无关的变异体,降低测试效率。MuDelta 识别“提交相关变异体”,即影响且受变更程序行为影响的变异体。它结合静态代码特征的图表示与向量表示,并训练机器学习模型进行预测。作者在 21 个 Coreutils 程序的 50 个提交上评估:预测达到 0.80 ROC AUC、0.50 PR AUC,精确率/召回率 0.63/0.32,显著优于随机;相关测试可杀死比随机采样多 45% 的相关变异体,在引入故障的提交中发现的故障多 27%。结果表明基于提交的变异测试适用于演化软件。
To effectively test program changes using mutation testing, one needs to use mutants that are relevant to the altered program behaviours. In view of this, we introduce MuDelta, an approach that identifies commit-relevant mutants; mutants that affect and are affected by the changed program behaviours. Our approach uses machine learning applied on a combined scheme of graph and vector-based representations of static code features. Our results, from 50 commits in 21 Coreutils programs, demonstrate a strong prediction ability of our approach; yielding 0.80 (ROC) and 0.50 (PR Curve) AUC values with 0.63 and 0.32 precision and recall values. These predictions are significantly higher than random guesses, 0.20 (PR-Curve) AUC, 0.21 and 0.21 precision and recall, and subsequently lead to strong relevant tests that kill 45%more relevant mutants than randomly sampled mutants (either sampled from those residing on the changed component(s) or from the changed lines). Our results also show that MuDelta selects mutants with 27% higher fault revealing ability in fault introducing commits. Taken together, our results corroborate the conclusion that commit-based mutation testing is suitable and promising for evolving software.