摘要
变异测试通过注入变异算子生成变异体模拟软件中的潜在缺陷,是提高软件质量的关键技术.大量变异体及其执行成本制约着变异测试的研究进展和在工业领域的应用.选择有效的变异算子是减少变异体数量的主要途径.针对分布存储并行程序,本文提出变异算子有效性评价准则.从顽固变异体、崩溃变异体和等价变异体3个方面对变异体进行分类;基于不同变异体对测试数据质量的影响,定义变异算子有效性评价准则,分析不同变异算子的有效性.实验结果表明,使用本文提出的评价准则能够选择合理的变异算子,基于这些变异算子能够生成更多的有效变异体和尽可能少的无效变异体,在保持变异测试有效性的前提下,平均减少了22.61%的变异体,提高了变异测试效率.
Mutation testing is a pivotal technology for enhancing software quality by injecting mutation operators to generate mutant programs that mimic potential defects in software.The substantial number of mutants and the associated execution costs,however,limit the advancement and industrial application of mutation testing.The selection of effective mutation operators is a primary strategy for reducing the volume of mutants.Addressing distributed memory parallel programs,this paper introduces an evaluation criterion for the effectiveness of mutation operators.Mutants are categorized into three types:stubborn mutants,crash mutants,and equivalent mutants.Drawing on the influence of various mutants on the quality of test data,we establish a criterion for evaluating the effectiveness of mutation operators and analyze the performance of different mutation operators.Experimental results demonstrate that the proposed evaluation criterion enables the selection of suitable mutation operators,leading to the generation of a higher number of valid mutants and a minimized number of invalid mutants.Consequently,while preserving the effectiveness of mutation testing,the average number of mutants is decreased by 22.61%,thereby enhancing the efficiency of mutation testing.
作者
田甜
王苗苗
李成龙
巩敦卫
TIAN Tian;WANG Miao-miao;LI Cheng-long;GONG Dun-wei(School of Computer Science and Technology,Shandong Jianzhu University,Jinan,Shandong 250101,China;College of Automation and Electronic Engineering,Qingdao University of Science and Technology,Qingdao,Shandong 266061,China)
出处
《电子学报》
北大核心
2025年第3期864-877,共14页
Acta Electronica Sinica
基金
国家自然科学基金(No.62102235)
山东省自然科学基金(No.ZR2020MF084)。
关键词
分布存储
并行程序
变异测试
变异算子
变异体
distributed memory
parallel programs
mutation testing
mutation operators
mutants