LittleDarwin: a Feature-Rich and Extensible Mutation Testing Framework for Large and Complex Java Systems
变异测试是一种被广泛研究的提高测试套件质量的方法。我们设计LittleDarwin作为一个突变测试框架,能够应付大型和复杂的Java软件系统,同时仍然很容易扩展新的实验组件。LittleDarwin解决了突变测试领域中存在的两个问题:拥有一个能够在工业环境中工作的工具,并且可以扩展学术界提供的尖端技术。LittleDarwin已经提供了高阶突变、空型突变体、突变体采样、手动突变和突变体包容分析。目前还没有一款工具具备所有这些功能,能够与典型的工业软件系统一起工作。
2017-07-04 cs.SE
MDroid+: A Mutation Testing Framework for Android
变异测试在评估测试套件的有效性方面表现出了很大的潜力,同时在测试用例生成、选择和优先级排序方面也表现出了额外的应用。传统的突变测试通常利用一组简单的语言特定的源代码转换(称为操作符)来引入错误。然而,实证研究表明,变异测试是最有效的,这些简单的运营商必须与特定的运营商在测试中的软件的域。突变测试应用的一个具有挑战性的软件领域是移动应用程序。虽然移动设备和附带的应用程序已成为现代计算的支柱,但其开发中使用的框架和模式使得测试和验证特别困难。为了帮助衡量和确保移动测试实践的有效性,我们引入了MDroid+,这是一个用于Android应用程序突变测试的自动化框架。MDroid+包括来自十种经验推导的Android故障类型的38个突变运算符,并已应用于为50多个应用程序生成8,000多个突变体。
2018-02-13 cs.SE
MMT: Mutation Testing of Java Bytecode with Model Transformation -- An Illustrative Demonstration
针对传统变异测试扩展复杂变异困难的问题,提出基于模型转换的Java字节码变异方法及工具MMT,支持修改面向对象结构等高级变异,是唯一支持此类变异的Java字节码变异测试工具。
2024-04-22 cs.SE
Practical Mutation Testing at Scale
突变分析通过测量测试集检测系统地植入到被测程序中的小的人工错误的能力来评估测试集的充分性。突变分析被认为是最强的测试充分性标准之一。突变测试建立在突变分析之上,是一种使用突变体作为测试目标来创建或改进测试套件的测试技术。突变测试长期以来一直被认为是棘手的,因为可以创建的突变体的绝对数量代表了一个不可逾越的问题-无论是在人力还是计算方面。这阻碍了突变测试作为行业标准的采用。例如,Google拥有20亿行代码的代码库,每天执行超过5亿个测试。传统的突变测试方法无法扩展到这样的环境。为了解决这些问题,本文提出了一种基于以下主要思想的可扩展的突变测试方法:(1)突变测试是增量式的,在代码评审过程中只对更改的代码进行突变,而不是对整个代码库进行突变;(2)突变体被过滤,去除可能与开发人员无关的突变体,并限制每行代码和每个代码评审过程中的突变体数量;(3)根据突变算子的历史表现选择突变体,进一步剔除无关突变体,提高突变体质量。在一个基于代码审查的环境中,超过24,000名开发人员对1,000多个项目进行了评估,结果表明,所提出的方法产生的突变体数量级减少,基于上下文的突变体过滤和选择提高了突变体的质量和可操作性。总的来说,所提出的方法代表了一个突变测试框架,无缝集成到软件开发工作流程,适用于大规模的工业环境。
2021-02-26 cs.SE
Timed Model-Based Mutation Operators for Simulink Models
基于模型的突变分析是最近的研究领域,实时系统测试可以受益于使用模型突变。基于模型的变异测试(MBMT)是基于模型测试的一个特殊分支。它使用变异算子生成模型的错误版本,以评估和改进测试用例。变异测试是保证软件正确性的一种有效方法,已被应用到各个应用领域。Simulink是一种重要的实时系统建模语言。本文介绍了Simulink模型突变分析,以改善模型在环(MIL)测试。提出了一组基于AUTOSAR的Simulink变异算子,该算子反映了Simulink模型映射到操作系统任务时的时间正确性。我们实现了一个突变框架,产生隐式时钟Simulink模型的突变体。最后,我们展示了这个框架如何产生突变体,以揭示模拟中的任务干扰问题。我们的工作集成了Simulink模型与定时系统,以更好地支持突变测试自动化。
2023-01-02 cs.SE
Goal-Oriented Mutation Testing with Focal Methods
变异测试是评估测试集故障检测能力的最新技术。不幸的是,突变测试消耗了巨大的计算资源,因为它为每个注入的突变体运行整个测试套件。在本文中,我们探讨细粒度的可追溯性链接在方法级(命名为焦点方法),以减少执行时间的突变测试,并验证每个单独的方法的测试用例的质量,而不是通常验证的整体测试套件的质量。我们的方法在开源Apache Ant项目上的验证显示,位于焦点方法中的突变体的速度提高了573.5倍,质量得分为80%。
2018-10-09 cs.SE
Design of Mutation Operators for Testing Geographic Information Systems
在这篇文章中,我们提出了特定的变异算子的定义测试地理信息系统。我们描述了应用运营商和生成突变体的过程,并提出了一个案例研究,这些突变运营商被应用到两个现实世界的应用。
2020-02-28 cs.SE
Mutation testing of smart contracts at scale
由于智能合约的不可变性,因此对其进行彻底测试至关重要。即使是智能合约中的小错误也可能导致巨大的金钱损失。然而,测试是不够的;确保测试的质量和完整性也很重要。已经有几种方法通过突变测试来应对这一挑战,但它们的有效性值得怀疑,因为它们只考虑了小的合同样本。因此,我们评估了大规模智能合约突变测试的质量。我们选择了现有的(智能合约特定的)突变算子中最有前途的,分析了它们在可重复性方面的有效性,并强调了可以注入突变的严重漏洞。此外,我们通过引入能够检测气体消耗中的偏差的新的杀死条件来改进现有的变异方法,即,执行交易所需的货币价值。本文在https://github.com/pieterhartel/Mutation-at-scale上有一个复制包
2020-01-22 cs.SE
Extreme mutation testing in practice: An industrial case study
变异测试用于评估测试集的有效性。近年来,出现了一种称为极端突变测试的有前途的变化,这种变化在计算上更便宜。它标识了可以完全删除其功能的方法,并且测试套件不会注意到它,尽管有覆盖率。这些方法被称为伪测试。在本文中,我们比较了传统和极端突变测试的执行和分析时间,并讨论了它们在实践中的意义。我们将研究极端突变测试如何影响当前的软件开发实践,并讨论需要解决的开放性挑战,以促进行业采用。为此,我们进行了一个工业案例研究,包括在半导体行业的一个大型软件项目中运行传统和极端突变测试,该项目由超过11,000个单元测试的测试套件覆盖。除此之外,我们还对25个伪测试方法进行了定性分析,并采访了两个有经验的开发人员,看看他们是如何编写单元测试的,并收集了关于极端突变测试结果的有用性的意见。我们的结果包括执行时间,分数,执行的测试和mutator的数量,为什么方法是伪测试的原因,以及采访摘要。我们的结论是,较短的执行和分析时间是很明显的,在实践中,极端的突变测试补充编写单元测试与代码覆盖工具。我们建议,伪测试的代码应突出显示在代码覆盖率报告,极端的突变测试应在编写单元测试,而不是在一个解耦的会话。未来的研究应该研究如何在编写单元测试时执行极端突变测试,以便结果足够快但仍然有意义。
2021-03-15 cs.SE
Fuzzing for CPS Mutation Testing
本文提出利用模糊测试为安全攸关CPS的C/C++软件生成变异测试数据,并通过在轨卫星组件实证表明其显著优于或可补充符号执行。
2023-08-15 cs.SE
Efficient Mutation Testing via Pre-Trained Language Models
变异测试是一种成熟的基于故障的测试技术。它通过在被测程序中播种错误并要求开发人员编写揭示这些错误的测试来运行。这些测试有可能揭示大量的故障-那些与种子故障耦合的故障-因此被认为是重要的。为了达到这个目的,突变测试应该播种那些在开发人员容易理解的意义上是“自然的”和强的(有很高的机会揭示错误)。为了实现这一点,我们建议使用预先训练的生成语言模型(即CodeBERT),这些模型能够生成类似于开发人员的代码,这些代码的操作与目标代码类似,但不完全相同。这意味着模型有能力播种自然故障,从而提供执行突变测试的机会。我们实现了这个想法,通过实施$μ$ BERT,突变测试技术,执行突变测试使用CodeBert和经验评估它使用689错误的程序版本。我们的研究结果表明,$μ$ BERT的故障揭示能力是高于一个国家的最先进的突变测试(PiTest),产生的测试,有高达17%的故障检测潜力比PiTest。此外,我们观察到$μ$ BERT可以补充PiTest,能够检测到PiTest遗漏的47个错误,而与此同时,PiTest可以找到$μ$ BERT遗漏的13个错误。
2023-01-09 cs.SE
Does mutation testing improve testing practices?
已经定义了测试质量的各种代理度量,以便在编写测试时指导开发人员。代码覆盖率在实践中特别好地建立起来,尽管覆盖率如何与测试质量相关的问题是一个正在进行的辩论。突变测试提供了一个有希望的替代方案:人工缺陷可以识别测试套件中的漏洞,从而为额外的测试提供具体的建议。尽管突变检测有明显的优势,但在实践中还没有很好地建立起来。直到最近,突变测试工具和技术还不能扩展到复杂的系统。虽然他们现在做规模,剩下的障碍是缺乏证据表明,编写测试的突变体实际上提高测试质量。在本文中,我们的目标是填补这一空白:通过分析近1500万个突变体的大型数据集,我们研究了这些突变体如何随着时间的推移影响开发人员,以及这些突变体如何与真正的故障相关。我们的分析表明,使用突变测试的开发人员编写更多的测试,并积极改善他们的测试套件与高质量的测试,使更少的突变。通过分析一个数据集的过去修复真正的高优先级的故障,我们的分析进一步提供证据,突变体确实与真正的故障。换句话说,如果突变测试被用于引入错误的更改,它将报告一个可以防止错误的活突变体。
2021-03-12 cs.SE
METFORD -- Mutation tEsTing Framework fOR anDroid
本文提出 Android 变异测试框架 METFORD,利用变异体模式集成传统与 Android 专用算子,显著降低时间、磁盘和碳足迹成本。
2025-01-12 cs.SE
Contextual Predictive Mutation Testing
提出MutationBERT,通过同时编码源方法变异体和测试方法捕获上下文,提升预测性变异测试精度,节省33%验证时间,并在同项目与跨项目设置中优于现有技术。
2023-09-05 cs.SE
LLMorpheus: Mutation Testing using Large Language Models
本文提出基于大型语言模型的变异测试技术 LLMorpheus,通过在源代码指定位置引入占位符并提示 LLM 生成替换内容,克服了传统固定变异算子难以模拟真实漏洞的局限,并能生成 StrykerJS 无法生成的变异体,证明了其实用性。
2025-03-07 cs.SE
Mutation Analysis: Answering the Fuzzing Challenge
模糊测试是软件测试中发展最快的领域之一。fuzzing背后的想法是针对大量随机生成的输入来检查软件的行为,试图覆盖输入空间的所有有趣部分,同时观察测试软件的异常行为。fuzzer用户面临的最大挑战之一是如何验证软件行为,以及如何提高所使用的oracle的质量。虽然变异分析是评价软件测试预言机质量的首要技术,但变异分数很少被用作评价模糊质量的度量。除非突变分析研究人员能够解决将突变分析应用于模糊测试的多个问题,否则突变分析可能会在测试和安全研究的最重要领域之一永久靠边站。本文试图了解应用变异分析评估模糊器的主要挑战,以便研究人员可以专注于解决这些挑战。
2022-02-12 cs.CR cs.SE
Enabling Mutation Testing for Android Apps
变异测试已被广泛用于评估测试套件的故障检测有效性,以及指导测试用例生成或优先级排序。经验研究表明,虽然突变体通常代表真实故障,但突变测试的有效应用需要为程序设计语言设计的“传统”运算符用特定于应用领域和/或技术的运算符来扩充。本文提出了MDroid+,一个有效的Android应用程序的突变测试框架。首先,我们通过手动分析来自不同来源的2,023个软件工件(例如,错误报告、提交)。然后,我们确定了一组38个变异算子,并实现了一个基础设施,用其中的35个算子在Android应用程序中自动播种变异。的分类和建议的运营商进行了评估方面的死产/平凡的突变体产生和他们的能力,代表真正的故障在Android应用程序中,相比其他众所周知的突变工具。
2017-08-01 cs.SE
Mutation Testing for Ethereum Smart Contract
智能合约是一种管理区块链上数字资产的特殊程序。如果用户通过有缺陷的智能合约进行交易,很难挽回损失,而这些智能合约无法直接修复。因此,在部署智能合约之前确保其正确性非常重要。本文提出了一个系统的框架,用于在以太坊上进行智能合约的突变测试,以太坊是目前最流行的部署和运行智能合约的开放区块链。在关键字、全局变量/函数、变量单位和错误处理方面,为以太坊智能合约(ESC)设计了15个新的突变算子。对四个以太坊DApp中的26个智能合约进行了实证研究,以评估突变测试的有效性。实验结果表明,我们的方法可以优于基于覆盖率的方法上的缺陷检测率(96.01%比55.68%)。ESC突变算子能够有效地揭示真实缺陷,我们发现729个真实缺陷报告中有117个与我们的算子相关。这些结果显示了突变检测在ESC质量保证中的巨大潜力。
2019-08-10 cs.SE
SuMo: A Mutation Testing Strategy for Solidity Smart Contracts
智能合约是在区块链基础设施中部署和执行的软件程序。由于其不可变的性质,直接由部署基础设施的特定特征导致,智能合约必须在发布之前进行彻底的测试。测试是有助于提高智能合约可靠性的主要活动之一,从而可能防止大量有价值资产的损失。因此,重要的是为测试人员提供允许他们评估他们执行的活动的工具。变异测试是评估测试集故障检测能力的一种有效方法。在本文中,我们提出了SuMo,一种用于以太坊智能合约的新型突变测试工具。SuMo实现了一组44个突变操作符,这些操作符是从最新的Solidity文档和著名的突变测试工具开始设计的。这些允许模拟智能合约开发人员可以制造的各种故障。这组操作符旨在限制死产突变体的生成,这会减慢突变测试过程并限制工具的可用性。我们报告的第一次评估SuMo的开源项目的测试套件。我们得到的结果是令人鼓舞的,它们表明SuMo可以有效地帮助开发人员提供更可靠的智能合约。
2021-05-08 cs.SE
Provably Lossless Acceleration of DNN Mutation Testing via Memoization
Auburn University(奥本大学);University of Utah(犹他大学);Google Research(谷歌研究院);Texas State University(德克萨斯州立大学)
研究针对深度神经网络变异测试成本高的问题,提出Mure框架,通过记忆化仅执行突变体变异后缀并重用原始模型公共前缀,实现可证明无损加速,实验证明其能有效降低计算成本,在高变异率下也有显著加速效果。
2026-07-22 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
Mull it over: mutation testing based on LLVM
本文介绍了Mull,一个基于LLVM框架的开源突变测试工具。Mull使用LLVM IR(一种低级中间表示)来执行变化,并使用LLVM JIT进行即时编译。这种设计选择实现了Mull的以下两个功能:语言独立性和对测试程序及其变化的编译和执行的细粒度控制。Mull可以使用任何支持编译到LLVM IR的程序设计语言编写的代码,例如C、C++、Rust或Swift。LLVM IR的直接操作允许Mull做更少的工作来生成突变:只有修改过的IR代码片段被重新编译,这导致了对突变程序的更快处理。据我们所知,没有现有的突变测试工具提供这些功能的编译程序设计语言。我们描述了Mull的算法和实现细节,突出了Mull当前的局限性,并提出了我们对真实世界的项目,如RODOS,OpenSSL,LLVM的Mull的评估结果。
2019-08-05 cs.SE
Towards Safety-Aware Mutation Testing for Autonomous Driving Systems
The University of Sheffield(谢菲尔德大学)
提出安全感知变异测试(SAMT),通过注入模块间消息故障模拟交互失效,基于STPA生成突变体,评估测试充分性并指导场景生成与系统修复。
2026-06-26 cs.SE
FORMT: Form-based Mutation Testing of Logical Specifications
该草案文件定义了一个系统,这是能够保持逻辑规范的测试用例的基础。规范,这是受这个系统从他们原来的形状在一阶逻辑转换为基于形式的表达式,最初介绍了在乔治斯宾塞-布朗的逻辑。创新来自系统在向规范注入故障(所谓的突变)时提供的操作。这里提出的系统适用于不同领域的逻辑规范,如编程,本体或硬件规范。
2010-02-03 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
DeepMutation: Mutation Testing of Deep Learning Systems
深度学习(DL)定义了一种新的数据驱动编程范式,其中内部系统逻辑在很大程度上由训练数据塑造。评估DL模型的标准方法是在测试数据集上检查它们的性能。测试数据集的质量对于获得训练模型的置信度非常重要。使用不充分的测试数据集,已经达到高测试精度的DL模型可能仍然缺乏通用性和鲁棒性。在传统的软件测试中,变异测试是一种成熟的测试集质量评估技术,它分析测试集在多大程度上检测到注入的错误。但由于传统软件与基于深度学习的软件存在根本性的区别,传统的变异测试技术无法直接应用于DL系统。在本文中,我们提出了一个变异测试框架专门用于DL系统来衡量质量的测试数据。为了做到这一点,通过分享传统软件中突变测试的相同精神,我们首先定义了一组源级突变算子来向DL的源注入故障(即,训练数据和训练程序)。然后,我们设计了一组模型级变异算子,直接将故障注入DL模型,而无需训练过程。最后,测试数据的质量可以从分析注入的故障可以被检测到的程度来评估。建议的突变测试技术的有用性证明了两个公共数据集,即MNIST和CIFAR-10,三个DL模型。
2018-08-14 cs.SE
How Multi-Modal LLMs Reshape Visual Deep Learning Testing? A Comprehensive Study Through the Lens of Image Mutation
本文首次全面评估了多模态大语言模型在视觉深度学习测试中生成图像变异的质量与适用性,发现其在“语义替换”变异上表现优异,是对传统图像变异的重要补充。
2024-12-21 cs.SE
Formal Analysis of Reachability, Infection and Propagation Conditions in Mutation Testing
本文提出一种基于Dijkstra最弱前置条件和rc函数的形式化方法,用于计算变异测试中的RIP条件,并通过四个程序案例验证其适用性。
2024-10-29 cs.SE
MuSe: a Mutation Testing Plugin for the Remix IDE
University of Salerno(萨莱诺大学)
本文提出 MuSe,一个为 Remix-IDE 提供突变测试的插件,包含传统、Solidity 特定和安全导向的突变操作符,降低开发者的入门门槛,用于评估测试套件的有效性并发现智能合约潜在问题。
2026-03-24 cs.SE
MuFF: Stable and Sensitive Post-training Mutation Testing for Deep Learning
本文提出MuFF,一种高效的后训练深度学习变异测试技术,通过自动化稳定性检查和两种新变异算子,生成稳定且灵敏的变异体,灵敏度较现有方法大幅提升,且速度快61倍。
2025-01-22 cs.SE
Investigating Coverage Guided Fuzzing with Mutation Testing
覆盖率引导模糊测试(CGF)是一种有效的测试技术,已经从各种软件应用程序中检测出数十万个错误。它专注于最大化代码覆盖率,以在模糊化过程中揭示更多的错误。然而,更高的覆盖率并不一定意味着更好的故障检测能力。触发一个错误不仅涉及到特定的程序路径,但也达到感兴趣的程序状态在该路径。在本文中,我们使用变异测试,以提高CGF在检测错误。我们使用变异分数作为反馈来指导模糊检测错误,而不仅仅是覆盖代码。为了评估我们的方法,我们在5个基准上进行了精心设计的实验。我们选择国家的最先进的模糊技术Zest作为基线,并构建两个修改后的技术,它使用我们的方法。实验结果表明,该方法可以提高CGF在代码覆盖率和错误检测。
2022-05-01 cs.SE
Mutation Testing of Simulink Cyber-Physical System Models: Challenges and Solutions in Practice
Universiteit Antwerpen(安特卫普大学);Flanders Make VZW(弗拉芒制造中心);DUCO (NV)(DUCO公司);Ege University(伊兹密尔经济大学)
本文结合建筑通风系统企业DUCO的试点项目,分析了将变异测试融入Simulink网络物理系统模型测试时面临的等价变异体等特殊挑战,为工业界应用该技术提供了实践参考。
2026-08-26 cs.SE
Simulink Mutation Testing using CodeBERT
本研究提出利用CodeBERT生成Simulink模型变异体的BERTiMuS方法,经工业基准测试验证,该方法可生成文献记载的变异模式,与现有工具FIM互补且在需求感知变异测试中表现更优。
2025-01-13 cs.SE
Dynamic Conformance Testing of WebGPU Through Specification-Driven Mutation
New Jersey Institute of Technology(新泽西理工学院)
提出LANTERN框架,通过从WebGPU规范提取语法和语义约束来变异一致性测试,在Chromium中发现包括堆损坏在内的三个可复现错误,验证了语义感知变异测试的有效性。
2026-09-23 cs.CR cs.SE
WITNESS: A lightweight and practical approach to fine-grained predictive mutation testing
针对现有细粒度预测变异测试依赖深度学习导致计算成本高、仅处理方法内部变异体的局限,提出轻量级方法WITNESS,支持方法内外变异体预测,提升效率且性能先进。
2025-11-15 cs.SE
Hybrid Fault-Driven Mutation Testing for Python
Simon Fraser University(西蒙菲莎大学);University of Ottawa(渥太华大学)
本文提出了一种基于静态和动态分析混合技术的Python变异测试方法,通过七种新的变异算子生成补充现有工具的变异体,提高测试覆盖率和发现缺陷的能力。
2026-07-22 cs.SE
MutaBot: A Mutation Testing Approach for Chatbots
University of Milano-Bicocca(米兰比可卡大学)
本文提出面向对话式聊天机器人的变异测试工具 MutaBot,支持对话流、意图和上下文层级变异及 Dialogflow 平台,并通过三个机器人和 Botium 测试用例验证其可发现测试套件弱点。
2024-01-18 cs.AI 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
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
Using Fourier Analysis and Mutant Clustering to Accelerate DNN Mutation Testing
针对DNN变异测试成本高的问题,提出DM#技术,通过傅里叶分析量化变异体行为并聚类,选取组代表测试复用结果,在低变异得分误差下实现显著加速,效果优于多种基线方法。
2025-10-03 cs.SE
muPRL: A Mutation Testing Pipeline for Deep Reinforcement Learning based on Real Faults
本文提出了muPRL,一个基于真实故障的深度强化学习变异测试流水线,通过代码库挖掘构建真实RL故障分类体系并推导出变异算子,实验证明其能有效区分强弱测试生成器,为开发者提供测试场景充分性的反馈。
2024-08-27 cs.SE
Cloud-Based Distributed Mutation Analysis
突变测试是一种基于故障的软件测试技术,对于工业应用来说,它的计算成本太高。基于云的分布式计算集群利用MapReduce编程范式,代表了一种可以减少长运行时间的方法。在本文中,我们描述了这样一个基于云的分布式突变测试系统的体系结构和原型实现。为了评估系统,我们比较了性能的原型,不同的集群大小,现有的“国家的最先进的”非分布式工具,PiT。我们还分析了不同的工作分配方法,以确定如何最有效地划分突变分析任务。我们的工具优于PiT,结果分析显示,有机会进一步大幅提高性能。
2016-01-28 cs.SE
FlakiMe: Laboratory-Controlled Test Flakiness Impact Assessment. A Case Study on Mutation Testing and Program Repair
许多关于软件测试的研究都隐含着这样的假设:测试失败是确定性的,它们总是见证相同缺陷的存在。然而,这种假设并不总是正确的,因为一些测试失败是由于所谓的测试失败,即,不确定结果的测试。不幸的是,重复测试对测试和依赖于测试的活动(如突变测试和自动程序修复)有很大的影响。为了解决这个问题,我们引入了一个测试片状评估和实验平台,称为FlakiMe,支持播种(可控)程度的片状到一个给定的测试套件的行为。因此,FlakiMe为研究人员提供了在实验室控制条件下调查测试片状性对其技术影响的方法。我们使用FlakiME报告案例研究的结果和见解,这些案例研究评估了片状性对突变测试和程序修复的影响。这些结果表明,5%的片状故障足以影响突变评分,但效果大小是适度的(2% - 4%),而它完全消除了程序修复修补50%的主题程序的能力。我们还观察到,flakiness具有特定于案例的效果,这主要会破坏许多测试所覆盖的bug的修复。此外,我们发现,最小量的用户反馈足以减轻片状的影响。
2019-12-06 cs.SE
Mutation Testing for Reproducibility Safeguards in Machine Learning Research Software: An Empirical Study
本研究以MLReproMutate为工具,对39个机器学习研究仓库开展实证研究,发现现有验证工作流仅能检测8.7%的可复现性相关突变,提出可复现性导向的突变测试作为补充评估方式。
2026-08-28 cs.SE
Mutation Testing as a Safety Net for Test Code Refactoring
重构是一种改进代码内部结构而不改变其外部行为的活动。当在生产代码上执行时,测试可以用于验证生产代码的外部行为是否被保留。然而,当对测试代码执行重构时,没有安全网来确保测试代码的外部行为得到保留。在本文中,我们建议采用突变测试作为一种手段,以验证测试代码的行为被重构后保留。此外,我们还展示了如何使用这种方法来识别部分的测试代码是不正确的重构。
2015-06-24 cs.SE
Towards Multi-Platform Mutation Testing of Task-based Chatbots
本文将对话变异测试方法 MUTABOT 扩展至 Dialogflow 与 Rasa,用以评估并揭示 Botium 生成测试套件的缺陷检测弱点。
2025-09-01 cs.SE
Towards Symbolic Model-Based Mutation Testing: Combining Reachability and Refinement Checking
基于模型的突变测试使用改变的测试模型来导出测试用例,这些测试用例能够揭示模型化的故障是否已经实现。这需要检查原始模型和变异模型之间的一致性。本文提出了一种用于动作系统的符号一致性检查的方法,该方法非常适合于指定反应式系统。我们还考虑在我们的模型中的非决定性。因此,我们不检查等价性,而是检查精化。我们编码的过渡关系,以及作为一个约束满足问题的一致性关系,并使用约束求解器在我们的可达性和细化检查算法。显式一致性检查技术经常面临状态空间爆炸。第一个实验评估表明,我们的方法有可能优于显式一致性检查。
2012-02-28 cs.SE
QuanForge: A Mutation Testing Framework for Quantum Neural Networks
Kyushu University(九州大学)
本文提出QuanForge,一种针对量子神经网络的变异测试框架,通过引入统计变异杀灭准则和九种变异操作符,有效区分测试套件并定位脆弱电路区域,评估其在噪声环境下的可行性。
2026-04-22 cs.AI cs.SE
A new perspective on the competent programmer hypothesis through the reproduction of bugs with repeated mutations
本研究通过变异链复现真实缺陷,检验胜任程序员假说,发现该假说成立但变异测试缺少关键算子。
2023-05-16 cs.SE
Model Driven Mutation Applied to Adaptative Systems Testing
动态自适应系统根据其周围环境的变化并根据自适应逻辑来修改其属性和结构。关键系统越来越多地包含动态适应能力,例如救灾和空间探索系统。在本文中,我们专注于自适应逻辑的突变测试。我们提出了一个故障模型的适应逻辑,分为环境的完整性和适应正确性的故障。由于有几种自适应逻辑语言依赖于相同的底层概念,故障模型表示独立于特定的自适应语言。利用模型驱动工程技术,我们表达这些共同的概念在一个元模型,并定义在这个级别上的变异算子的操作语义。突变被应用于模型元素和模型转换被用来传播这些变化到一个给定的适应政策,在所选择的形式主义。在自适应Web服务器上的初步结果突出了自适应系统杀死突变体的困难,因此难以生成有效的测试。
2012-05-25 cs.SE
A Formal Assisted Approach for Modeling and Testing Security Attacks in IoT Edge Devices
随着物联网设备数量的快速增长,这些系统的安全性成为一个主要问题。由于这些设备资源有限,安全措施难以在边缘实施。我们提出了一种基于形式化建模和突变测试的物联网设备攻击检测新方法。也就是说,我们将运动传感器和RFID阅读器等小型物联网设备的行为建模为具有超时的状态机。我们还对基本的物联网攻击进行了建模,即电池耗尽、睡眠剥夺、数据伪造、重放和中间人攻击,作为这些规范的特殊突变体。我们还考虑用于检测实际物理设备操作的测试。然后使用突变测试来导出将这些攻击与原始规范区分开的测试。通过对这些突变体进行测试,在真实环境中测试它们的行为。我们的实验表明,派生的攻击突变体和测试的数量是小的,因此这些测试可以执行多次,在物理设备上的开销有限。因此,我们的方法不会受到传统突变检测相关高成本的阻碍。此外,我们还表明,通过我们的方法得出的测试覆盖了所有物联网攻击,但没有提供使用传统的基于突变代码的算子得出的突变体的良好覆盖率,这表明需要使用我们的方法。一个框架,实现我们的方法,以及其他一些相关的案例研究。
2022-10-11 cs.CR cs.SE
Latent Mutants: A large-scale study on the Interplay between mutation testing and software evolution
本文通过跨版本变异测试提出“潜在变异体”概念,分析其在13个开源项目中的表现,并利用随机森林以86%准确率实现有效预测。
2025-01-03 cs.SE
What It Would Take to Use Mutation Testing in Industry--A Study at Facebook
传统上,突变测试会产生大量的程序小偏差,称为突变体。在Facebook这样规模的工业系统中,这样做是不可行的。我们不应该创建测试套件可能会失败的突变体,或者不给开发人员可操作的信号。为了解决这个问题,在本文中,我们半自动地从常见的Java编码错误语料库中学习错误诱导模式,并从导致Facebook操作异常的变化中学习。我们将突变与测量哪些测试恰好访问了突变的代码片段的检测相结合。超过15,000个生成的突变体的结果显示,超过一半的生成的突变体通过了Facebook严格的单元测试,集成测试和系统测试。此外,在一个有26名开发人员的案例研究中,除了两名开发人员之外,所有人都发现了自动检测到的测试漏洞的信息。因此,26人中几乎有一半会通过调整现有测试或创建新测试来对呈现给他们的突变体采取行动。其他人没有因为各种各样的原因,通常超出了突变测试的范围。如何将这些外部信息纳入突变体研究,以提高突变体的真实可操作性,这仍然是一个实际的挑战。
2021-01-27 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