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
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
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
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
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
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
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
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
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
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
MutaBot: A Mutation Testing Approach for Chatbots
University of Milano-Bicocca(米兰比可卡大学)
本文提出面向对话式聊天机器人的变异测试工具 MutaBot,支持对话流、意图和上下文层级变异及 Dialogflow 平台,并通过三个机器人和 Botium 测试用例验证其可发现测试套件弱点。
2024-01-18 cs.AI cs.SE
Investigating Coverage Guided Fuzzing with Mutation Testing
覆盖率引导模糊测试(CGF)是一种有效的测试技术,已经从各种软件应用程序中检测出数十万个错误。它专注于最大化代码覆盖率,以在模糊化过程中揭示更多的错误。然而,更高的覆盖率并不一定意味着更好的故障检测能力。触发一个错误不仅涉及到特定的程序路径,但也达到感兴趣的程序状态在该路径。在本文中,我们使用变异测试,以提高CGF在检测错误。我们使用变异分数作为反馈来指导模糊检测错误,而不仅仅是覆盖代码。为了评估我们的方法,我们在5个基准上进行了精心设计的实验。我们选择国家的最先进的模糊技术Zest作为基线,并构建两个修改后的技术,它使用我们的方法。实验结果表明,该方法可以提高CGF在代码覆盖率和错误检测。
2022-05-01 cs.SE
Identifying and Replicating Code Patterns Driving Performance Regressions in Software Systems
本研究通过文献回顾和挖掘真实代码变更模式,提出并评估新的性能变异算子,以增强性能测试套件检测性能回归的能力。
2025-04-08 cs.SE
Quality-Driven Selective Mutation for Deep Learning
Institute of Computer Science, University of Göttingen(哥廷根大学计算机科学研究所)
本文提出一种概率框架,通过电阻和现实性两个维度量化突变体质量,用于选择高质突变操作符配置,减少突变体生成和执行成本,同时保持突变体的有效性。
2026-04-24 cs.LG cs.SE
What Bugs Do Prolog Students Write? An Empirical Taxonomy and Data-Driven Mutation Framework
INESC-ID / IST, Universidade de Lisboa(里斯本大学);Artificial Intelligence Research Institute, Consejo Superior de Investigaciones Científicas(西班牙国家研究委员会人工智能研究所);Carnegie Mellon University(卡内基梅隆大学)
研究Prolog学生编写的错误类型,通过对7201份提交人工分类得出细粒度分类法,据此开发数据驱动的LogMorph变异工具,其操作符加权,评估显示合成错误分布与学生分布匹配,指出残留差异来源及改进方向。
2026-07-24 cs.LO cs.SE
On the Utility of Marrying GIN and PMD for Improving Stack Overflow Code Snippets
软件开发人员越来越依赖于问答门户和博客来编码解决方案。虽然这些接口提供了有用的信息,但有人担心这里托管的代码往往不正确,不安全或不完整。以前的工作确实通过使用静态分析在Stack Overflow上提供的代码中检测到了一系列错误。静态分析可能会对快速建立在线可用软件代码的健康状况大有帮助。此外,实现快速自动化程序改进的机制可以增强这样的代码。因此,我们提出了这个概念的证明。我们使用PMD静态分析工具来检测Stack Overflow Java代码片段样本的性能故障,然后使用GIN对这些代码片段执行突变。然后,我们重新分析GIN突变后这些片段中的性能故障。GIN的RandomSampler被用于对3,034个片段执行17,986个独特的行和语句补丁,其中PMD违规被从770个补丁版本中删除。我们的研究结果表明,静态分析技术可以与自动化程序改进方法相结合,以提高公共可用的代码很少的资源需求。我们将讨论我们在这方面的研究计划。
2022-02-03 cs.SE
Practical Mutation Testing at Scale
突变分析通过测量测试集检测系统地植入到被测程序中的小的人工错误的能力来评估测试集的充分性。突变分析被认为是最强的测试充分性标准之一。突变测试建立在突变分析之上,是一种使用突变体作为测试目标来创建或改进测试套件的测试技术。突变测试长期以来一直被认为是棘手的,因为可以创建的突变体的绝对数量代表了一个不可逾越的问题-无论是在人力还是计算方面。这阻碍了突变测试作为行业标准的采用。例如,Google拥有20亿行代码的代码库,每天执行超过5亿个测试。传统的突变测试方法无法扩展到这样的环境。为了解决这些问题,本文提出了一种基于以下主要思想的可扩展的突变测试方法:(1)突变测试是增量式的,在代码评审过程中只对更改的代码进行突变,而不是对整个代码库进行突变;(2)突变体被过滤,去除可能与开发人员无关的突变体,并限制每行代码和每个代码评审过程中的突变体数量;(3)根据突变算子的历史表现选择突变体,进一步剔除无关突变体,提高突变体质量。在一个基于代码审查的环境中,超过24,000名开发人员对1,000多个项目进行了评估,结果表明,所提出的方法产生的突变体数量级减少,基于上下文的突变体过滤和选择提高了突变体的质量和可操作性。总的来说,所提出的方法代表了一个突变测试框架,无缝集成到软件开发工作流程,适用于大规模的工业环境。
2021-02-26 cs.SE
Mutation-Guided LLM-based Test Generation at Meta
Meta Platforms(元平台公司);FAIR, Meta Platforms(元平台公司FAIR实验室)
Meta的ACH系统通过LLM生成针对特定问题的突变体及测试,强化代码防回归,应用于7个平台,生成9095个突变体和571个测试,工程师接受率达73%。
2025-01-22 cs.AI cs.LG cs.SE
Beyond Rule-Based Mutation Testing: Test-Aware Mutant Generation Using Large Language Models
University of Calgary(卡尔加里大学)
提出测试感知变异体生成方法,让LLM在提示中同时看到问题、解和基础测试,生成通过基础测试但被扩展测试捕获的真实缺陷,在HumanEval和MBPP上显著优于测试盲目提示和规则工具。
2026-09-30 cs.AI cs.SE
Using Mutation-Analysis to Examine an LLM's Ability to Summarize Code
University of Waterloo(滑铁卢大学);Carnegie Mellon University(卡内基梅隆大学)
提出基于变异分析的评估方法,通过注入代码突变并检查摘要是否更新,测试LLM摘要是否反映实际行为;实验表明摘要准确率随复杂度下降,模型常描述意图而非行为。
2026-06-29 cs.SE
Similar Pattern Annotation via Retrieval Knowledge for LLM-Based Test Code Fault Localization
University of Ottawa(渥太华大学);Research Ireland Lero Centre, University of Limerick(利默里克大学LERO研究中心);Huawei Technologies Co., Ltd.(华为技术有限公司)
本文提出SPARK框架,通过整合CI环境积累的调试知识,提升LLM在测试代码故障定位中的效率,实验表明其在复杂测试用例中能更准确识别故障位置。
2026-05-08 cs.SE
MIST-RL: Mutation-based Incremental Suite Testing via Reinforcement Learning
Fudan University, Shanghai, China(复旦大学);University of Science and Technology of China(中国科学技术大学);Xi'an Jiaotong University, Xi'an, China(西安交通大学);South China University of Technology, Guangzhou, China(华南理工大学)
MIST-RL通过强化学习优化测试生成,提升突变得分并减少测试用例数量,改进代码验证效果。
2026-03-02 cs.AI cs.LG cs.SE
Mutation Testing via Iterative Large Language Model-Driven Scientific Debugging
本文提出利用科学调试方法让大语言模型通过迭代假设与改进来生成针对变异体的测试,实验表明其缺陷检测能力和覆盖率均优于Pynguin等基线方法。
2025-03-11 cs.SE
Software Fault Localization Based on Multi-objective Feature Fusion and Deep Learning
针对传统软件故障定位方法特征多样性有限、精度低的问题,本文提出融合多目标特征选择与深度学习的新方法,通过提取三类故障特征并结合MLP和GRN模型,在Defects4J和PROMISE数据集上显著提升定位准确性、效率与泛化性。
2024-11-26 cs.SE
Teaching Loop Testing to Young Learners with the Code Critters Mutation Testing Game
本研究针对《Code Critters》变异测试游戏原有塔防玩法无法教授循环概念的局限,设计了整合循环测试的新关卡剧情,经29名中学生测试验证了参与度,并明确了教学改进方向。
2025-02-23 cs.SE
Mutation Testing in Evolving Systems: Studying the relevance of mutants to code evolution
当软件发展时,引入错误的机会出现了。因此,在每个演化周期中测试演化后的程序行为是非常重要的。我们进行了一项探索性研究,以调查提交相关突变体的性质,即,提交感知突变测试的测试元素,通过提供一般定义和实验方法来识别它们。因此,我们的目标是调查随着时间的推移,提交感知突变测试的流行率、位置、比较优势(即,程序演化)和几个与提交相关的特征的预测能力,以理解其尽力而为应用案例的基本属性。我们的方法利用突变体的影响和一个突变体对另一个突变体的影响来捕获和分析改变和未改变的代码部分之间的隐式交互。该研究分析了数百万个突变体(超过1000万),288个提交,五(5)个不同的开源软件项目,涉及超过68,213个CPU日的计算,并设置了我们执行分析的基础事实。我们的分析表明,提交相关的突变体主要位于程序提交更改之外(81%),而有效选择提交相关的突变体可以减少高达93%的突变体数量。此外,我们证明了提交相关的突变测试比最先进的基线更有效和高效。我们对突变体和提交相关特征在预测提交相关突变体中的预测能力的分析发现,大多数代理特征不能可靠地预测提交相关突变体。这项实证研究突出了提交相关的突变体的属性,并证明了识别和选择提交相关的突变体时,测试不断发展的软件系统的重要性。
2021-12-29 cs.SE
DeepMutants: Training neural bug detectors with contextual mutations
Carl von Ossietzky University Oldenburg(奥尔登堡卡尔·冯·奥西茨基大学)
基于学习的bug检测器承诺通过利用自然提示(如变量和函数的名称或注释)在大型代码库中发现bug。尽管如此,现有的技术往往表现不佳时,与现实的错误。我们认为缺陷检测器学习目前缺乏现实的有缺陷的训练样本。事实上,现实世界的错误是稀缺的,这使得现有的方法训练人工创造的,大多是不切实际的突变体。在这项工作中,我们提出了一种新的上下文突变算子,它结合了突变上下文的知识,动态注入自然和更现实的错误代码。我们的方法采用了一个掩蔽的语言模型,以产生一个上下文相关的分布在可行的令牌替换。评估表明,从语言模型采样不仅产生突变体,更准确地代表真正的错误,但也导致更好地执行错误检测器,无论是在人工基准测试和真实世界的源代码。
2021-07-14 cs.LG cs.SE
FLIMs: Fault Localization Interference Mutants, Definition, Recognition and Mitigation
本文提出MBFL-FLIM框架,通过识别和缓解干扰突变体提升故障定位效果,实验证明其在多故障场景中表现优异。
2025-11-28 cs.SE
Understanding and Detecting Scalability Faults in Large-Scale Distributed Systems
University of California, Davis(加州大学戴维斯分校);University of Chicago(芝加哥大学)
本文首次系统研究大规模分布式系统中的可扩展性故障,发现多数故障由维度代码片段与反模式协同导致,并提出ScaleLens方法,结合动态与静态分析检测此类故障,效果优于基线。
2026-07-01 cs.SE
DEFT: Differentiable Automatic Test Pattern Generation
Carnegie Mellon University(卡内基梅隆大学)
本文提出DEFT,一种将离散ATPG问题重新表述为连续优化任务的新ATPG方法,通过数学基础的重参数化对齐连续目标与离散故障检测语义,从而提高对难检测故障的测试有效性,实验表明其在多个基准上减少了测试模式数量并提高了故障检测能力。
2026-05-18 cs.SE
zkCraft: Prompt-Guided LLM as a Zero-Shot Mutation Pattern Oracle for TCCT-Powered ZK Fuzzing
zkCraft结合确定性R1CS感知本地化与证明承载搜索,通过编码候选约束编辑为Row-Vortex多项式,利用LLM驱动的突变模板检测语义不一致,降低误报并提升ZK电路开发的鲁棒性。
2026-07-23 cs.CR cs.SE
What Do AI Agents Actually Change? An Empirical Taxonomy of Mutation Patterns in Performance-Improving Pull Requests
Edinburgh Napier University(爱丁堡纳皮尔大学);University of Stirling(斯特林大学)
研究聚焦人工智能编码代理这一黑箱,通过对33596个代理拉取请求中1254个性能相关差异块进行分类,发现主导的三类突变模式,揭示代理身份和目标策略对缩小基于搜索的软件工程操作空间有参考价值。
2026-07-08 cs.AI cs.SE
MutDafny: A Mutation-Based Approach to Assess Dafny Specifications
INESC TEC, Faculdade de Engenharia, Universidade do Porto(波尔图大学工程学院);Faculdade de Engenharia, Universidade do Porto & LASIGE, Universidade de Lisboa(波尔图大学工程学院)
本文提出MutDafny工具,通过变异测试揭示Dafny规格中的缺陷,分析了40种变异算子,评估了794个真实Dafny程序,发现5个需要加强的弱规格。
2026-04-12 cs.PL cs.SE