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
A Theoretical Framework for Understanding Mutation-Based Testing Methods
在突变分析领域,突变是突变程序的系统生成(即,变种人)从一个原始程序。变异的概念已被广泛应用于各种测试问题,包括测试集选择,故障定位和程序修复。然而,令人惊讶的是,很少有人关注基于突变的测试方法的理论基础,使得难以理解,组织和描述各种基于突变的测试方法。本文的目的是考虑一个理论框架来理解基于突变的测试方法。虽然一般测试有一个坚实的测试框架,但这与基于变异的测试方法不一致,因为它关注的是测试程序的正确性,而基于变异的测试的本质是测试程序(包括突变体)之间的差异。在本文中,我们开始我们的框架的建设,定义了一个新的测试因素,称为测试区分,转换测试的范式从正确性的概念,差异的概念。我们正式定义一组测试的程序的行为差异作为一个数学向量,称为d-向量。我们探索了由d-向量表示的多维空间,并提供了一个描述空间的图形模型。基于我们的框架和形式化,我们解释现有的基于突变的故障定位方法和突变集最小化的应用,并确定新的影响,为未来的工作。
2016-01-25 cs.SE
Assessing and Improving the Mutation Testing Practice of PIT
突变测试被广泛用于支持软件工程研究的实验。由于现代工具可以自动化整个突变分析过程,因此它可以应用于现实世界的项目。然而,流行的突变测试工具使用一组限制性的突变体,不符合突变测试文献所支持的社区标准。这可能是有问题的,因为突变的有效性取决于它的突变体。因此,我们研究如何有效的突变体的一个流行的突变测试工具,命名为PIT,相比全面的,从文献和个人经验。我们表明,全面的突变体是很难杀死和编码的故障没有被捕获的突变体的PIT的范围为11%至62%的Java类的考虑项目。
2016-01-11 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
Property-Based Mutation Testing
变异测试是一种成熟的软件质量保证技术,用于评估测试套件。虽然它非常适合于估计测试套件的一般故障揭示能力,但当被测软件必须针对特定需求进行验证时,它并不实用和提供信息。这通常是嵌入式软件的情况,其中软件通常根据严格指定的安全属性进行验证。在这种情况下,(i)只有当突变体可以影响测试特性的满足时,突变体才是相关的,以及(ii)只有当突变体导致违反该特性时,突变体才被有意义地杀死。为了解决这些限制的突变测试,我们介绍了基于属性的突变测试,一种方法,用于评估测试套件的能力,行使软件相对于一个给定的属性。我们评估我们的基于属性的突变测试框架的Simulink模型的安全关键的网络物理系统(CPS)从汽车和航空电子领域,并演示如何基于属性的突变测试比常规突变测试更翔实。这些结果为CPS的突变测试和测试用例生成开辟了新的视角。
2023-01-31 cs.SE
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
Detecting and Evaluating Order-Dependent Flaky Tests in JavaScript
本文针对 JavaScript 项目中 Jest 测试框架的顺序依赖型不稳定测试,提出系统化随机化重排检测方法,在 81 个项目中识别出 55 个顺序依赖型测试,并发现共享模拟状态这一新成因。
2025-01-22 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
Enabling Mutation Testing for Android Apps
变异测试已被广泛用于评估测试套件的故障检测有效性,以及指导测试用例生成或优先级排序。经验研究表明,虽然突变体通常代表真实故障,但突变测试的有效应用需要为程序设计语言设计的“传统”运算符用特定于应用领域和/或技术的运算符来扩充。本文提出了MDroid+,一个有效的Android应用程序的突变测试框架。首先,我们通过手动分析来自不同来源的2,023个软件工件(例如,错误报告、提交)。然后,我们确定了一组38个变异算子,并实现了一个基础设施,用其中的35个算子在Android应用程序中自动播种变异。的分类和建议的运营商进行了评估方面的死产/平凡的突变体产生和他们的能力,代表真正的故障在Android应用程序中,相比其他众所周知的突变工具。
2017-08-01 cs.SE
Automated Conformance Testing for JavaScript Engines via Deep Compiler Fuzzing
JavaScript(JS)是一种流行的、与平台无关的程序设计语言。为了确保JS程序在不同平台上的互操作性,JS引擎的实现应该符合ECMAScript标准。然而,这样做是具有挑战性的,因为API行为有许多微妙的定义,并且定义不断发展。我们提出了COMFORT,一个新的编译器模糊框架,用于检测JS引擎的错误和行为偏离ECMAScript标准。COMFORT利用基于深度学习的语言模型的最新进展,自动生成JS测试代码。与以前的模糊器不同,COMFORT利用结构良好的ECMAScript规范自动生成测试数据以及测试程序,以暴露开发人员或手动编写的测试用例可能忽略的错误。然后,COMFORT在生成的测试用例上应用差异测试方法,以暴露标准一致性错误。我们将COMFORT应用于十个主流JS引擎。在200小时的自动化并发测试运行中,我们发现了所有测试过的JS引擎中的错误。我们已经确定了158个独特的JS引擎错误,其中129个已经得到验证,115个已经被开发人员修复。此外,21个Comfort生成的测试用例已添加到Test262,官方ECMAScript一致性测试套件。
2021-04-15 cs.PL 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
Towards Understanding the Faults of JavaScript-Based Deep Learning Systems
质量保证对于深度学习(DL)系统非常重要,特别是当它们应用于安全关键型应用时。虽然本地DL应用程序的质量问题已被广泛分析,基于JavaScript的DL应用程序的问题从来没有被系统地研究。与原生DL应用程序相比,基于JavaScript的DL应用程序可以在主要浏览器上运行,从而使平台和设备无关。具体来说,基于JavaScript的DL应用程序的质量取决于3个部分:应用程序、使用的第三方DL库和底层DL框架(例如,TensorFlow.js),称为基于JavaScript的DL系统。在本文中,我们进行了第一次实证研究基于JavaScript的DL系统的质量问题。具体来说,我们从相关的GitHub存储库中收集并分析了700个真实世界的错误,包括官方的TensorFlow.js存储库,13个第三方DL库和58个基于JavaScript的DL应用程序。为了更好地理解这些故障的特征,我们分别手动分析和构建故障症状、根本原因和修复模式的分类。此外,我们还研究了症状和根本原因的故障分布,根据开发生命周期的不同阶段,DL系统中的3级架构和TensorFlow.js框架的4个主要组件。基于结果,我们提出了可行的影响和研究途径,可以潜在地促进基于JavaScript的DL系统的开发,测试和调试。
2022-09-11 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
WITNESS: A lightweight and practical approach to fine-grained predictive mutation testing
State Key Laboratory for Novel Software Technology, Nanjing University(南京大学软件新技术国家重点实验室);University of Luxembourg(卢森堡大学);Huawei Technologies Co., Ltd.(华为技术有限公司)
针对现有细粒度预测变异测试依赖深度学习导致计算成本高、仅处理方法内部变异体的局限,提出轻量级方法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
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
Using Fourier Analysis and Mutant Clustering to Accelerate DNN Mutation Testing
Auburn University(奥本大学);Google Research(谷歌研究)
针对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
OBsmith: LLM-Powered JavaScript Obfuscator Testing
University of Texas at Austin(德克萨斯大学奥斯汀分校)
OBsmith利用大语言模型系统测试JavaScript混淆器,发现11个正确性错误,凸显其在混淆诱导误操作方面的有效性。
2026-02-27 cs.AI cs.PL 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