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
Test Case Generation using Mutation Operators and Fault Classification
软件测试是软件开发过程的重要阶段。但是,软件开发人员很容易错过这个阶段,因为他们完成项目的时间有限。因为,软件开发人员在接近交付时间时完成了他们的软件;他们没有足够的时间通过创建有效的测试用例来测试他们的程序。.软件测试的主要困难之一是生成满足给定充分性准则的测试用例。此外,在最后的高峰时间,手工创建测试用例对于软件开发人员来说是一项繁琐的工作。一种新的生成测试用例的方法可以帮助软件开发人员在软件开发的早期阶段(编码之前)从软件规格说明中创建测试用例,以及从软件开发之后(编码之后)的程序执行跟踪中创建测试用例。启发式技术可以用于创建高质量的测试用例。变异测试是一种对软件单元进行测试的技术,对于提高测试质量、保证软件的高可靠性有着巨大的潜力。本文提出了一种基于变异测试的测试用例生成技术,从程序执行轨迹中生成测试用例,使测试用例可以在编码后生成。本文详细介绍了变异测试生成测试用例的实现方法。该算法已被证明是一个例子。
2010-02-10 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
A Model to Estimate First-Order Mutation Coverage from Higher-Order Mutation Coverage
测试集对于软件开发过程中的故障检测至关重要。一阶变异覆盖率是量化测试集质量的一个精确度量。然而,它在计算上是昂贵的。因此,这一指标的采用是有限的。在这项研究中,我们解决这个问题,提出了一个现实的模型,能够估计一阶突变覆盖率,仅使用高阶突变覆盖率。我们的研究显示了估计如何随着突变的顺序而演变。我们验证了该模型的实证研究的基础上,17个开源项目。
2016-10-05 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
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
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
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
Towards Symbolic Model-Based Mutation Testing: Combining Reachability and Refinement Checking
基于模型的突变测试使用改变的测试模型来导出测试用例,这些测试用例能够揭示模型化的故障是否已经实现。这需要检查原始模型和变异模型之间的一致性。本文提出了一种用于动作系统的符号一致性检查的方法,该方法非常适合于指定反应式系统。我们还考虑在我们的模型中的非决定性。因此,我们不检查等价性,而是检查精化。我们编码的过渡关系,以及作为一个约束满足问题的一致性关系,并使用约束求解器在我们的可达性和细化检查算法。显式一致性检查技术经常面临状态空间爆炸。第一个实验评估表明,我们的方法有可能优于显式一致性检查。
2012-02-28 cs.SE
Property-Based Mutation Testing
变异测试是一种成熟的软件质量保证技术,用于评估测试套件。虽然它非常适合于估计测试套件的一般故障揭示能力,但当被测软件必须针对特定需求进行验证时,它并不实用和提供信息。这通常是嵌入式软件的情况,其中软件通常根据严格指定的安全属性进行验证。在这种情况下,(i)只有当突变体可以影响测试特性的满足时,突变体才是相关的,以及(ii)只有当突变体导致违反该特性时,突变体才被有意义地杀死。为了解决这些限制的突变测试,我们介绍了基于属性的突变测试,一种方法,用于评估测试套件的能力,行使软件相对于一个给定的属性。我们评估我们的基于属性的突变测试框架的Simulink模型的安全关键的网络物理系统(CPS)从汽车和航空电子领域,并演示如何基于属性的突变测试比常规突变测试更翔实。这些结果为CPS的突变测试和测试用例生成开辟了新的视角。
2023-01-31 cs.SE
Effortless Fault Localisation: Conformance Testing of Real-Time Systems in Ecdar
实时的【形】系统的模型检验已经发展了很多年。最近,使用定时I/O自动机的模型检查器Ecdar被用于执行组合验证。然而,为了将实时的【形】系统的模型检验完全集成到工业开发中,我们需要一种有效且可靠的方法来测试这样的系统是否符合其相应的模型。因此,我们提出了一个扩展的Ecdar集成到一个新的IDE,现在功能建模,验证和测试的一致性测试。新的工具使用基于模型的突变测试,只需要模型和测试中的系统,定位故障,并证明某些类型的故障的存在。它支持使用实时的【形】或模拟时间进行测试。它将测试用例生成和测试执行并行化,以提供显著的加速。我们还引入了新的变异算子,提高了检测和定位故障的能力。最后,我们进行了一个案例研究与140故障系统,其中Ecdar检测所有故障。
2018-09-10 cs.LO cs.SE
TATG: Tracking-Aware Testing Objective for LLM-based Test Generation
University of Limerick(利默里克大学);University of Ottawa(渥太华大学)
针对复杂Java方法自动化单元测试生成难的问题,TATG提出基于大语言模型的单元测试生成方法,引入统一目标表示跟踪测试需求,采用两阶段工作流程,实验证明其相比其他方法有显著提升。
2026-07-07 cs.SE
LLMorpheus: Mutation Testing using Large Language Models
本文提出基于大型语言模型的变异测试技术 LLMorpheus,通过在源代码指定位置引入占位符并提示 LLM 生成替换内容,克服了传统固定变异算子难以模拟真实漏洞的局限,并能生成 StrykerJS 无法生成的变异体,证明了其实用性。
2025-03-07 cs.SE
What Are We Really Testing in Mutation Testing for Machine Learning? A Critical Reflection
变异测试是一种成熟的技术,用于通过将人工错误注入到生产代码中来评估测试套件的质量。近年来,突变测试已经扩展到机器学习(ML)系统,特别是深度学习(DL);研究人员已经提出了方法,工具和统计上合理的方法来确定DL系统中的突变体是否被杀死。然而,正如我们将在这项工作中讨论的那样,可以提出的问题是,目前在DL中使用的突变测试技术在多大程度上实际上符合突变测试的经典解释。我们观察到ML模型开发类似于测试驱动的开发(TDD)过程,其中训练算法(“程序员”)生成一个模型(程序),该模型将数据点(测试数据)拟合到标签(隐式断言),直到某个阈值。然而,考虑到在这种TDD隐喻下提出的ML系统的突变测试技术,在当前的方法中,生产代码和测试代码之间的区别是模糊的,并且突变操作符的现实性可能受到挑战。我们还考虑了经典突变测试的基本假设:有能力的程序员假设和耦合效应假设。正如我们将要说明的那样,这些假设并不能简单地转化为ML系统开发,需要更有意识和明确的范围和概念映射才能真正得出相似之处。根据我们的观察,我们提出了几个行动点,以便更好地将ML的突变测试技术与经典突变测试的范式和词汇表对齐。
2021-03-01 cs.SE
Breaking Models to Test the Judge: A Mutation Testing Approach for Semantic Evaluators of Domain Class Diagrams
Université de Montréal(蒙特利尔大学)
该研究针对领域类图语义评估器,提出一种变异测试方法,通过注入语义缺陷生成变体并评估评判器检测缺陷的能力,其结果与人工评估基本一致,可作为语义评判器分析的可扩展替代方案。
2026-08-17 cs.SE
Systematic Assessment of Fuzzers using Mutation Analysis
针对模糊测试工具效果评估难的问题,本文采用可合并多变异的现代变异分析技术,搭建评估基准,首次实现用变异分析评估模糊测试工具,实验发现现有工具检测变异比例低,为后续研究指明方向。
2023-07-25 cs.CR cs.SE