Metamorphic Security Testing for Web Systems
安全测试验证软件系统的数据和资源是否受到攻击者的保护。不幸的是,它遭受了甲骨文问题,这是指在给定系统输入的情况下,区分正确和不正确行为的挑战。在测试潜在漏洞的许多情况下,测试预言机可能不存在,或者由于必须定义特定预言机的许多输入而不切实际。在本文中,我们提出了一种变形测试方法,解决了安全测试中的预言问题。它使工程师能够指定变形关系(MR),捕捉系统的安全属性。这样的MR然后用于自动化测试和检测漏洞。我们提供了一个目录的22个系统无关的MR自动化Web系统中的安全测试。我们的方法的目标是39%的OWASP安全测试活动没有自动化的国家的最先进的技术。它自动检测到12个漏洞中的10个,这些漏洞影响两个广泛使用的系统,一个是商业系统,另一个是开源系统(Jenkins)。
2019-12-11 cs.SE
A Declarative Metamorphic Testing Framework for Autonomous Driving
自动驾驶已经引起了工业界和学术界的广泛关注。目前,深度神经网络(DNN)被广泛用于自动驾驶中的感知和控制。然而,自动驾驶汽车引发的几起致命事故引发了人们对自动驾驶车型的严重安全担忧。最近的一些研究已经成功地使用变形测试技术来检测一些常用的自动驾驶模型中的数千个潜在问题。然而,先前的研究仅限于一小部分变形关系,这些变形关系不能反映丰富的真实交通场景,也不能自定义。本文提出了一种新的基于规则的声明式变形测试框架RMT。RMT提供了一个具有自然语言语法的规则模板,允许用户基于真实世界的流量规则和领域知识灵活地指定丰富的测试场景集。RMT使用基于NLP的规则解析器参考本体列表自动将人类编写的规则解析为变形关系,并使用各种图像转换引擎生成测试用例。我们在三个自动驾驶模型上评估了RMT。通过丰富的变形关系集,RMT检测到大量先前工作未检测到的异常模型预测。通过对Amazon Mechanical Turk的大规模人体研究,我们进一步证实了RMT生成的测试用例的真实性和检测到的异常模型预测的有效性。
2022-09-23 cs.SE
Exploring a Test Data-Driven Method for Selecting and Constraining Metamorphic Relations
本文提出MetaTrimmer,一种基于测试数据选择和约束蜕变关系的方法,通过生成测试数据、记录违规和手动检查推导约束,避免了复杂预测模型,并与高级模糊测试无缝集成,初步评估显示其能增强MR有效性。
2023-07-28 cs.SE
Metamorphic Coverage
The Chinese University of Hong Kong, Shenzhen(香港中文大学(深圳));National University of Singapore(新加坡国立大学)
研究针对变质测试中代码覆盖不准确、变异测试成本高的问题,提出变质覆盖(MC)度量。在五种变质测试方法上评估MC,发现其与错误修复位置重叠度高,比行覆盖更敏感且耗时少,用于反馈指导时比代码覆盖能多发现错误,可广泛应用于评估和改进测试。
2026-07-17 cs.SE
AutoMT: A Multi-Agent LLM Framework for Automated Metamorphic Testing of Autonomous Driving Systems
针对自动驾驶系统蜕变测试依赖人工、自动化不足的问题,提出由LLM驱动的多智能体框架AutoMT,可自动提取蜕变关系、生成测试用例,测试多样性和违规检测率均优于人工基线,可集成工业流程覆盖关键场景。
2025-10-22 cs.SE
METAMON: Finding Inconsistencies between Program Documentation and Behavior using Metamorphic LLM Queries
METAMON结合基于搜索的测试生成、LLM代码推理、蜕变测试和自一致性,自动检测代码文档与程序行为之间的不一致,在9,482对样本上达到0.72精确率和0.48召回率。
2025-02-05 cs.SE
Automated identification of metamorphic test scenarios for an ocean-modeling application
GEOMAR, Helmholtz Centre for Ocean Research(亥姆霍兹海洋研究中心);Kiel University(基尔大学)
变形测试试图在没有测试预言机的情况下验证软件。我们的应用领域是海洋建模,测试预言机往往不存在,但在模拟的物理系统的对称性是已知的。在这篇简短的论文中,我们提出了正在进行的工作,使用机器学习自动生成的变形测试场景。变形测试可以表示为f(g(X))=h(f(X)),其中f是被测应用,具有输入数据X,并且具有变形关系(g,h)。自动生成的变形关系可用于构造回归测试,以及用于比较同一软件应用程序的不同版本。这里,我们限制h为恒等映射。然后,构建测试的任务意味着找到我们使用机器学习算法处理的不同g。这些算法通常最小化成本函数。由于已知一个可能的g是恒等映射,为了找到第二个可能的g,我们构造了代价函数,以最小化g是变态关系,并惩罚g是恒等映射。在识别出第一变形关系之后,利用与先前找到的变形关系正交的代价函数来奖励g,重复该过程。为了进行实验评估,两个实现的海洋建模应用程序将受到所提出的方法与变形关系的使用,以测试应用程序的实现的目的。
2020-09-03 cs.LG cs.SE
A Two-phase Metamorphic Approach for Testing Industrial Control Systems
我们详细介绍了一种用于测试工业控制系统的变形方法。所提出的方法包括两个阶段:一个探索阶段,我们了解故障模式的测试下的系统和开发阶段,观察到的故障模式用于有针对性的测试。我们的方法提取的变形关系和输入空间的系统从它的要求。用于测试的种子输入从系统的执行日志中提取,并用于自动生成源测试和后续测试。变形的输入基于种子输入来构造,并使用一组约束来细化。以位置控制系统为例,结果表明该方法能有效地发现故障,提高了系统的自动化水平。
2022-08-19 cs.SE cs.SY eess.SY
Quality Assurance of Bioinformatics Software: A Case Study of Testing a Biomedical Text Processing Tool Using Metamorphic Testing
生物信息学软件在许多领域(包括医学和卫生保健)的关键决策中发挥着非常重要的作用。然而,大多数研究都是针对开发工具,很少有时间和精力花在测试软件,以确保其质量。在测试中,测试预言用于确定测试在测试过程中是通过还是失败,不幸的是,对于大多数生物信息学软件来说,确切的预期结果并没有很好地定义。因此,与对生物信息学软件进行系统测试相关的主要挑战是Oracle问题。变形测试(MT)是一种用于测试面临预言机问题的程序的技术。MT使用变形关系(MR)来确定测试是通过还是失败,并根据对输入的特定更改指定输出应如何更改。在这项工作中,我们使用MT来测试LingPipe,这是一种使用计算语言学处理文本的工具,通常用于生物信息学中从生物医学文献中识别生物实体。首先,我们确定一组MR用于测试任何生物实体识别程序。然后,我们开发了一组测试用例,可用于测试LingPipe的生物实体识别功能,使用这些MR。为了评估这个测试过程的有效性,我们自动生成一组LingPipe的错误版本。根据我们对实验结果的分析,我们观察到我们的MR可以检测到这些错误版本中的大多数,这表明了这种测试技术在生物信息学软件质量保证中的实用性。
2018-02-20 cs.SE
Towards Generating Executable Metamorphic Relations Using Large Language Models
本文提出一种基于大型语言模型和少样本提示策略,从需求自动推导可执行蜕变关系的方法,实验证明其生成的蜕变关系具有高准确性和实用价值。
2024-10-11 cs.SE
A Replication Study on Predicting Metamorphic Relations at Unit Testing Level
变形测试(MT)通过检查测试执行的输入和输出之间的关系来解决测试预言问题。这种关系被称为变形关系(MR)。在目前的实践中,识别和选择合适的MR通常是一项具有挑战性的手动任务,需要彻底掌握SUT及其应用领域。因此,Kanewala等人提出了预测变形关系(PMR)方法,以从六个预定义MR的列表中自动建议MR,用于测试新开发的方法。PMR基于一个分类模型,该模型是根据从100个Java方法的控制流图(CFG)中提取的特征进行训练的。在我们的复制研究中,我们探讨了PMR的普遍性。首先,我们重建了整个预处理和训练管道,并在一个紧密的复制中重复原始研究,以验证报告的结果,并为进一步的实验奠定基础。第二,我们执行概念复制,以探索在第一步中从Java方法训练的PMR模型的可重用性,用于在Python和C++中实现功能相同的方法。最后,我们从Python和C++方法的CFG上重新训练模型,以研究对程序设计语言和实现细节的依赖性。我们能够成功地复制原始研究,实现Java方法集的可比结果。然而,基于Java的分类器的预测性能显着降低时,应用到功能等效的Python和C++方法,尽管只使用CFG功能,从语言细节抽象。由于性能再次提高时,分类器上写在Python和C++的方法的CFG进行再训练,我们得出结论,PMR的方法可以推广,但只有当分类器的开发从使用的程序设计语言中的代码文物开始。
2022-05-31 cs.SE
Bug or not Bug? Analysing the Reasons Behind Metamorphic Relation Violations
本文针对蜕变测试中MR违反原因难以判断的问题,开发了一种利用关联规则挖掘(ARM)技术细化MR的方法,以区分违反是由Bug引起还是MR不匹配,并通过概念验证证明了该方法能有效加强回归测试的测试套件。
2023-05-16 cs.SE
Investigating Metamorphic Fuzz Oracle Enhancement via Large Language Models
Tsinghua University(清华大学)
提出基于大语言模型的MetaFOE框架,自动生成和集成蜕变关系以增强模糊测试预言,在OSS-Fuzz驱动上平均提升18.7%边覆盖并触发1528个独特崩溃。
2026-06-15 cs.CR cs.SE
AIM: Automated Input Set Minimization for Metamorphic Security Testing
针对蜕变安全测试因输入集规模大导致测试效率低的问题,提出AIM方法,通过聚类、遗传算法和问题约简实现输入集最小化,在Jenkins和Joomla上可缩短80%以上测试时间且保持检测能力,漏洞覆盖率优于现有基线。
2024-10-24 cs.CR cs.SE
MR-Scout: Automated Synthesis of Metamorphic Relations from Existing Test Cases
The Hong Kong University of Science and Technology(香港科技大学);The University of Auckland(奥克兰大学)
MR-Scout通过分析开源项目中的测试用例自动合成元变换关系,提升测试覆盖率和变异评分,验证了其在自动化测试中的有效性。
2026-04-11 cs.SE
Multi-Agent LLM-based Metamorphic Testing for REST APIs
Åbo Akademi University(阿博阿卡迪米大学)
提出ARMeta方法,利用基于LLM的多智能体工作流自动识别蜕变测试场景并生成可执行测试,以解决REST API测试中的预言问题。
2026-05-27 cs.AI cs.SE
Metamorphic Testing of Large Language Models for Natural Language Processing
University of Auckland(奥克兰大学)
本文提出了一种针对大型语言模型的变形测试方法,通过收集和实验191个变形关系,评估了变形测试在自然语言处理任务中的有效性与局限性。
2025-11-03 cs.AI cs.SE
Metamorphic Testing of Vision-Language Action-Enabled Robots
Mondragon University(蒙达龙大学);University of Seville(塞维利亚大学);Simula Research Laboratory(Simula研究实验室)
本文探讨元测试能否缓解视觉-语言-动作机器人测试 oracle 问题,提出两种关系模式和五种关系,通过实验证明其有效性,并展示其在不同任务和机器人上的通用性。
2026-03-17 cs.RO cs.SE
MetaDetect: Metamorphic Testing Based Anomaly Detection for Multi-UAV Wireless Networks
针对多无人机WANET异常难以提前预测的问题,提出基于蜕变测试的MetaDetect方法,仅利用物理层和Mac层数据自动识别异常事件,并发现物理层传输速率指标性能最佳。
2023-12-07 cs.NI cs.SE stat.ME
MR-Adopt: Automatic Deduction of Input Transformation Function for Metamorphic Testing
The Hong Kong University of Science and Technology(香港科技大学);Guangzhou HKUST Fok Ying Tung Research Institute(广州香港科技大学霍英东研究院);The University of Auckland(奥克兰大学)
MR-Adopt通过自动推导输入转换函数,使元形态关系能够重用新输入提升测试充分性,实验显示其在测试覆盖率和变异评分上有显著提升。
2026-04-11 cs.SE
MR-Coupler: Automated Metamorphic Test Generation via Functional Coupling Analysis
The Hong Kong University of Science and Technology(香港科学与技术大学);Guangzhou HKUST Fok Ying Tung Research Institute(广州HKUST傅以刚研究所);University of Auckland(奥克兰大学)
本文提出MR-Coupler,通过源代码中易于获取的方法功能耦合关系自动构建元形关系并生成元形测试用例,有效提高了测试用例的有效性并减少误报。
2026-04-17 cs.AI cs.SE
LLMORPH: Automated Metamorphic Testing of Large Language Models
University of Auckland(奥克兰大学)
LLMORPH通过形变测试技术自动检测大型语言模型输出不一致问题,无需人工标注数据,适用于多种NLP任务和模型评估。
2026-03-24 cs.AI cs.CL cs.LG
MetaSpace: Metamorphic Testing for Spatial Cognition in Embodied Agents
Hong Kong University of Science and Technology(香港科技大学)
MetaSpace是评估具身智能体空间认知的框架,基于变形测试原则生成测试用例,在三个场景中检测到SOTA MLLM驱动智能体的90422个空间认知错误,其SC分数远低于人类基准。
2026-08-11 cs.AI cs.SE
Multi-Agent Specification-based Metamorphic Testing of FMU-Based Simulations
University of Turku, Finland(图尔库大学,芬兰);Novia University of Applied Sciences, Finland(诺维亚应用科学大学,芬兰)
针对FMU仿真模型中缺乏显式预期输出导致传统测试方法受限的问题,提出一种基于LLM的多智能体工作流,从规范和接口中自动提取蜕变关系并生成测试用例,在润滑油冷却系统FMU上验证了其有效性。
2026-05-24 cs.AI cs.SE cs.SY
Toward Systematic Counterfactual Fairness Evaluation of Large Language Models: The CAFFE Framework
Gran Sasso Science Institute(格兰萨索科学研究所);University of Salerno(萨莱诺大学)
CAFFE框架通过结构化和意图感知的方法系统评估大型语言模型的反事实公平性,提升了公平性检测的广度和可靠性。
2025-12-18 cs.SE
METAL: Metamorphic Testing Framework for Analyzing Large-Language Model Qualities
The University of Adelaide(阿德莱德大学)
本文提出 METAL 蜕变测试框架,利用可自动生成的模块化蜕变关系及融合 ASR 与语义质量的新指标,系统评估三类主流 LLM 在多任务上的质量属性与风险。
2023-12-11 cs.AI cs.CL cs.SE
Search-based Selection of Metamorphic Relations for Optimized Robustness Testing of Large Language Models
The University of Adelaide(阿德莱德大学);Simula Research Laboratory(Simula研究实验室)
本文提出基于搜索的变异关系组优化方法,最大化故障检测并最小化执行成本,实验表明MOEA/D算法最优,并发现银弹MRs。\n
2025-07-08 cs.AI cs.NE cs.SE
Automatically Removing Unnecessary Stubbings from Test Suites
本文提出ARUS技术,通过执行测试识别并基于特征自动移除测试套件中不必要的存根,在128个Java项目中实现98.6%解决率,时间成本可忽略且代码复杂性增加有限。
2024-07-30 cs.SE
One evaluation of model-based testing and its automation
基于模型的测试依赖于行为模型来生成模型跟踪:实现的输入和预期输出-测试用例。我们使用的汽车网络控制器的案例研究,以评估不同的测试套件的错误检测,模型覆盖率和实现覆盖率。这些套件中的一些是自动生成的,有模型和没有模型,纯粹是随机的,并有专门的功能测试选择标准。其他套件是手动导出的,有或没有手头的模型。自动和手动派生的基于模型的测试套件检测到显着更多的需求错误比手工制作的测试套件,直接从需求。检测到的编程错误的数量并不取决于模型的使用。自动生成的基于模型的测试套件检测到的错误与手工制作的基于模型的套件检测到的错误一样多。基于模型的测试数量增加了六倍,导致检测错误增加了11%。
2017-01-24 cs.SE
Automatically Assessing and Extending Code Coverage for NPM Packages
典型的Node.js应用程序广泛依赖于npm注册表中托管的包。由于这些包可能被成千上万的其他包或应用程序使用,因此评估它们的代码覆盖率非常重要。此外,增加代码覆盖率可能有助于检测以前未知的问题。在本文中,我们介绍了TESA,这是一个新的工具,可以为npm注册表中的任何包自动组装测试套件。测试套件包括1)为目标包编写的测试,通常托管在其开发存储库中,以及2)从依赖包中选择的测试。前一种测试允许评估目标包的代码覆盖率,而后一种测试可以通过利用也在目标包中执行代码的第三方测试来增加代码覆盖率。我们使用TESA来评估500个流行的npm包的代码覆盖率。然后,我们证明,TESA可以显着增加代码覆盖率,包括测试依赖包。最后,我们表明,TESA组装的测试套件增加了现有的动态程序分析的有效性,以确定性能问题时,只执行开发人员的测试是检测不到的。
2021-05-14 cs.SE
Humanizing Automatically Generated Unit Test Suites with LLM-Based Refactoring
University of Luxembourg(卢森堡大学);Nanjing University of Science and Technology(南京理工大学);Zhejiang University(浙江大学);Bilkent University(比尔肯特大学);Singapore Management University(新加坡管理大学)
提出TestHumanizer混合方法,利用LLM对SBST生成的测试套件进行受控重构,提升可读性和可维护性,同时保持编译和覆盖率,实验表明重构后编译率接近100%,可读性显著提升。
2026-07-02 cs.SE
Combining Dynamic Symbolic Execution, Machine Learning and Search-Based Testing to Automatically Generate Test Cases for Classes
本文讨论了一种自动生成面向对象程序测试用例的新技术。在现有技术中,生成足够多的完整测试用例集的问题尚未得到满意的解决。有多种技术可以自动生成测试用例(随机测试、基于搜索的测试等)。但每个人都有自己的弱点本文提出了一种结合动态符号执行、基于搜索的测试和机器学习的方法,有效地生成完整的类级测试集。通过一些实验获得的初步数据证实,我们正朝着正确的方向前进。
2020-05-19 cs.SE
Production Monitoring to Improve Test Suites
在本文中,我们建议使用生产执行,以提高测试质量的某些方法感兴趣的开发人员。这些方法可以是现有测试套件未涵盖的方法,也可以是测试较差的方法。我们设计了一种称为PANKTI的方法,它可以监控应用程序在生产中执行,然后自动生成差分单元测试,以及从收集到的数据派生的预言机。PANKTI的监控和生成集中在一种程序设计语言Java上。我们评估它的三个现实世界中,开源项目:视频会议系统,PDF操作库,和电子商务应用程序。我们表明,PANKTI是能够产生差分单元测试通过监测目标方法在生产中,所产生的测试,提高质量的测试套件的应用程序正在考虑。
2021-07-28 cs.SE
Meta-Fair: AI-Assisted Fairness Testing of Large Language Models
Universidad de Sevilla(塞维利亚大学);Mondragon University(蒙德拉贡大学)
Meta-Fair通过元测试法和LLM能力,实现大型语言模型的自动化公平性测试,揭示偏见并提高评估一致性。
2026-01-12 cs.SE
Dynamic Analysis can be Improved with Automatic Test Suite Refactoring
上下文:开发人员设计测试套件来自动验证软件是否满足其预期行为。许多动态分析技术都是利用测试用例中的执行痕迹进行分析的。然而,在实践中,只有一个跟踪是由一个手动编写的测试用例的执行产生的。目的:本文提出了一种新的测试用例重构技术,称为B-重构。B-重构背后的思想是将测试用例分割成小的测试片段,这些测试片段覆盖控制流的更简单部分,以便为动态分析提供更好的支持。方法:对于一个给定的动态分析技术,我们的测试套件重构方法监测测试用例的执行,并确定小的测试用例,而不损失的测试能力。我们应用B-重构,以协助两个现有的分析任务:自动修复的if语句错误和自动分析的异常合同。结果:实验结果表明,测试集重构可以有效地简化测试集的执行痕迹。三个现实世界的错误,以前不能修复与原始测试套件后,应用B-重构修复;同时,异常合同更好地验证通过应用B-重构到原始测试套件。结论:应用B-重构可以有效地提高测试用例的纯度。现有的动态分析任务可以通过测试套件重构来增强。
2015-06-05 cs.SE
Reliable Mining of Automatically Generated Test Cases from Software Requirements Specification (SRS)
编写需求是一个双向的过程。在本文中,我们使用分类功能需求(FR)和非功能需求(NFR)的声明,从软件需求规格说明(SRS)文件。这是系统地转化为考虑所有相关信息的状态图。目前的文件概述了如何测试用例可以自动生成这些状态图。状态的应用产生不同的测试用例作为规划问题的解决方案。测试用例可用于系统级的自动或手动软件测试。提出了一种利用挖掘方法对测试用例进行约简的方法,从而方便了测试用例的挖掘和知识提取。
2010-02-05 cs.SE
Can defects be fixed with weak test suites? An analysis of 50 defects from Defects4J
自动程序修复技术,其目标是自动生成正确的补丁,为现实世界的缺陷,在过去的十年中,得到了很多的关注。已经提出和开发了许多不同的技术和工具。然而,即使是最复杂的程序修复技术也只能修复一小部分缺陷,同时产生大量不正确的补丁。这种低性能的一个可能原因是,真实世界程序的测试套件通常太弱,无法保证程序的行为。为了了解弱测试套件可以在多大程度上修复缺陷,我们分析了来自Defects4J的50个真实世界的缺陷,其中我们发现高达84%的缺陷可以被正确修复。这一结果表明,目前的自动程序修复技术有很大的改进空间。此外,我们总结了七个故障定位策略和七个补丁生成策略,是有用的定位和修复这些缺陷,并比较这些策略与当前的修复技术。研究结果表明,在未来的研究中,提高自动程序修复的潜在方向。
2017-05-12 cs.SE
Many Independent Objective (MIO) Algorithm for Test Suite Generation
自动生成测试套件本质上是一个多目标问题,因为任何测试目标(例如,要执行的语句或要杀死的突变体)本身就是一个目标。测试套件生成的特点是完全不同于其他更经常的优化问题。例如,给定一个现有的测试套件,可以添加更多的测试来覆盖剩余的目标。人们希望最小数量的小测试能够覆盖尽可能多的目标,但是与首先覆盖这些目标相比,这是一个次要目标。此外,软件测试中的目标数量可能很快变得难以管理,数量级为(数万/数十万),特别是对于工业规模系统的系统测试。传统的多目标优化算法已经可以开始与四个或五个目标进行优化。为了克服这些问题,已经提出了不同的技术,例如整体测试套件(WTS)方法和多目标排序算法(MOSA)。然而,这些技术可能无法很好地扩展到非常大量的目标和有限的搜索预算(系统测试中的典型情况)。在本文中,我们提出了一种新的算法,称为多独立目标(MIO)算法。该算法是根据测试用例集生成的特点设计和裁剪的。在一组人工软件和实际软件上的实证研究表明,MIO算法可以实现更高的覆盖率相比,WTS和MOSA,因为它可以更好地利用测试套件生成的特点。
2019-01-06 cs.SE
VART: A Tool for the Automatic Detection of Regression Faults
在本文中,我们提出了VART,一个自动揭示回归测试套件错过的回归故障的工具。有趣的是,VART并不局限于导致崩溃或异常的故障,而是可以揭示导致违反应用程序特定正确性属性的故障。VART通过结合静态和动态程序分析来实现这一目标。
2017-08-07 cs.SE
Suggestions on Test Suite Improvements with Automatic Infection and Propagation Analysis
一个极端的转换移除了至少一个测试用例所到达的方法主体。如果测试套件通过了原始程序,并且在极端转换之后仍然通过,则转换被称为未检测到,并且测试套件需要改进。在这项工作中,我们提出了一种技术,以自动确定以下三个原因,防止检测的极端变换是:测试输入不足以感染状态的程序;感染不传播到测试用例;测试用例有一个弱的预言,不观察感染。我们已经开发了Reneri,一个工具,观察程序的测试和测试套件,以确定原始和转换方法的测试运行之间的运行时差异。分析过程中收集的观察结果由Reneri处理,以向开发人员提出可能的改进建议。我们对Reneri的15个项目进行了评估,总共有312个未被发现的极端转换。该工具能够为每个未检测到的转换生成建议。对于63%的情况,现有的测试用例可以感染程序状态,这意味着未检测到的转换主要是由于可观察性和弱Oracle问题。对开发人员的采访证实了所建议的改进的相关性,并且使用最先进的自动测试生成工具进行的实验表明,没有工具可以改进现有的测试套件来修复所有未检测到的转换。
2019-09-10 cs.SE
Augmenting unit test suites from integration tests
Athens University of Economics and Business(雅典大学经济与商业学院);University of Ioannina(约阿尼纳大学)
本文提出利用静态和动态分析生成单元测试的方法,针对测试金字塔结构不合规的测试套件,通过集成测试生成隔离的组件依赖测试,提升覆盖率和故障定位能力。
2026-05-07 cs.SE
Automatic Repair of Real Bugs: An Experience Report on the Defects4J Dataset
Defects4J是一个大型的、同行评审的、结构化的Java bug数据集。Defects4J中的每个bug都提供了一个测试套件和至少一个触发bug的失败测试用例。在本文中,我们报告了一个实验,以探讨自动修复缺陷4J的有效性。我们的实验结果表明,缺陷4J数据集的47个错误可以通过最先进的修复自动修复。这为Java自动修复的未来研究奠定了基础。我们手动分析了84个不同的补丁,以评估它们的真实正确性。总的来说,9个真正的Java bug可以通过基于测试套件的修复来正确修复。该分析表明,基于测试套件的修复遭受未指定的错误,其中琐碎和不正确的补丁仍然通过测试套件。就实用性而言,找到一个补丁平均需要14.8分钟。实验是在科学网格上进行的,总共计算时间为17.6天。他们所有的系统和实验结果都在Github上公开,以方便未来对自动修复的研究。
2015-12-23 cs.SE
Can Pairwise Testing Perform Comparably to Manually Handcrafted Testing Carried Out by Industrial Engineers?
测试是工业软件工程中的一项重要活动。对于这样的软件,测试通常是手动执行的手工制作测试套件的基础上特定的设计技术和特定领域的经验。为了支持开发人员进行测试,已经提出了不同的方法来生成良好的测试套件。在过去的几年中,组合测试已经被探索,其目标是基于一定的策略自动组合软件的输入值。成对测试是一种组合技术,用于通过改变系统的每对输入参数的值直到创建这些参数的所有可能组合来生成测试套件。有一些证据表明,这类技术是有效的,相对较好地检测软件故障。不幸的是,几乎没有实验证据的比较,这些组合测试技术,被认为是严格的手工制作的测试。在这项研究中,我们比较成对的测试套件与手动创建的测试套件的工程师为45个工业程序。测试套件进行了评价的故障检测,代码覆盖率和测试数量。这项研究的结果表明,成对测试,而实现高代码覆盖率和故障检测的大多数程序是有用的,几乎是有效的手动测试在故障检测方面。结果还表明,在64%的程序中,成对测试在故障检测方面与手动测试一样好。
2017-06-06 cs.SE
SWE-Mutation: Can LLMs Generate Reliable Test Suites in Software Engineering?
State Key Laboratory of Cognitive Intelligence(认知智能国家重点实验室);University of Science and Technology of China(中国科学技术大学);Beihang University(北航);School of Mathematical Sciences, Peking University(北京大学数学科学学院);NeoShell AI;Institute of Artificial Intelligence, Hefei Comprehensive National Science Center(合肥综合性国家科学中心人工智能研究院)
本文提出SWE-Mutation基准,用于评估LLM生成的测试套件质量,通过系统性地变异解决方案来测试测试套件的可靠性,并发现当前LLM在生成可靠且具有判别力的测试套件方面存在不足。
2026-05-21 cs.AI cs.SE
Automatic Repair of Buggy If Conditions and Missing Preconditions with SMT
我们提出了Nopol,一种自动修复错误的方法,如果条件和缺少先决条件。作为输入,它采用一个程序和一个测试套件,其中包含通过测试用例建模的预期行为的程序和至少一个失败的测试用例体现的错误要修复。它包括从多个仪表测试套件执行中收集数据,将这些数据转换为可满足性模理论(SMT)问题,并将SMT结果(如果存在)转换为源代码补丁。Nopol修复面向对象的代码,并允许补丁包含空性检查以及特定的方法调用。
2014-04-11 cs.SE
Exploring the Link Between Test Suite Quality and Automatic Specification Inference
虽然没有人怀疑正确和完整的规范的重要性,但许多工业系统仍然没有正式的规范-即使他们这样做了,也很难检查其正确性和完整性。这项工作探讨了使用一个不变的提取工具,如Daikon自动推断规格,从可用的测试套件的想法,帮助软件工程师,以改善规范,有另一个版本进行比较的可能性。鉴于我们最初的实验并没有产生令人满意的结果,在本文中,我们将探讨哪些测试套件属性影响质量的推断规范。进一步研究发现,指令、分支和方法覆盖率与高召回率相关,最高可达97.93%。
2017-08-24 cs.LO cs.SE
FDG: A Precise Measurement of Fault Diagnosability Gain of Test Cases
许多故障定位(FL)技术的性能直接取决于所使用的测试套件的质量。因此,它是非常有用的,能够精确地测量有多少诊断能力,每个测试用例可以引入时,添加到用于FL的测试套件。这样的措施可以帮助我们不仅优先考虑和选择测试用例用于FL,但也有效地增强测试套件,太弱,不能与FL技术。我们提出了FDG,一个新的措施的故障诊断增益为个人的测试用例。FDG的设计是基于我们对现有指标的分析,这些指标旨在优先考虑测试用例,以获得更好的FL。与其他指标不同,FDG利用正在进行的FL结果来强调需要更多信息的程序部分。我们对FDG与Defects4J的评估表明,它可以成功地帮助增强测试套件,以获得更好的FL。(平均2.3个测试用例),FDG可以通过对EvoSuite自动生成的测试用例进行优先级排序来有效地增强给定的测试套件:增强可以将FL结果的acc@1和acc@10平均提高11.6倍和2.2倍,在EvoSuite生成的断言的正确性上仅需要十次人工判断之后。
2022-05-24 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
Data-driven Mutation Analysis for Cyber-Physical Systems
信息物理系统(CPS)通常由一组广泛的集成,异构组件,因此,他们的大部分关键故障涉及到这些组件的互操作性。不幸的是,大多数CPS测试自动化技术是初步的,行业仍然严重依赖于手工测试。对于可能不完整的、手动生成的测试套件,评估其质量是至关重要的。虽然变异分析已被证明是一种有效的手段来评估测试套件的质量在某些特定的情况下,我们缺乏的方法,CPS。事实上,现有的方法不针对互操作性问题,不能在黑箱或模拟组件的存在下执行,这是CPS的典型情况。在本文中,我们介绍了数据驱动的突变分析,一种方法,包括在评估测试套件的质量,验证它是否检测到互操作性故障模拟突变的数据交换的软件组件。为此,我们描述了一种数据驱动的突变分析技术(DaMAT),自动改变通过数据缓冲区交换的数据。我们的技术是由故障模型驱动的表格形式,工程师指定如何通过选择和配置一组变异运算符变异数据项。我们在空间领域用CPS对DaMAT进行了评估;具体而言,是去年在轨道上发射的微型卫星和纳米卫星软件系统的测试套件。我们的研究结果表明,该方法有效地检测测试套件的缺点,是不受等效和冗余突变,并需要可接受的成本。
2022-10-05 cs.SE
Automatically Generating Single-Responsibility Unit Tests
本文研究基于单一职责原则为自动生成的单元测试引入预处理结构,以提升测试可理解性,同时保持覆盖率与故障检测能力。
2025-04-10 cs.SE
On Introducing Automatic Test Case Generation in Practice: A Success Story and Lessons Learned
Università di Milano-Bicocca(米兰-比科卡大学);USI Università della Svizzera Italiana(瑞士意大利语区大学);SIT Schaffhausen Institute of Technology(沙夫豪森理工学院)
自动化的水平和质量极大地影响着软件测试活动,决定了测试过程的成本和有效性,并在很大程度上影响着最终产品的质量。虽然在工业实践中自动化许多测试活动(包括管理质量过程,执行大型测试套件,管理回归测试套件)的成本和好处是很好的理解和记录,在工业实践中自动生成系统测试套件的好处和障碍还没有很好的报告,尽管最近的自动化测试用例生成工具的进展。用于自动生成测试用例的专有工具在大型软件组织中正在成为常见的实践,并且商业工具也可用于某些应用领域和测试级别。然而,在中小型软件公司中,生成系统测试用例在很大程度上仍然是一种手工的、低效的和临时的活动。本文报告了我们的经验,介绍了自动生成系统测试套件的技术在一个中型公司。我们描述的技术和组织的障碍,我们在公司的开发过程中引入自动测试用例生成时所面临的,并提出了解决方案,我们成功地经历了在这种情况下。特别是,本文讨论了自动生成测试用例的问题,通过参考定制的ERP应用程序,中型公司开发的第三方跨国公司,并提出了ABT2.0,测试用例生成器,我们开发的剪裁ABT,一个研究国家的最先进的GUI测试生成器,他们的工业环境。本文介绍了ABT2.0的新功能,并讨论了这些新功能如何解决我们面临的问题。
2021-02-28 cs.LG cs.SE
Developer-Centric Test Amplification The Interplay Between Automatic Generation and Human Exploration
软件测试用例的自动生成是一个非常活跃的研究课题。虽然当前的工具可以生成强大的回归或崩溃再现测试用例,但这些测试用例通常与维护的测试套件分开保存。在本文中,我们利用开发人员对现有的手动编写的开发人员测试中放大的测试用例的熟悉程度。从开发人员在以前的研究中报告的问题开始,我们调查了哪些方面是重要的设计一个以开发人员为中心的测试放大方法,提供测试用例,由开发人员接管到他们的测试套件。我们进行了16个半结构化的采访与软件开发人员支持我们的原型设计的以开发人员为中心的测试放大方法和相应的测试探索工具。我们扩展了测试放大工具DSpot,生成更容易理解的测试用例。我们的IntelliJ插件TestCube使开发人员能够从他们熟悉的环境中探索放大的测试用例。从我们的访谈中,我们收集了52个观察结果,总结为23个结果类别,并就未来的工具设计师如何使他们的工具更适合以开发人员为中心的测试放大给出了两个关键建议。
2021-08-27 cs.SE
Automatic Test Suite Generation for Key-Points Detection DNNs using Many-Objective Search (Experience Paper)
University of Luxembourg(卢森堡大学);University of Ottawa(渥太华大学);IEE S.A.(IEE公司);Post Luxembourg(卢森堡邮政)
自动检测关键点的位置(例如,面部关键点或手指关键点)是许多应用中的基本问题,例如自动驾驶系统中的驾驶员注视检测和困倦检测。随着深度神经网络(DNN)的最新进展,关键点检测DNN(KP-DNN)已经越来越多地用于该目的。尽管如此,KP-DNN测试和验证仍然是一个具有挑战性的问题,因为KP-DNN同时预测许多独立的关键点-其中每个关键点在目标应用中可能是关键的-并且图像可以根据许多因素而变化很大。在本文中,我们提出了一种方法来自动生成测试数据的KP-DNN使用多目标搜索。在我们的实验中,专注于为工业汽车应用开发的面部关键点检测DNN,我们表明我们的方法可以生成测试套件,平均超过93%的关键点严重预测错误。相比之下,基于随机搜索的测试数据生成只能严重误判其中的41%。然而,这些错误预测中有许多是无法避免的,因此不应被视为失败。我们还经验比较国家的最先进的,多目标的搜索算法和它们的变种,为测试套件生成量身定制。此外,我们研究并演示了如何学习特定的条件,基于图像特征(例如,头部姿势和皮肤颜色),这会导致严重的预测错误。这些条件作为风险分析或DNN再培训的基础。
2021-05-25 cs.CV cs.SE
Test-based Patch Clustering for Automatically-Generated Patches Assessment
本文提出轻量级基于测试的补丁聚类方法xTestCluster,通过新生成测试用例的执行行为对多APR工具生成的补丁进行聚类,使开发者仅需分析每个聚类的样本,中位数减少50%的补丁审查量,显著降低验证成本并揭示补丁行为差异。
2024-08-27 cs.SE