muPRL: A Mutation Testing Pipeline for Deep Reinforcement Learning based on Real Faults
本文提出了muPRL,一个基于真实故障的深度强化学习变异测试流水线,通过代码库挖掘构建真实RL故障分类体系并推导出变异算子,实验证明其能有效区分强弱测试生成器,为开发者提供测试场景充分性的反馈。
2024-08-27 cs.SE
Syntactic Vs. Semantic similarity of Artificial and Real Faults in Mutation Testing Studies
错误播种通常用于对照研究,以评估和比较测试技术。这些技术的核心是假设人工播种故障涉及某种形式的现实属性,从而提供现实的实验结果。为了加强真实性,最近的一系列研究使用了先进的机器学习技术,如深度学习和自然语言处理(NLP),以播种看起来像(句法上)真实的错误,这意味着错误的真实性与句法相似性有关。这就提出了一个问题,是否播种语法相似的故障确实导致语义相似的故障,更一般地说,是否语法不同的故障是远离(语义)从真正的。我们回答这个问题,采用4种错误播种技术(PiTest -一种流行的突变测试工具,IBIR -一种手动制作的错误模式工具,DeepMutation -一种基于学习的错误播种框架和CodeBERT -一种使用代码嵌入的新型突变测试工具),并证明语法相似性并不反映语义相似性。我们还表明,Defects 4J V2的60%、47%、43%和7%的真实错误在语义上与CodeBERT、PiTest、IBIR和DeepMutation错误相似。然后,我们对这些技术进行了客观的比较,发现CodeBERT和PiTest具有类似于IBIR和DeepMutation的故障检测能力,IBIR是最具成本效益的技术。此外,PiTest、CodeBERT、IBIR和DeepMutation的总体故障检测率平均为54%、53%、37%和7%。
2021-12-29 cs.SE
Hybrid Fault-Driven Mutation Testing for Python
Simon Fraser University(西蒙菲莎大学);University of Ottawa(渥太华大学)
本文提出了一种基于静态和动态分析混合技术的Python变异测试方法,通过七种新的变异算子生成补充现有工具的变异体,提高测试覆盖率和发现缺陷的能力。
2026-07-22 cs.SE
Investigating Design Anti-pattern and Design Pattern Mutations and Their Change- and Fault-proneness
在软件演化过程中,当缺乏经验的开发人员修改他们的软件系统以修复错误或根据需求的变化添加新功能时,他们可能会引入设计反模式。开发人员还可以使用设计模式来提高软件质量,或者作为某些设计反模式的可能解决方案。因此,设计模式和设计反模式由开发人员引入、删除和变异。许多研究调查了设计模式和设计反模式的演变及其对软件开发的影响。然而,他们孤立地研究了设计模式或设计反模式,没有考虑它们的突变以及这些突变对软件质量的影响。因此,我们报告我们的研究设计模式和设计反模式之间的双向突变和这些突变对软件的变化和故障倾向的影响。我们分析了7个Java软件系统的快照,这些系统具有不同的规模、演化历史和应用领域。我们构建了马尔可夫模型来捕获不同设计模式和设计反模式突变的发生概率。我们的研究结果表明:(1)设计模式和设计反模式突变为其他设计模式和/或设计反模式。它们还表明:(2)某些更改类型主要触发设计模式和设计反模式的突变(重命名和对注释、声明和操作符的更改),以及(3)设计反模式和设计模式的某些突变在特定上下文中更容易出错。这些结果提供了重要的洞察设计模式和设计反模式的演变及其对软件系统的变化和故障倾向的影响。
2021-03-31 cs.SE
Evaluating Mutation-based Fault Localization for Quantum Programs
本文评估 MBFL 在 Qiskit 量子程序调试中的效果,通过真实与人工故障实验表明其潜力及在真实故障上的局限。
2025-05-14 cs.SE
Enabling Mutation Testing for Android Apps
变异测试已被广泛用于评估测试套件的故障检测有效性,以及指导测试用例生成或优先级排序。经验研究表明,虽然突变体通常代表真实故障,但突变测试的有效应用需要为程序设计语言设计的“传统”运算符用特定于应用领域和/或技术的运算符来扩充。本文提出了MDroid+,一个有效的Android应用程序的突变测试框架。首先,我们通过手动分析来自不同来源的2,023个软件工件(例如,错误报告、提交)。然后,我们确定了一组38个变异算子,并实现了一个基础设施,用其中的35个算子在Android应用程序中自动播种变异。的分类和建议的运营商进行了评估方面的死产/平凡的突变体产生和他们的能力,代表真正的故障在Android应用程序中,相比其他众所周知的突变工具。
2017-08-01 cs.SE
Learning Test-Mutant Relationship for Accurate Fault Localisation
本文提出 SIMFL,利用历史变异分析结果和统计推断建模测试-变异体关系,实现及时且低成本的精确故障定位,并在 Defects4J 上优于现有 MBFL 方法。
2023-06-04 cs.SE
Empirical Evaluation of Mutation-based Test Prioritization Techniques
我们提出了一种新的测试用例优先级技术,结合了基于变异和多样性的方法。我们的多样性感知突变技术依赖于突变体识别的概念,其目的是将一个突变体的行为与另一个区别开来,而不是与原始程序区别开来。我们经验性地研究了基于突变的优先化技术的相对成本和有效性(即,使用传统的突变体杀死和所提出的突变体消除),具有352个真实故障和553,477个开发人员编写的测试用例。经验评估考虑了传统的和多样性意识的突变标准在各种设置:单目标贪婪,混合动力和多目标优化。结果表明,在所研究的所有故障中,不存在单一的主导技术。为此,\rev {我们使用称为突变区分图(MDG)的图形模型来显示基于突变的优先级排序标准中的每一个执行不佳的时间和原因,该图形模型展示了故障检测测试用例关于突变杀死和突变的分布。
2018-01-23 cs.SE
Does mutation testing improve testing practices?
已经定义了测试质量的各种代理度量,以便在编写测试时指导开发人员。代码覆盖率在实践中特别好地建立起来,尽管覆盖率如何与测试质量相关的问题是一个正在进行的辩论。突变测试提供了一个有希望的替代方案:人工缺陷可以识别测试套件中的漏洞,从而为额外的测试提供具体的建议。尽管突变检测有明显的优势,但在实践中还没有很好地建立起来。直到最近,突变测试工具和技术还不能扩展到复杂的系统。虽然他们现在做规模,剩下的障碍是缺乏证据表明,编写测试的突变体实际上提高测试质量。在本文中,我们的目标是填补这一空白:通过分析近1500万个突变体的大型数据集,我们研究了这些突变体如何随着时间的推移影响开发人员,以及这些突变体如何与真正的故障相关。我们的分析表明,使用突变测试的开发人员编写更多的测试,并积极改善他们的测试套件与高质量的测试,使更少的突变。通过分析一个数据集的过去修复真正的高优先级的故障,我们的分析进一步提供证据,突变体确实与真正的故障。换句话说,如果突变测试被用于引入错误的更改,它将报告一个可以防止错误的活突变体。
2021-03-12 cs.SE
Mutant Density: A Measure of Fault-Sensitive Complexity
软件代码复杂度是一个研究得很好的属性,以确定软件组件的健康。然而,现有的代码复杂性度量没有直接考虑代码的易出错性方面。我们提出了一个称为突变密度的指标,其中我们使用突变作为在代码中引入人为错误的方法,并计算每行可能的突变数量。我们将展示如何使用此度量标准来对现实生活中的软件项目进行有用的分析。
2021-04-25 cs.SE
Model Driven Mutation Applied to Adaptative Systems Testing
动态自适应系统根据其周围环境的变化并根据自适应逻辑来修改其属性和结构。关键系统越来越多地包含动态适应能力,例如救灾和空间探索系统。在本文中,我们专注于自适应逻辑的突变测试。我们提出了一个故障模型的适应逻辑,分为环境的完整性和适应正确性的故障。由于有几种自适应逻辑语言依赖于相同的底层概念,故障模型表示独立于特定的自适应语言。利用模型驱动工程技术,我们表达这些共同的概念在一个元模型,并定义在这个级别上的变异算子的操作语义。突变被应用于模型元素和模型转换被用来传播这些变化到一个给定的适应政策,在所选择的形式主义。在自适应Web服务器上的初步结果突出了自适应系统杀死突变体的困难,因此难以生成有效的测试。
2012-05-25 cs.SE
DeepMutation: Mutation Testing of Deep Learning Systems
深度学习(DL)定义了一种新的数据驱动编程范式,其中内部系统逻辑在很大程度上由训练数据塑造。评估DL模型的标准方法是在测试数据集上检查它们的性能。测试数据集的质量对于获得训练模型的置信度非常重要。使用不充分的测试数据集,已经达到高测试精度的DL模型可能仍然缺乏通用性和鲁棒性。在传统的软件测试中,变异测试是一种成熟的测试集质量评估技术,它分析测试集在多大程度上检测到注入的错误。但由于传统软件与基于深度学习的软件存在根本性的区别,传统的变异测试技术无法直接应用于DL系统。在本文中,我们提出了一个变异测试框架专门用于DL系统来衡量质量的测试数据。为了做到这一点,通过分享传统软件中突变测试的相同精神,我们首先定义了一组源级突变算子来向DL的源注入故障(即,训练数据和训练程序)。然后,我们设计了一组模型级变异算子,直接将故障注入DL模型,而无需训练过程。最后,测试数据的质量可以从分析注入的故障可以被检测到的程度来评估。建议的突变测试技术的有用性证明了两个公共数据集,即MNIST和CIFAR-10,三个DL模型。
2018-08-14 cs.SE
STMutants: A Mutation Testing Dataset for Structured Text Programs in Industrial Automation
Lamar University(拉马尔大学)
针对IEC 61131-3结构化文本程序缺乏公开变异测试基准的问题,构建了包含108个一阶变异体的数据集STMutants,涵盖七类变异算子,并评估了三个大语言模型在测试套件生成和变异检测中的性能。
2026-06-03 cs.SE
Testing Smart Contracts Gets Smarter
智能合约是不可变的,可验证的,自治的代码片段,可以在以太坊等区块链网络上部署和运行。由于区块链的不变性,已部署的智能合约或已验证的交易不可能发生变化。另一方面,以太坊区块链中的智能合约携带了数百万美元,因此,一个错误的智能合约可能会导致巨大的金钱损失。因此,对于智能合约开发人员来说,在将其部署到区块链上之前,充分测试和检查其代码的正确性非常重要。在本文中,我们提出了一种基于突变测试的Solidity语言智能合约测试机制。我们分析了Solidity智能合约中已知错误的全面列表,并设计了10类受真实错误启发的变异算子。我们的实验结果表明,我们提出的变异算子可以重新生成15个著名的错误智能合约中的10个,这些智能合约导致了数百万美元的损失。结果表明,我们提出的变异算子在检测Solidity智能合约中的实际故障方面是有效的。我们还使用我们的突变操作符扩展了{ \em Universal Mutator }工具,以便它可以自动为Solidity编写的智能合约生成突变体。
2019-12-24 cs.SE
MBFL-DKMR: Improving Mutation-based Fault Localization through Denoising-based Kill Matrix Refinement
MBFL-DKMR通过去噪杀矩阵精炼提升故障定位效果,有效抑制噪声并优于现有技术。
2025-11-28 cs.SE
Assessing Test Case Prioritization on Real Faults and Mutants
测试用例优先级(TCP)是回归测试的一个重要组成部分,它允许更早地检测故障或帮助减少测试时间和成本。虽然研究文献中存在几种TCP方法,但越来越多的研究已经针对称为突变体的合成软件缺陷对其进行了评估。因此,目前尚不清楚在何种程度上突变体上的TCP性能将代表在真实故障上实现的性能。为了回答这个基本问题,我们进行了第一次实证研究,比较TCP技术应用于现实世界和突变故障的性能。我们的研究背景包括八种经过充分研究的TCP方法,35k+突变故障和Defects4J数据集中五个Java系统的357个真实故障。我们的研究结果表明,所研究的TCP技术突变体的相对性能可能不会强烈相关的性能上真正的故障,这取决于属性的主题程序。这表明,在某些情况下,在一组突变体上表现最好的技术在实际应用于实际故障时可能不是最好的技术。我们还说明,这些相关性不同的突变体所产生的不同运营商,这取决于所选择的运营商是否反映一个主题程序的典型故障。这突出了开发针对特定程序域的变异算子的重要性,特别是对于TCP。
2018-09-18 cs.SE
MOTIF: A tool for Mutation Testing with Fuzzing
MOTIF利用灰盒模糊测试生成C语言单元测试用例,克服了符号执行的局限性,能有效检测变异体中的注入故障,在安全关键CPS软件测试中表现更优。
2024-06-04 cs.SE
Towards Safety-Aware Mutation Testing for Autonomous Driving Systems
The University of Sheffield(谢菲尔德大学)
提出安全感知变异测试(SAMT),通过注入模块间消息故障模拟交互失效,基于STPA生成突变体,评估测试充分性并指导场景生成与系统修复。
2026-06-26 cs.SE
Mutation Testing of Deep Reinforcement Learning Based on Real Faults
Polytechnique Montréal(蒙特利尔工程学院)
测试深度学习(DL)系统是一项复杂的任务,因为它们的行为与传统系统不同,特别是因为它们的随机性。尽管如此,能够使现有的测试技术(如突变测试(MT))适应DL设置将大大提高其潜在的可验证性。虽然已经做出了一些努力来将MT扩展到监督学习范式,但很少有工作将其扩展到强化学习(RL),RL也是DL生态系统的重要组成部分,但其行为与SL非常不同。本文建立在现有的MT方法,以提出一个框架,RLMutation,MT应用于RL。值得注意的是,我们使用现有的故障分类法来构建一组与RL相关的变异算子,并使用一个简单的启发式算法来生成RL的测试用例。这使我们能够比较基于现有方法的不同突变杀死定义,以及分析所获得的突变算子及其称为高阶突变(HOM)的潜在组合的行为。我们发现,突变杀死定义的设计选择可以影响是否突变被杀死以及生成的测试用例。此外,我们发现,即使有一个相对较少的测试用例和运营商,我们管理生成HOM有趣的属性,可以提高RL系统的测试能力。
2023-01-13 cs.LG cs.SE
Mutation-based Fault Localization of Deep Neural Networks
Iowa State University(爱荷华州立大学)
本文提出一种名为deepmufl的基于变异的深度神经网络故障定位新技术,在109个StackOverflow漏洞测试中检测出53个,优于现有方法,并通过变异选择将定位时间减半且仅损失7.55%的top-1定位率。
2023-09-10 cs.LG cs.SE
Round-Trip Mutation Testing: Translating Code to Natural Language Intent and back
University of Luxembourg(卢森堡大学);ENSI, University of Manouba(马努巴大学ENS学院)
提出往返变异测试,利用大语言模型在程序代码和意图间的生成能力,通过预测意图生成变异体,还可人工制造错误翻译产生变异体,评估显示其能产生多样变异体,检测传统方法未揭示的错误。
2026-07-07 cs.SE
MDroid+: A Mutation Testing Framework for Android
变异测试在评估测试套件的有效性方面表现出了很大的潜力,同时在测试用例生成、选择和优先级排序方面也表现出了额外的应用。传统的突变测试通常利用一组简单的语言特定的源代码转换(称为操作符)来引入错误。然而,实证研究表明,变异测试是最有效的,这些简单的运营商必须与特定的运营商在测试中的软件的域。突变测试应用的一个具有挑战性的软件领域是移动应用程序。虽然移动设备和附带的应用程序已成为现代计算的支柱,但其开发中使用的框架和模式使得测试和验证特别困难。为了帮助衡量和确保移动测试实践的有效性,我们引入了MDroid+,这是一个用于Android应用程序突变测试的自动化框架。MDroid+包括来自十种经验推导的Android故障类型的38个突变运算符,并已应用于为50多个应用程序生成8,000多个突变体。
2018-02-13 cs.SE
A Theoretical Framework for Understanding Mutation-Based Testing Methods
在突变分析领域,突变是突变程序的系统生成(即,变种人)从一个原始程序。变异的概念已被广泛应用于各种测试问题,包括测试集选择,故障定位和程序修复。然而,令人惊讶的是,很少有人关注基于突变的测试方法的理论基础,使得难以理解,组织和描述各种基于突变的测试方法。本文的目的是考虑一个理论框架来理解基于突变的测试方法。虽然一般测试有一个坚实的测试框架,但这与基于变异的测试方法不一致,因为它关注的是测试程序的正确性,而基于变异的测试的本质是测试程序(包括突变体)之间的差异。在本文中,我们开始我们的框架的建设,定义了一个新的测试因素,称为测试区分,转换测试的范式从正确性的概念,差异的概念。我们正式定义一组测试的程序的行为差异作为一个数学向量,称为d-向量。我们探索了由d-向量表示的多维空间,并提供了一个描述空间的图形模型。基于我们的框架和形式化,我们解释现有的基于突变的故障定位方法和突变集最小化的应用,并确定新的影响,为未来的工作。
2016-01-25 cs.SE
When Knowledge Changes: Metamorphic Testing of RAG Systems with Mutations
Università della Svizzera italiana(瑞士意大利语大学)
针对现有RAG系统评估方法无法检测语料库演变带来的故障问题,提出含11个变异算子的体态测试框架,实验显示其F1分数远优于RAGAS,可有效评估RAG系统在语料库变化下的一致性。
2026-07-30 cs.SE
$μ$BERT: Mutation Testing using Pre-Trained Language Models
我们介绍$μ$ BERT,一个突变测试工具,使用预先训练的语言模型(代码BERT)来生成突变体。这是通过从作为输入的表达式中屏蔽一个标记并使用CodeBERT对其进行预测来完成的。因此,通过用预测的标记替换屏蔽的标记来生成突变体。我们评估$μ$ BERT的40个真正的故障从Defects4J,它可以检测到27的40个故障,而基线(PiTest)检测到26个。我们还表明,$μ$ BERT可以是2倍的成本效益比PiTest,当相同数量的突变体进行分析。此外,我们评估$μ$ BERT的突变体的影响时,使用程序断言推理技术,并表明它们可以帮助产生更好的规范。最后,我们讨论了在我们的实验评估过程中$μ$ BERT产生的一些有趣的突变体的质量和自然性。
2022-03-07 cs.SE
The Inversive Relationship Between Bugs and Patches: An Empirical Study
软件缺陷是开发人员一直关注的问题,修补这些缺陷需要通过复杂的操作花费相当大的成本。相比之下,引入bug可能是一项毫不费力的工作,因为即使是一个简单的突变也可以很容易地破坏被测程序(PUT)。现有的研究已经考虑了这两个对立的活动在很大程度上分开,要么试图自动生成现实的补丁,以帮助开发人员,或找到现实的错误,以模拟和防止未来的缺陷。尽管它们之间有根本的差异,但是,我们假设当简单地考虑代码更改时,它们在语法上并没有彼此不同。为了系统地研究这一假设,我们研究了补丁和错误提交之间的关系,手动和自动生成,使用聚类和模式分析。一个大规模的实证评估表明,高达70%的补丁和故障可以聚集在一起的词汇模式之间的相似性的基础上,进一步,44%的代码更改可以抽象成相同的变化模式。此外,我们调查是否代码变异工具可以被用作自动程序修复(APR)工具,和APR工具作为代码变异工具。在这两种情况下,突变和APR工具的反向使用可以表现得令人惊讶地好,甚至更好,当与它们最初的预期用途相比时。例如,基于深度学习的APR工具SequenceR发现的89%的补丁也可以通过其反演来发现,即,用错误而不是补丁训练的模型。同样,真正的故障耦合突变体的研究表明,TBar,基于模板的APR工具,可以产生14%和3%以上的故障耦合比传统的突变工具,PIT和主要,分别作为一个突变工具。
2023-03-01 cs.SE
An Empirical Study of the Realism of Mutants in Deep Learning
Institute of Computer Science, University of Goettingen(哥廷根大学计算机科学研究所)
本研究通过实证分析比较深度学习中预训练与后训练突变方法的真实性,发现预训练突变体在耦合强度和行为相似性上更优,但其高计算成本促使需开发更高效的后训练操作符。
2026-10-12 cs.SE
Mutation-Guided Unit Test Generation with a Large Language Model
University of Limerick(利默里克大学);Research Ireland Lero Centre for Software, University of Limerick(爱尔兰研究莱罗软件中心,利默里克大学);University of Ottawa(渥太华大学);Software Engineering Application Technology Lab Huawei(华为软件工程应用技术实验室)
本文提出MUTGEN方法,利用突变反馈提升测试覆盖率,优于EvoSuite和传统提示方法,在突变分数上表现更优,并探讨了LLM生成的局限性。
2026-04-15 cs.SE
SuMo: A Mutation Testing Strategy for Solidity Smart Contracts
智能合约是在区块链基础设施中部署和执行的软件程序。由于其不可变的性质,直接由部署基础设施的特定特征导致,智能合约必须在发布之前进行彻底的测试。测试是有助于提高智能合约可靠性的主要活动之一,从而可能防止大量有价值资产的损失。因此,重要的是为测试人员提供允许他们评估他们执行的活动的工具。变异测试是评估测试集故障检测能力的一种有效方法。在本文中,我们提出了SuMo,一种用于以太坊智能合约的新型突变测试工具。SuMo实现了一组44个突变操作符,这些操作符是从最新的Solidity文档和著名的突变测试工具开始设计的。这些允许模拟智能合约开发人员可以制造的各种故障。这组操作符旨在限制死产突变体的生成,这会减慢突变测试过程并限制工具的可用性。我们报告的第一次评估SuMo的开源项目的测试套件。我们得到的结果是令人鼓舞的,它们表明SuMo可以有效地帮助开发人员提供更可靠的智能合约。
2021-05-08 cs.SE
DeepMutation: A Neural Mutation Tool
Microsoft(微软);William & Mary(威廉玛丽学院);Washington and Lee University(华盛顿与李大学);Università della Svizzera italiana (USI)(瑞士意大利语大学);University of Sannio(萨尼奥大学)
变异测试可以用来评估给定测试套件的故障检测能力。为了实现这一目标,突变测试框架的两个特征是至关重要的:(i)它们应该生成代表真实故障的突变体;(ii)它们应该提供能够自动生成、注入和测试突变体的完整工具链。为了解决第一点,我们最近提出了一种使用递归神经网络编码器-解码器架构的方法,从从真实程序中挖掘的约787 k个故障中学习突变体。这种方法的实证评估证实了它的能力,以产生代表真正的故障突变。在本文中,我们解决了第二点,提出DeepMutation,一个将我们的深度学习模型包装成一个全自动工具链的工具,能够生成,注入和测试从真实故障中学习到的突变体。视频:https://sites.google.com/view/learning-mutation/deepmutation
2020-02-13 cs.CL cs.LG cs.SE
Comparing Mutation Coverage Against Branch Coverage in an Industrial Setting
软件开发的实践状态是由持续集成服务器推动的不断变化所驱动的。这种不断的变化需要频繁的、完全自动化的测试,这些测试能够在项目构建时立即检测到错误。由于测试套件的故障检测能力变得如此重要,现代软件开发团队也不断地监控测试套件的质量。然而,似乎国家的实践是不愿意采用强覆盖度量(即突变覆盖),而是依赖于较弱的覆盖(即分支覆盖)。在本文中,我们调查了三个原因,禁止采用突变覆盖在持续集成设置:(1)它的集成到构建系统的难度,(2)的看法,分支覆盖是“足够好”,(3)在构建过程中的性能开销。我们的调查是基于一个案例研究,涉及四个开源系统和一个工业系统。我们证明了突变覆盖率揭示了测试套件中的其他弱点相比,分支覆盖率,它是能够做到这一点,在项目建设过程中的一个可接受的性能开销。
2021-04-23 cs.SE
How effective are traditional test criteria at detecting bugs in large language models generated code?
SnT, University of Luxembourg(卢森堡大学 SnT);Luxembourg Institute of Science and Technology(卢森堡科学与技术研究院)
本研究通过实证评估5个LLM和4个基准中的6000多个故障实例,发现传统测试准则对LLM生成代码的缺陷检测率极低,变异测试优势有限,需手动推理断言。
2026-09-10 cs.SE
IBIR: Bug Report driven Fault Injection
软件工程和软件测试的许多研究依赖于基于故障注入的实验研究。然而,故障注入并不经常与模拟真实世界的软件故障相关,因为它“盲目地”注入大量的故障。它仍然确实具有挑战性,注入少数但现实的故障,目标是一个特定的功能,在一个程序。在这项工作中,我们引入IBIR,故障注入工具,通过探索与用户报告的故障相关的变化模式来解决这一挑战。为了注入真实的错误,我们通过重定向错误报告驱动的自动程序修复系统来创建突变体,即,反转其代码转换模板。IBIR在实践中更有吸引力,因为它既不需要深入了解代码也不需要深入了解测试,而只需要了解程序的相关错误报告。因此,我们的方法将故障注入的重点放在功能的缺陷报告。我们通过考虑Defects4J数据集来评估IBIR。实验结果表明,我们的方法优于传统的突变测试进行的故障注入与原始错误的语义相似性,当应用在系统或类级别的粒度,并提供更好的,统计上显着的,测试有效性(故障检测)的估计。此外,当注入100个错误时,IBIR在36%的情况下注入与真实错误耦合的错误,而突变测试中的突变注入不到1%。总的来说,IBIR的目标是真正的功能,并注入现实和多样化的故障。
2020-12-11 cs.SE
A Model to Estimate First-Order Mutation Coverage from Higher-Order Mutation Coverage
测试集对于软件开发过程中的故障检测至关重要。一阶变异覆盖率是量化测试集质量的一个精确度量。然而,它在计算上是昂贵的。因此,这一指标的采用是有限的。在这项研究中,我们解决这个问题,提出了一个现实的模型,能够估计一阶突变覆盖率,仅使用高阶突变覆盖率。我们的研究显示了估计如何随着突变的顺序而演变。我们验证了该模型的实证研究的基础上,17个开源项目。
2016-10-05 cs.SE
Quantum Circuit Mutants: Empirical Analysis and Recommendations
针对量子软件测试缺乏系统性基准的问题,本研究通过变异382个真实量子电路生成超70万故障基准进行大规模实证分析,揭示电路与算法等特征对变异体检测的影响,并提供变异体推荐工具与可用故障基准。
2025-05-02 cs.SE
FORMT: Form-based Mutation Testing of Logical Specifications
该草案文件定义了一个系统,这是能够保持逻辑规范的测试用例的基础。规范,这是受这个系统从他们原来的形状在一阶逻辑转换为基于形式的表达式,最初介绍了在乔治斯宾塞-布朗的逻辑。创新来自系统在向规范注入故障(所谓的突变)时提供的操作。这里提出的系统适用于不同领域的逻辑规范,如编程,本体或硬件规范。
2010-02-03 cs.SE
Learning How to Mutate Source Code from Bug-Fixes
变异测试作为一种指导测试用例生成或评估测试集有效性的方法已被广泛接受。实证研究表明,突变体是真正的故障的代表,但他们也表明了一个明确的需要更好的,可能定制的,突变算子和策略。虽然存在从实际错误中设计特定于域或通用的变异操作符的方法,但它们容易出错,并且不能帮助测试人员决定是否以及如何变异给定的源代码元素。我们提出了一种新的方法来自动学习突变体的故障在真正的程序。首先,我们的方法使用细粒度的差异,代码抽象和变更聚类来处理错误修复变更。然后,它使用深度学习策略学习突变模型。我们已经在一组从GitHub挖掘的~ 787 k错误修复上训练和评估了我们的技术。我们的经验评估表明,我们的模型能够预测在9%到45%的情况下类似于实际修复错误的突变体,并且超过98%的自动生成的突变体在词汇和语法上是正确的。
2019-07-29 cs.SE
Are We Testing the Wrong Quantum Bugs? A Study of Fault Representation Gaps in Quantum Software Testing
Tulane University(杜兰大学);The University of Texas at Dallas(德克萨斯大学达拉斯分校);University of California, Riverside(加州大学河滨分校)
本研究对比量子突变测试工具、基准漏洞与真实量子软件漏洞,发现86.3%真实漏洞未被覆盖,指出需关注编译器等组件的故障测试,为构建更贴合实际的量子软件测试基准提供实证依据。
2026-10-19 cs.PL cs.SE
Assessing and Improving the Mutation Testing Practice of PIT
突变测试被广泛用于支持软件工程研究的实验。由于现代工具可以自动化整个突变分析过程,因此它可以应用于现实世界的项目。然而,流行的突变测试工具使用一组限制性的突变体,不符合突变测试文献所支持的社区标准。这可能是有问题的,因为突变的有效性取决于它的突变体。因此,我们研究如何有效的突变体的一个流行的突变测试工具,命名为PIT,相比全面的,从文献和个人经验。我们表明,全面的突变体是很难杀死和编码的故障没有被捕获的突变体的PIT的范围为11%至62%的Java类的考虑项目。
2016-01-11 cs.SE
Data-driven Mutation Analysis for Cyber-Physical Systems
信息物理系统(CPS)通常由一组广泛的集成,异构组件,因此,他们的大部分关键故障涉及到这些组件的互操作性。不幸的是,大多数CPS测试自动化技术是初步的,行业仍然严重依赖于手工测试。对于可能不完整的、手动生成的测试套件,评估其质量是至关重要的。虽然变异分析已被证明是一种有效的手段来评估测试套件的质量在某些特定的情况下,我们缺乏的方法,CPS。事实上,现有的方法不针对互操作性问题,不能在黑箱或模拟组件的存在下执行,这是CPS的典型情况。在本文中,我们介绍了数据驱动的突变分析,一种方法,包括在评估测试套件的质量,验证它是否检测到互操作性故障模拟突变的数据交换的软件组件。为此,我们描述了一种数据驱动的突变分析技术(DaMAT),自动改变通过数据缓冲区交换的数据。我们的技术是由故障模型驱动的表格形式,工程师指定如何通过选择和配置一组变异运算符变异数据项。我们在空间领域用CPS对DaMAT进行了评估;具体而言,是去年在轨道上发射的微型卫星和纳米卫星软件系统的测试套件。我们的研究结果表明,该方法有效地检测测试套件的缺点,是不受等效和冗余突变,并需要可接受的成本。
2022-10-05 cs.SE
Towards Multi-Platform Mutation Testing of Task-based Chatbots
本文将对话变异测试方法 MUTABOT 扩展至 Dialogflow 与 Rasa,用以评估并揭示 Botium 生成测试套件的缺陷检测弱点。
2025-09-01 cs.SE
DeepMetis: Augmenting a Deep Learning Test Set to Increase its Mutation Score
Università della Svizzera Italiana(瑞士意大利语大学)
深度学习(DL)组件通常集成到需要执行复杂任务(如图像或自然语言处理)的软件系统中。用于测试此类系统的测试数据的充分性可通过其暴露模拟真实DL故障的人工注入故障(突变)的能力来评估。在本文中,我们描述了一种方法来自动生成新的测试输入,可用于增加现有的测试集,使其检测DL突变的能力增加。我们的工具DeepMetis实现了基于搜索的输入生成策略。为了解释训练和变异过程的非确定性,我们的适应度函数涉及测试中的DL模型的多个实例。实验结果表明,\tool是有效的,在增加给定的测试集,提高了63%的平均能力,以检测突变。一个留一法实验表明,增强的测试集是能够暴露看不见的突变体,模拟尚未检测到的故障的发生。
2021-09-15 cs.AI cs.SE
Goal-Oriented Mutation Testing with Focal Methods
变异测试是评估测试集故障检测能力的最新技术。不幸的是,突变测试消耗了巨大的计算资源,因为它为每个注入的突变体运行整个测试套件。在本文中,我们探讨细粒度的可追溯性链接在方法级(命名为焦点方法),以减少执行时间的突变测试,并验证每个单独的方法的测试用例的质量,而不是通常验证的整体测试套件的质量。我们的方法在开源Apache Ant项目上的验证显示,位于焦点方法中的突变体的速度提高了573.5倍,质量得分为80%。
2018-10-09 cs.SE
Cloud-Based Distributed Mutation Analysis
突变测试是一种基于故障的软件测试技术,对于工业应用来说,它的计算成本太高。基于云的分布式计算集群利用MapReduce编程范式,代表了一种可以减少长运行时间的方法。在本文中,我们描述了这样一个基于云的分布式突变测试系统的体系结构和原型实现。为了评估系统,我们比较了性能的原型,不同的集群大小,现有的“国家的最先进的”非分布式工具,PiT。我们还分析了不同的工作分配方法,以确定如何最有效地划分突变分析任务。我们的工具优于PiT,结果分析显示,有机会进一步大幅提高性能。
2016-01-28 cs.SE
Timed Model-Based Mutation Operators for Simulink Models
基于模型的突变分析是最近的研究领域,实时系统测试可以受益于使用模型突变。基于模型的变异测试(MBMT)是基于模型测试的一个特殊分支。它使用变异算子生成模型的错误版本,以评估和改进测试用例。变异测试是保证软件正确性的一种有效方法,已被应用到各个应用领域。Simulink是一种重要的实时系统建模语言。本文介绍了Simulink模型突变分析,以改善模型在环(MIL)测试。提出了一组基于AUTOSAR的Simulink变异算子,该算子反映了Simulink模型映射到操作系统任务时的时间正确性。我们实现了一个突变框架,产生隐式时钟Simulink模型的突变体。最后,我们展示了这个框架如何产生突变体,以揭示模拟中的任务干扰问题。我们的工作集成了Simulink模型与定时系统,以更好地支持突变测试自动化。
2023-01-02 cs.SE
Minimum Complete MR Subsets under Semantic-Mutation Fault Models: A Support-Set Domination Boundary
School of Computing, University of South China(南华大学计算机学院);Hunan Engineering Research Center of Software Evaluation and Testing for Intellectual Equipment(智能装备软件评测与测试湖南省工程研究中心);CNNC Key Laboratory on High Trusted Computing(中核集团高可信计算重点实验室)
本文提出基于变异覆盖的层相对完整性准则,通过支持集支配边界确定何时类级抽象安全、何时需要变异级MR最小化,并证明Min-MR-Complete问题等价于集合覆盖问题。
2026-06-06 cs.DS cs.SE
Fault Localization via Fine-tuning Large Language Models with Mutation Generated Stack Traces
University of Cologne(科隆大学);SAP(思爱普);German Aerospace Center(德国航空航天中心)
针对生产环境中仅提供堆栈跟踪的软件崩溃,提出通过代码变异生成合成崩溃数据微调大型语言模型的故障定位方法,解决根本原因不在堆栈最内层的复杂情况,在多个数据库上取得显著优于基线的准确率。
2025-02-11 cs.LG cs.SE
Test suite effectiveness metric evaluation: what do we know and what should we do?
测试集有效性度量的比较一直是研究的热点。然而,以前的研究有不同的结论,甚至相互矛盾的比较不同的测试套件的有效性指标。我们发现最困扰我们社区的问题是,研究人员倾向于过度简化他们所使用的基本事实的描述。例如,一个常见的表达是“我们研究了真实故障和要评估的度量(MTE)之间的相关性”。然而,“真正的错误”的含义并不明确。因此,有必要仔细研究“真正的过失”的含义。如果没有这一点,它将对结论一知半解。为了应对这一挑战,我们提出了一个框架ASSENT(评估测试套件竞争力Ness meTrics),以指导后续研究。本质上,ASSENT由三个基本组件组成:地面实况,基准测试套件和协议指示器。首先,具体化地面真相,以确定测试套件之间的有效性的真实顺序。其次,生成一组基准测试集,并推导出它们的有效性的地面真值顺序。第三,对于基准测试套件,根据评估指标(MTE)生成有效性MTE顺序。最后,计算两个订单之间的一致性指标。在ASSENT下,我们能够比较不同测试套件有效性度量的准确性。我们应用ASSENT评估代表性的测试套件的有效性指标,包括突变评分指标和代码覆盖率指标。我们的研究结果表明,基于真实的故障,突变分数和包容突变分数是最好的度量,以量化测试套件的有效性。同时,通过使用突变体而不是真正的故障,MTEs将被高估超过20%的值。
2022-04-19 cs.SE
An Empirical Analysis of the Influence of Fault Space on Search-Based Automated Program Repair
自动程序修复(Automated program repair,APR)已经引起了广泛的研究关注,并且已经提出了各种技术。基于搜索的APR是这些技术中最重要的类别之一。现有的研究集中在设计有效的变异算子和搜索算法,以更好地找到正确的补丁。尽管有各种努力,这些技术的有效性仍然受到搜索空间爆炸问题的限制。这个问题的关键因素之一是现有研究报告的故障空间的质量。这促使我们研究故障空间的重要性,成功地找到一个正确的补丁。我们的实证研究旨在回答三个问题。故障空间是否与基于搜索的APR的性能显著相关?如果是,在应用昂贵的APR技术之前,是否有任何指示性测量来近似故障空间的准确性?有没有自动化的方法可以提高故障空间的精度?我们观察到,故障空间的准确性影响基于搜索的APR技术的有效性和效率,例如,即使正确的补丁在搜索空间中,当实际定位位置的等级低于10时,GenProg的失败率也可能高达$60\%$。此外,GenProg能够找到更多的正确补丁,并与更少的尝试时,给定的故障空间具有更高的精度。我们还发现,负突变覆盖率,这是在这项研究中被设计来衡量一个测试套件的能力,杀死突变的语句执行失败的测试,是最具指示性的测量,以估计基于搜索的APR的效率。最后,我们证实,自动生成的测试用例可以帮助提高故障空间的准确性,并进一步提高基于搜索的APR技术的性能。
2017-07-17 cs.SE
Keeping Mutation Test Suites Consistent and Relevant with Long-Standing Mutants
突变测试已经被证明是测试人员工具包中最强大的故障揭示工具之一。许多以前的工作隐含地假设它足以重新计算每个版本的突变套件。可悲的是,这使得突变结果不一致;每个版本的突变分数不能直接比较,这使得更难衡量测试的改进。此外,定期的代码更改意味着突变套件的相关性会随着时间的推移而自然降低。我们测量了4个非平凡系统中143,500个突变体的相关性,发现在过量时,52%降解。我们引入了突变脆性的措施,并使用它来审计软件系统和他们的突变套件。我们还演示了如何一致的建设长期存在的突变体套件可以确定一个任意的测试套件的突变体相关性的10倍的改善。我们的研究结果表明,研究界应避免重新计算突变体套件和重点,而是长期存在的突变体,从而提高突变测试的一致性和相关性。
2022-12-22 cs.SE
MutaBot: A Mutation Testing Approach for Chatbots
University of Milano-Bicocca(米兰比可卡大学)
本文提出面向对话式聊天机器人的变异测试工具 MutaBot,支持对话流、意图和上下文层级变异及 Dialogflow 平台,并通过三个机器人和 Botium 测试用例验证其可发现测试套件弱点。
2024-01-18 cs.AI cs.SE
Mutation Testing Optimisations using the Clang Front-end
变异测试是评估测试集故障检测能力的最新技术。不幸的是,一个完整的突变分析往往是昂贵的。例如,CppCheck项目在我们的台式计算机上需要5.8分钟的构建时间和17秒的测试执行时间。对55,000个生成的突变体进行未优化的突变分析总共花费了11.8天,其中4.3天用于(重新)编译项目。在本文中,我们提出了一个可行性研究,调查如何一些优化策略可以实施的Clang前端。这些优化策略允许消除编译和执行开销,以支持C语言家族的有效突变测试。我们提供了一个概念验证工具,可以实现2倍到30倍的加速。我们对优化引起的加速进行了详细的分析,详细阐述了经验教训,并指出了进一步改进的途径。
2022-10-31 cs.SE
Intent-Based Mutation Testing: From Naturally Written Programming Intents to Mutants
SnT, University of Luxembourg(卢森堡大学 SnT);Medtech, South Mediterranean University(南地中海大学 Medtech)
提出基于意图的变异测试,通过改变被测程序实现的编程意图来生成变异体,与传统测试不同,能捕获不同类型故障,用大语言模型实现并评估,可补充传统变异测试。
2026-07-07 cs.SE
Boosting LLMs for Mutation Generation
Beijing Jiaotong University(北京交通大学);Beijing Key Laboratory of Traffic Data Mining and Embodied Intelligence(北京市交通数据挖掘与具身智能重点实验室);Singapore Management University(新加坡管理大学);University College London(伦敦大学学院);University of Luxembourg(卢森堡大学);King’s College London(伦敦国王学院)
本文提出SMART方法,通过整合检索增强生成、代码片段分割和监督微调,提升变异生成的有效性和效率,实验显示其在变异有效性、非重复率和可编译率等方面均有显著提升。
2026-03-25 cs.SE