Generalized Coverage Criteria for Combinatorial Sequence Testing
针对以动作与断言序列为测试向量的系统,提出广义序列覆盖准则、测试套件生成工具及贝叶斯风险量化框架,并实证验证其缺陷发现、风险评估与覆盖效果。
2023-10-31 cs.SE
REST API Fuzzing by Coverage Level Guided Blackbox Testing
随着Web应用程序的增长,REST API已成为服务之间的主要通信方法。为了保证系统的可靠性和安全性,软件质量可以通过有效的测试方法来保证。黑盒模糊测试是进行大规模测试的有效方法之一。然而,传统的黑盒模糊测试产生随机数据而不判断输入的质量。我们为REST API实现了一个黑盒模糊测试方法。通过测试覆盖水平反馈,解决了在不知道突变有效性的情况下盲目突变的问题。我们还通过降低REST API的测试复杂度来增强变异策略,生成更合适的测试用例来覆盖可能的路径。我们通过测试两个大型开源项目来评估我们的方法,并报告和确认了89个错误。此外,我们在APIs.guru中发现了来自64个远程API服务的351个错误。该工作在https://github.com/iasthc/hsuan-fuzz上。
2021-12-31 cs.SE
Basis Path Coverage Criteria for Smart Contract Application Testing
智能合约的广泛认可确立了其在下一代区块链技术领域的重要性。然而,编写正确的智能合约是非常困难的。此外,一旦网络确认了状态改变事务,结果是不可变的。因此,在部署之前对智能合约应用程序进行全面测试至关重要。本文的重点是智能合约的测试覆盖标准,这是衡量测试质量的客观规则。我们分析了以太坊智能合约程序模型与传统程序模型相比的独特特征。为了捕捉智能合约的基本控制流行为,我们提出了全事务基路径集和有界事务交互的概念。前者是一组有限的线性独立的过程间路径,从中可以通过线性组合构建以太坊交易的潜在无限路径,而后者是交易在一定范围内的排列。基于这两个概念,我们定义了一个家庭的基于路径的测试覆盖标准。给出了覆盖需求的生成算法。最后通过一个案例分析比较了所提出的测试覆盖准则与随机测试和语句覆盖测试的有效性。
2019-11-24 cs.SE
Increasing System Test Coverage in Production Automation Systems
介绍了一种支持测试技术人员识别全集成自动化生产系统(aPS)控制软件可能未测试行为的方法。基于一种引导式半自动系统测试方法,在测试过程中记录执行轨迹,允许后续的覆盖评估。由于aPS的行为高度依赖于软件,因此可以识别遗漏的系统行为并评估其重要性。通过与工业界的密切合作,这种方法代表了第一种用于生产自动化系统测试的覆盖率评估方法,可应用于实际工业对象,并由工业专家进行评估。
2022-12-07 cs.SE
Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times
针对Linux内核补丁测试中现有配置方案构建耗时长且难保证补丁覆盖的问题,提出krepair方法,仅对快速构建但补丁覆盖差的配置做少量修改,即可实现平均98.5%的补丁覆盖率,同时保持构建速度比最大覆盖配置快10.5倍。
2024-04-27 cs.SE
CoCoFuzzing: Testing Neural Code Models with Coverage-Guided Fuzzing
基于深度学习的代码处理模型在预测方法名称、总结程序和注释生成等任务上表现出了良好的性能。然而,尽管取得了巨大的进步,但深度学习模型往往容易受到对抗攻击,这可能会导致这些模型对意外输入的错误分类,从而严重威胁到这些模型的鲁棒性和可推广性。为了解决上述问题,已经提出了许多深度学习测试方法,然而,这些方法主要集中在测试图像、音频和文本分析等领域中的深度学习应用,由于程序的独特性质,其不能直接应用于神经模型以用于代码。在本文中,我们提出了一个基于覆盖率的模糊框架CoCoFuzzing,用于测试基于深度学习的代码处理模型。特别是,我们首先提出了十个变异算子自动生成有效的和语义保持源代码的例子作为测试,然后我们提出了一个基于神经元覆盖的方法来指导测试的生成。我们研究了CoCoFuzzing在三种最先进的神经代码模型上的性能,即,NeuralCodeSum、CODE2SEQ和CODE2VEC。我们的实验结果表明,CoCoFuzzing可以生成有效的和语义保留的源代码的例子,用于测试这些模型的鲁棒性和泛化能力,并提高神经元的覆盖率。此外,这些测试可用于通过对抗性再训练来提高目标神经代码模型的性能。
2021-06-17 cs.SE
Coverage-Guided Testing for Deep Learning Models: A Comprehensive Survey
本文全面综述了深度学习模型的覆盖引导测试(CGT)方法,包括测试覆盖率分析、输入生成与优化,并系统分类了现有方法、评估实践及未来挑战,为DL模型质量保证提供路线图。
2025-07-01 cs.SE
Code Coverage Aware Test Generation Using Constraint Solver
代码覆盖率已用于软件测试环境中,主要作为评估生成的测试套件质量的指标。最近,代码覆盖分析被用作测试优化的白盒测试技术。大多数的研究活动集中在使用代码覆盖率的测试优先级和自动化测试策略中的选择。在文献中,使用代码覆盖率进行测试生成的努力较少。本文提出了一种新的基于代码覆盖率的测试用例生成(CCTG)的概念,通过在测试生成过程中利用代码覆盖率分析来改变现有的做法。CCTG使用代码覆盖率数据来计算输入参数对约束求解器的影响,以自动生成有效的测试套件。我们将这种方法应用于一些现实世界的案例研究。实验结果表明,新的测试生成方法能够生成有效的测试用例,并能检测出新的故障。
2020-09-07 cs.SE
Model-based Automated Testing of JavaScript Web Applications via Longer Test Sequences
JavaScript已成为Web开发中使用最广泛的语言之一。然而,由于动态和事件驱动的特性,确保用JavaScript编写的Web应用程序的正确性和可靠性是具有挑战性的。针对JavaScript Web应用程序的动态分析技术已经有很多种,但它们在覆盖范围和可扩展性方面都有局限性。在本文中,我们提出了一种基于模型的自动化方法,通过测试较长的事件序列,在合理的时间内实现高代码覆盖率。我们将我们的方法实现为工具LJS,并在21个公开的基准测试(总共18,559行代码)上进行了广泛的实验。LJS平均在10分钟内达到86.4%的行覆盖率,比基于广度优先搜索的自动化测试工具JSDep高5.4%。特别是,在大型应用程序中,LJS的覆盖率比JSDep高11- 18%。我们的经验发现支持更长的测试序列可以实现更高的代码覆盖率在JavsScript测试。
2019-05-19 cs.SE
Mind the Gap: The Difference Between Coverage and Mutation Score Can Guide Testing Efforts
提出预言差距(覆盖率与变异分数之差)框架,通过三项研究证明其能揭示测试工作的范围和质量,帮助从业者识别弱预言测试重要代码的文件。
2023-09-05 cs.SE
Coverage Criteria for Model-Based Testing using Property Patterns
本文提出了一种基于模型的测试方法,旨在从UML/OCL模型和给定的测试属性生成测试用例。该属性使用基于模式的专用形式主义表示,并自动转换为自动机。我们提出了新的自动机覆盖标准,我们考虑的属性自动机量身定制。这些标准是基于与原始属性相关的转换的相关子集的覆盖率,旨在产生说明属性中描述的系统动态的测试用例。此外,我们建议产生测试用例,可以确保系统的鲁棒性w.r.t.属性,通过改变属性自动机,以试图引发属性禁止的事件。这种方法已被实施到一个大型的工具集,并已在工业研究项目的背景下,对现实的案例研究进行了实验。
2014-03-28 cs.SE
Presentation Proposal: Towards Efficient Data-flow Test Data Generation Using KLEE
数据流覆盖率是白盒测试的标准之一,它关注变量定义与其使用之间的关系,一些实证研究证明了数据流测试比控制流测试更有效。然而,由于缺乏有效的工具支持,数据流测试在实践中仍然没有得到采用。为此,我们提出了一个指导符号执行的方法来有效地搜索程序路径,以满足数据流覆盖标准。我们在KLEE上实现了这种方法,并用30个程序主题进行了评估,这些程序主题是由以前的数据流测试文献、SIR、SV-COMP基准中使用的主题构建的。此外,我们正计划将数据流测试技术集成到新提出的符号执行引擎SmartUnit中,SmartUnit是一种基于云的工业软件单元测试服务,支持基于覆盖率的测试。已成功帮助国内多家知名企业和机构在实践中采用基于覆盖率的测试,累计测试了超过百万行的行业真实代码。
2019-03-19 cs.SE
Fine-grained Code Coverage Measurement in Automated Black-box Android Testing
今天,有数百万的第三方Android应用程序。这些应用程序中有一些是错误的,甚至是恶意的。为了识别这些应用程序,包括Google在内的Android社区正在开发用于自动化黑盒测试和动态分析的新框架。代码覆盖率是评估这些框架有效性的最常见指标之一。此外,代码覆盖率被用作指导进化和模糊测试技术的适应度函数。然而,在黑盒Android应用程序测试中,没有可靠的工具来测量细粒度的代码覆盖率。我们提出了Android代码覆盖工具,简称ACVTool,它可以检测Android应用程序,并在类,方法和指令粒度的黑盒设置中测量代码覆盖率。在我们的实验中,ACVTool已经成功检测了96.9%的应用程序。它引入了一个可以忽略不计的插装时间开销,并且它的运行时开销对于自动化测试工具来说是可以接受的。我们在一个大规模的实验与Sapienz,一个国家的最先进的测试工具,细粒度的预防级别的代码覆盖率ACVTool提供的帮助,发现了更大的故障比粗粒度的代码覆盖率指标。
2018-12-27 cs.CR cs.SE
TATG: Tracking-Aware Testing Objective for LLM-based Test Generation
University of Limerick(利默里克大学);University of Ottawa(渥太华大学)
针对复杂Java方法自动化单元测试生成难的问题,TATG提出基于大语言模型的单元测试生成方法,引入统一目标表示跟踪测试需求,采用两阶段工作流程,实验证明其相比其他方法有显著提升。
2026-11-09 cs.SE
Reinforcement Learning-Based REST API Testing with Multi-Coverage
本文提出基于Q-learning的REST API测试方法MUCOREST,通过最大化代码覆盖率和输出覆盖率提升缺陷发现能力,实验表明其缺陷发现数量比现有方法高11.6%-261.1%,且所需API调用更少。
2024-10-20 cs.SE
Testing SSD Firmware with State Data-Aware Fuzzing: Accelerating Coverage in Nondeterministic I/O Environments
针对SSD固件在非确定性I/O环境下传统测试覆盖率提升缓慢的问题,提出状态数据感知模糊测试方法,利用内部状态引导输入生成,实验证明在保持相同覆盖率和缺陷检测能力的同时可减少约67%的命令开销。
2025-05-05 cs.SE
On the Effectiveness of Modular Testing with EvoSuite
Bryn Mawr College(布林茅尔学院)
本文探讨了Java面向对象程序中模块化随机测试的有效性,提出emote改进方法,通过放松限制提升目标方法的分支覆盖率。
2026-04-29 cs.SE
SmartUnit: Empirical Evaluations for Automated Unit Testing of Embedded Software in Industry
在本文中,我们针对嵌入式软件的自动化单元覆盖率为基础的测试。为了实现这一目标,通过分析工业需求和我们以前在自动化单元测试工具CAUT上的工作,我们重新构建了一个新的工具SmartUnit,以解决我们合作伙伴公司的工程需求。SmartUnit是一个动态符号执行实现,支持语句、分支、边界值和MC/DC覆盖。SmartUnit已经在实际项目中测试了超过一百万行代码。出于保密动机,我们选择了三个内部真实项目进行实证评估。我们还对两个开源数据库项目SQLite和PostgreSQL进行了评估,以测试我们的工具的可扩展性,因为嵌入式软件项目的规模大多不大,平均只有5 K-50 K行代码。从我们的实验结果来看,一般来说,商业嵌入式软件中90%以上的函数实现了100%的语句、分支、MC/DC覆盖,SQLite中80%以上的函数实现了100%的MC/DC覆盖,PostgreSQL中60%以上的函数实现了100%的MC/DC覆盖。此外,SmartUnit能够在单元测试级别找到运行时异常。我们还报告了SQLite中的异常,如数组索引越界和被零除。此外,我们还分析了自动化单元测试覆盖率低的原因,并对工业上手工单元测试相对于自动化单元测试的情况进行了调查。
2018-06-17 cs.SE
Vulnerability Coverage as an Adequacy Testing Criterion
主流软件应用程序和工具是可配置的平台,具有大量参数及其值。这些参数之间的某些设置和可能的交互可能会加强(或削弱)这些应用程序对某些已知漏洞的安全性和鲁棒性。然而,大量的漏洞报告和与这些工具相关联,使这些工具的详尽测试不可行,对这些漏洞不可行。作为一般软件测试问题的一个实例,要解决的研究问题是被测系统是否健壮和安全。本文介绍了“漏洞覆盖率”的概念,这是一个充分测试给定应用程序的某些类别的漏洞的概念,正如国家漏洞数据库(NVD)所报告的那样。其思想是利用通用漏洞评分系统(CVSS)作为一种手段来衡量进化算法生成的测试输入的适应度,然后通过模式匹配识别与生成的漏洞向量相匹配的漏洞,然后对这些识别出的漏洞进行测试。我们报告了两个进化算法的性能(即,遗传算法和粒子群优化)在生成脆弱性模式矢量中的应用。
2020-06-14 cs.SE
An Overview of Structural Coverage Metrics for Testing Neural Networks
University of Texas, Austin(德克萨斯大学奥斯汀分校);University of Manchester(曼彻斯特大学);KBR(KBR公司);Princeton University(普林斯顿大学);Palo Alto High School(帕洛阿尔托高中)
深度神经网络(DNN)模型,包括那些用于安全关键领域的模型,需要进行彻底的测试,以确保它们在不同的场景中能够可靠地表现良好。在本文中,我们概述了用于测试DNN模型的结构覆盖度量,包括神经元覆盖(NC),k-多节神经元覆盖(kMNC),前k神经元覆盖(TKNC),神经元边界覆盖(NBC),强神经元激活覆盖(SNAC)和修改的条件/决策覆盖(MC/DC)。我们评估了用于感知任务的现实DNN模型(包括LeNet-1,LeNet-4,LeNet-5和ResNet 20)以及用于自治的网络(TaxiNet)的指标。我们还提供了一个工具DNNCov,它可以测量所有这些指标的测试覆盖率。DNNCov输出信息丰富的覆盖报告,使研究人员和从业人员能够评估DNN测试的充分性,比较不同的覆盖措施,并在测试期间更方便地检查模型的内部结构。
2022-08-05 cs.AI cs.LG cs.SE
ResTest: Targeted Coverage of Residual Not-Covered Code Using Large Language Models for Web GUI Testing
Key Lab of HCST (PKU), MOE(北京大学);SCS(北京大学);Peking University, Beijing, China(中国科学院软件研究所;中国科学院大学);Key Lab of HCST (PKU) & NERC of SE, MOE(北京通明湖信息技术应用创新中心);Peking University, Beijing, China(复旦大学高级计算系统研究所);Institute of Software Chinese Academy of Sciences, University of Chinese Academy of Sciences, Beijing, China;Beijing Tongming Lake Information Technology Application Innovation Center (TLAIC), China;Fudan University Institute of Systems for Advanced Computing, China
本文提出Temac,一种基于LLM多智能体协作的自动化Web GUI测试方法,通过构建知识库并引导智能体执行未覆盖功能,显著提升了代码覆盖率并发现了大量真实故障。
2026-09-24 cs.SE
Testing Retrieval-Augmented Generation Systems with Chunk Coverage
Università della Svizzera italiana(瑞士意大利语大学)
研究用块覆盖率(CC)测试检索增强生成(RAG)系统的检索组件,CC衡量语料块检索比例,可指导测试选择与生成,通过实验表明CC引导测试能更快达覆盖率且提高故障检测有效性,无需测试预言机就能捕捉检索多样性。
2026-07-21 cs.SE
Automated, Cost-effective, and Update-driven App Testing
应用程序在我们社会中的普遍作用导致了测试自动化方法的定义,以确保其可靠性。然而,最先进的方法往往会产生大量的测试输入,不太可能达到超过50%的方法覆盖率。在本文中,我们提出了一种策略,以实现显着更高的覆盖率的代码更新的测试输入的数量少得多,从而减轻了测试预言的问题。更具体地说,我们提出了ATUA,一个基于模型的方法,综合应用模型与静态分析,集成了一个动态细化的状态抽象功能,并结合互补的测试策略,包括(1)覆盖的模型结构,(2)覆盖的应用程序代码,(3)随机探索,(4)覆盖的依赖关系,通过信息检索确定。其基于模型的策略使ATUA能够生成一小部分输入,这些输入仅用于执行受更新影响的代码。反过来,这使得常见的测试Oracle解决方案更具成本效益,因为它们往往涉及人工工作。一项针对九个流行Android应用程序的72个应用程序版本进行的大型实证评估表明,在测试应用程序更新时,ATUA比最先进的方法更有效,工作量更少。
2021-12-06 cs.SE
Coverage-Guided Road Selection and Prioritization for Efficient Testing in Autonomous Driving Systems
University of Milano-Bicocca(米兰比可卡大学);Technical University of Munich(慕尼黑工业大学);fortiss(福蒂斯研究所)
本文提出了一种覆盖引导的道路选择与优先级分配方法,通过减少冗余并保持多样性,提高自动驾驶系统测试效率,实现测试套件大小减少89%并提升故障检测能力95倍。
2026-01-13 cs.SE
Improve Model Testing by Integrating Bounded Model Checking and Coverage Guided Fuzzing
由Simulink或Ptolemy建立的控制逻辑模型在工业现场得到了广泛的应用。保证控制逻辑模型的安全性和可靠性是一个迫切需要解决的问题。测试用例生成技术被广泛应用于保证软件的安全性和可靠性。最先进的模型测试工具采用模型检验技术或基于搜索的方法来生成测试用例。传统的基于Simulink仿真的搜索技术存在速度慢、开销大等问题。传统的模型检验技术如符号执行在处理非线性元素和复杂循环时性能有限。最近,覆盖率引导模糊技术被认为是有效的测试用例生成,由于其高效率和令人印象深刻的效果,在复杂的分支循环。在本文中,我们应用模糊方法来改善模型测试,并证明了有效性。模糊化方法旨在通过变异有价值的种子来覆盖更多的程序分支。受此启发,我们提出了一种新的集成技术SPsCGF,它利用有界模型检验的符号执行,产生测试用例作为初始种子,然后进行模糊的基础上,这些有价值的种子。以这种方式,我们的工作结合了模型检验方法和模糊技术的优点,在一个新的方式。由于控制逻辑模型总是接收信号输入,因此我们专门为信号设计了新型变异算子,以改进模型测试中现有的模糊方法。在由工业案例组成的评估基准上,SPsCGF可以实现8%到38%的模型覆盖率和3倍到10倍的时间效率。
2022-11-09 cs.SE
Generation and Optimization of Test cases for Object-Oriented Software Using State Chart Diagram
测试任何软件系统的过程都是一项巨大的任务,既耗时又昂贵。随着软件的规模和复杂性增加,进行充分测试所需的时间和工作量也会增加,这可能会导致项目预算超支、软件系统开发延迟或某些测试用例可能无法覆盖。在SDLC(软件开发生命周期)中,通常软件测试阶段花费大约40 - 70%的时间和成本。基于状态的测试在软件测试中经常使用。测试数据生成是软件测试的关键问题之一。正确生成的测试集不仅可以定位软件系统中的错误,而且有助于降低与软件测试相关的高成本。通常期望可以自动生成测试套件内的测试序列形式的测试数据以实现所需的测试覆盖。针对基于状态的软件测试,提出了一种测试数据生成的优化方法。本文从状态图出发,导出了第一状态转移图。然后,从状态图中提取所有需要的信息。然后生成测试用例。最后,通过计算每个测试用例的节点覆盖率来最小化一组测试用例。还确定哪些测试用例被其他测试用例覆盖。我们的测试生成技术的优点是,它通过最小化时间和成本来优化测试覆盖率。提出的测试数据生成方案生成满足变迁路径覆盖准则、路径覆盖准则和动作覆盖准则的测试用例。以自动售票机(ATM)为例进行了分析.
2012-06-02 cs.SE
An Efficient Black-Box Support of Advanced Coverage Criteria for Klee
动态符号执行(DSE)是一种基于被测程序路径空间探索的强大测试生成方法。这种方法非常适合于路径覆盖,但是对于条件、决策、高级覆盖标准(例如多个条件、弱突变、边界测试)或用户提供的测试目标效率较低。虽然已经提出了使DSE适应大量标准的理论解决方案,但它们从未被集成到公开可用的测试工具中。本文提出了一种先进的覆盖标准的优化测试生成策略到一个流行的开源测试工具DSE的基础上,即Klee的第一个集成。集成是以完全黑盒的方式执行的,因此可以激发轻松集成到其他类似工具中。该工具的最终版本名为Klee4labels,已公开发布。我们提出的设计所提出的技术,并评估它的几个基准。我们的研究结果证实了先进的覆盖标准所提出的工具的好处。
2022-12-23 cs.SE
On-line tracing of XACML-based policy coverage criteria
目前,可扩展访问控制置标语言(XACML)已成为实现访问控制策略的标准,对XACML策略正确性的测试也越来越受到重视。特别地,可以采用覆盖度量来评估测试策略在执行策略元素时的有效性。本研究介绍了一套XACML覆盖标准,并描述了访问控制基础设施,基于一个监视引擎,使覆盖标准的选择和在线跟踪的测试活动。基础设施的使用和评估不同的测试策略的例子。
2018-09-07 cs.SE
Basic Block Coverage for Search-based Unit Testing and Crash Reproduction
基于搜索的技术已被广泛用于白盒测试生成。这些方法中的许多依赖于方法级和分支距离算法来指导搜索过程,并生成具有高的线和分支覆盖率的测试用例。尽管这两种算法取得了积极的结果,但它们只使用与显式分支的覆盖相关的信息(例如,由条件和循环语句指示),但忽略基本代码块中潜在的隐式分支。如果这种隐式分支发生在运行时(例如,如果在无分支方法中抛出异常),则现有的适应度函数不能指导搜索过程。为了解决这个问题,我们引入了一个新的次要目标,称为基本块覆盖(BBC),它考虑到控制流图中的相关基本块的覆盖水平。我们评估了BBC对基于搜索的单元测试生成(使用DynaMOSA算法)和基于搜索的崩溃再现(使用STDistance和WeightedSum适应度函数)的影响。我们的研究结果表明,对于单元测试生成,BBC提高了分支覆盖率的生成测试。虽然很小(约1.5%),但分支覆盖率的这种改进是系统性的,并导致输出域覆盖率和隐式运行时异常覆盖率的增加,以及运行时状态的多样性。在碰撞再现方面,结合STDistance和WeightedSum,BBC有助于为每个适应度函数再现3个新的碰撞。BBC使用STDistance和WeightedSum分别显著减少了再现43.5%和45.1%的碰撞所需的时间。对于这些崩溃,BBC平均减少了71.7%(对于STDistance)和68.7%(对于WeightedSum)的消耗时间。
2022-03-04 cs.SE
Testing Agentic Workflows with Structural Coverage Criteria
Carleton University(卡尔顿大学);Cisco Systems(思科系统)
针对多智能体工作流的结构化测试问题,提出基于类型化协调图的覆盖驱动测试方法,通过DSPy生成可执行场景,有效检测工具访问、限制和委托路径的结构性回归。
2026-05-26 cs.SE
TestART: Improving LLM-based Unit Testing via Co-evolution of Automated Generation and Repair Iteration
TestART通过生成与修复的协同进化,利用模板修复、覆盖率反馈和正向提示注入,提升LLM单元测试的通过率与覆盖率。
2025-03-31 cs.SE
Random Grammar-based Testing for Covering All Non-Terminals
在软件测试的上下文中,生成复杂的数据输入经常使用基于语法的规范来执行。由于组合的原因,详尽地生成给定大小的数据实际上是不可能的,大多数方法要么基于随机技术,要么基于覆盖标准。在本文中,我们将展示如何结合这两种技术,通过偏置随机生成,以优化满足覆盖标准的概率。
2013-11-26 cs.SE
DLFuzz: Differential Fuzzing Testing of Deep Learning Systems
深度学习(DL)系统越来越多地应用于安全关键领域,如自动驾驶汽车。保证DL系统的可靠性和鲁棒性具有重要意义。现有的神经元测试方法往往无法包含测试数据集中的稀有输入,并且神经元覆盖率较低。在本文中,我们提出了DLFuzz,第一个差分模糊测试框架,以指导DL系统暴露不正确的行为。DLFuzz不断对输入进行细微的变异,以最大化神经元覆盖率以及原始输入和变异输入之间的预测差异,而无需手动标记工作或交叉引用具有相同功能的其他DL系统的预言机。我们提出了两个著名的数据集的实证评估,以证明其效率。与最先进的深度学习白盒测试框架DeepXplore相比,DLFuzz不需要额外的努力来寻找类似的功能性深度学习系统进行交叉引用检查,但可以生成多338.59%的对抗性输入,同时具有89.82%的小扰动,平均获得高2.86%的神经元覆盖率,节省20.11%的时间消耗。
2018-08-28 cs.SE
A Comparison of Inquiry-Based Conceptual Feedback vs. Traditional Detailed Feedback Mechanisms in Software Testing Education: An Empirical Investigation
当前测试教育工具提供的关于学生测试套件中缺陷的反馈要么模仿行业代码覆盖工具,要么列出学生测试套件中缺少的特定教师测试用例。虽然在某种意义上是有用的,但这些类型的反馈类似于揭示问题的解决方案,这可能会无意中鼓励学生采用试错法进行测试,而不是使用更系统的方法来鼓励学习。除了没有教学生为什么他们的测试套件是不够的,这种类型的反馈可能会激励学生变得依赖于反馈,而不是自己思考。为了解决这一缺陷,有机会调查替代反馈机制,包括积极加强测试的概念。我们认为,使用基于探究的学习方法比简单地提供答案更好。为了促进这种类型的学习,我们提出了测试导师,一个基于网络的作业提交平台,通过可定制的反馈引擎支持不同层次的测试教学法。我们评估了不同类型的反馈的影响,通过实证研究,在两个校长级课程。我们使用Testing Tutor为学生提供不同类型的反馈,无论是传统的详细代码覆盖反馈还是基于探究的学习概念反馈,并比较效果。结果表明,接受概念反馈的学生有更高的代码覆盖率(不同的措施),更少的冗余测试用例,更高的编程成绩比谁收到传统的代码覆盖率反馈的学生。
2020-11-25 cs.SE
Prioritized Process Test: An Alternative to Current Process Testing Strategies
信息和物联网系统中的测试流程和工作流是典型软件测试工作的主要部分。一致的和有效的基于路径的测试用例,以支持这些测试。由于软件系统工作流的某些部分具有比其他部分更高的业务优先级,因此在测试用例的生成中必须涉及这一事实。在本文中,我们提出了一个优先级的过程测试(PPT),这是一个基于模型的测试用例生成算法,目前已建立的算法,使用有向图和测试要求来模拟测试系统的替代。PPT接受有向多重图作为模型来表达优先级,并且使用边权重代替测试需求。为了确定测试用例的测试覆盖级别,使用了测试深度级别的概念。我们将所呈现的PPT与五个备选方案进行了比较(即,过程循环测试,由过程循环测试、蛮力算法、基于集合覆盖的解决方案和基于匹配的前缀图解决方案创建的测试集的朴素约简)用于边缘覆盖和边缘对覆盖。为了评估这些策略产生的基于路径的测试用例的最优性,我们使用了基于这些测试用例的属性的14个度量标准和为三个真实世界系统创建的59个模型。对于所有边缘覆盖,PPT在大多数指标方面产生了比替代方案更优的测试用例。对于边对覆盖,PPT策略产生了类似的结果的替代品。因此,PPT策略是一个适用的替代方案,因为它同时反映了所需的测试覆盖级别和业务优先级。
2019-03-20 cs.SE
Testing with AI Agents: An Empirical Study of Test Generation Frequency, Quality, and Coverage
Nara Institute of Science and Technology(奈良先端科学技术大学院大学);University of Groningen(格罗宁根大学)
本研究通过AIDev数据集分析AI代理生成测试的频率、结构特征及对代码覆盖率的影响,发现AI生成的测试在代码长度和断言密度上表现突出,且能实现与人工测试相当的覆盖率提升。
2026-03-14 cs.SE
Mathematical Execution: A Unified Approach for Testing Numerical Code
本文介绍了数学执行(ME),一个新的,统一的方法来测试数字代码。其核心思想是:(1)通过一个表示函数来捕获期望的测试目标;(2)将自动化测试问题转化为表示函数的最小化问题。最小化问题将通过数学优化来解决。ME的主要特征是它仅通过执行表示函数来指导输入空间探索,从而避免了对程序语义的静态或符号推理,这对于数字代码来说特别具有挑战性。为了说明这一特点,我们开发了一个基于ME的算法覆盖率为基础的测试的数字代码。我们还展示了应用和适应ME到其他相关问题的潜力,包括路径可达性测试,边界值分析和可满足性检查。为了证明ME的实际好处,我们实现了CoverMe,这是一个基于分支覆盖率测试的概念验证实现,并在Sun的C数学库(用于例如Android,Matlab,Java和JavaScript)上对其进行了评估。我们比较了CoverMe与随机测试和Austin,一个公开的基于分支覆盖的测试工具,支持数字代码(Austin结合了符号执行和基于搜索的自动化)。我们的实验结果表明,CoverMe实现了接近最佳的覆盖率,大大高于随机测试的所有测试程序,在所有评估的覆盖率指标。与Austin相比,CoverMe将分支覆盖率从43%提高到91%,所需时间明显缩短(平均6.9秒对6058.4秒)。
2016-10-04 cs.PL cs.SE
Coverage Isn't Enough: SBFL-Driven Insights into Manually Created vs. Automatically Generated Tests
The University of Osaka(大阪大学)
本研究通过比较SBFL得分和覆盖率,揭示自动测试与手动测试在故障定位中的优劣,为测试方法的结合提供依据。
2025-12-12 cs.SE
FairFuzz: Targeting Rare Branches to Rapidly Increase Greybox Fuzz Testing Coverage
近年来,模糊测试已被证明是在实践中发现正确性错误和安全漏洞的最有效的技术之一。一个特殊的模糊测试工具,美国模糊Lop或AFL,已成为流行的感谢其易于使用和错误发现的权力。然而,AFL在其实现的程序覆盖深度方面仍然有限,特别是因为它没有考虑程序输入的哪些部分不应该被突变以保持深度程序覆盖。我们提出了一种方法,FairFuzz,这有助于减轻这种限制,在两个关键步骤。首先,FairFuzz会自动优先考虑执行测试程序中罕见部分的输入。其次,它自动调整输入的变异,使变异的输入更有可能执行程序中这些相同的稀有部分。我们对现实世界的程序进行评估,对最先进的版本的AFL,彻底重复实验,以获得良好的可变性措施。我们发现,在某些基准FairFuzz显示显着的覆盖率增加后,24小时相比,最先进的版本的AFL,而在其他方面,它实现了高节目覆盖率在一个显着更快的速度。
2017-09-20 cs.CR cs.SE
Hybrid Concolic Testing with Large Language Models for Guided Path Exploration
Quandary Peak Research(夸德里峰研究)
本文提出一种结合大语言模型与协同执行的混合测试方法,通过引导路径探索提升程序状态空间探索效率和缺陷检测能力。
2026-01-18 cs.SE
Systematic Training and Testing for Machine Learning Using Combinatorial Interaction Testing
National Security Institute, Virginia Tech(弗吉尼亚理工学院国家安全研究所);The MITRE Corporation(米特雷公司)
本文演示了系统地使用组合覆盖来选择和表征机器学习模型的测试和训练集。所提出的工作适应组合交互测试,这已成功地利用在软件测试中识别故障,表征数据用于机器学习。MNIST手写数字数据用于证明组合覆盖可用于选择强调机器学习模型性能的测试集,选择导致鲁棒模型性能的训练集,以及选择用于微调模型到新领域的数据。因此,结果证明了组合覆盖作为机器学习训练和测试的整体方法。与以前的工作集中在使用覆盖方面的内部神经网络,本文认为覆盖简单的功能来自输入和输出。因此,本文解决了机器学习模型的测试和训练集的供应商对模型本身没有知识产权的情况。最后,本文解决了先前的批评组合覆盖,并提供了一个反驳,主张在机器学习应用程序中使用的覆盖度量。
2022-01-28 cs.LG cs.SE stat.ML
Systematic API Testing Through Model Checking and Executable Contracts
NOVA University Lisbon(里斯本新大学)
本文提出IcePick框架,利用模型检查实现API测试的系统性状态空间覆盖,并引入Glacier语言增强API规格,通过可执行语义合同实现行为验证,验证了模型检查引导的探索能完全覆盖状态并发现多操作交互中的故障。
2026-04-09 cs.SE
Understanding the Effectiveness of Coverage Criteria for Large Language Models: A Special Angle from Jailbreak Attacks
本文从越狱攻击视角评估传统覆盖率准则在LLM安全测试中的有效性,发现神经元覆盖率能区分正常与越狱查询,并据此提出实时检测、测试用例优先级排序及覆盖率引导的攻击样本生成三种应用,显著提升模型安全性。
2025-04-01 cs.SE
Boundary Value Test Input Generation Using Prompt Engineering with LLMs: Fault Detection and Coverage Analysis
本文提出框架,通过提示工程评估大语言模型生成边界值测试输入的有效性,比较故障检测率与覆盖率,揭示其优势与挑战。
2025-01-24 cs.SE
T-Wise Presence Condition Coverage and Sampling for Configurable Systems
采样技术,如t-交互采样,用于实现可配置系统的有效测试。这是通过为系统生成一个小而有代表性的配置样本来实现的,这避免了测试整个解决方案空间。然而,通过设计,最新的方法t-明智的互动采样只考虑组合的配置选项从一个可配置的系统的可变性模型,并没有考虑到他们的映射到解决方案空间,从而可能留下关键的实现工件未经测试。Tartler等人通过考虑实现工件的存在条件而不是纯粹的配置选项来解决这个问题,但没有考虑这些工件之间可能的交互。在本文中,我们介绍了t-明智的存在条件覆盖,它扩展了Tartler等人的方法。通过使用存在条件提取的代码作为基础,以涵盖t-明智的相互作用。这确保了实现工件的所有t-wise交互都包含在样本中,并且增加了检测错误配置选项组合的机会。我们评估我们的方法在测试效率和测试有效性方面,通过比较现有的t-明智的交互采样技术的方法。我们表明,与t方向交互抽样相比,t方向存在条件抽样能够产生更小的样本,同时保证t方向存在条件覆盖率为100%。
2022-05-30 cs.SE
Quantitative Projection Coverage for Testing ML-enabled Autonomous Systems
fortiss - Landesforschungsinstitut des Freistaats Bayern(巴伐利亚自由州州立研究所fortiss);DENSO CORPORATION(电装公司)
系统地测试从神经网络学习的模型仍然是一个关键的未解决的障碍,以成功证明使用数据驱动方法设计的自动驾驶汽车的安全性。我们提出了定量的k-投影覆盖作为一个度量调解组合爆炸,同时指导数据采样过程。通过假设领域专家提出很大程度上独立的环境条件,并通过将每个条件中的元素与权重相关联,这些条件的乘积形成场景,并且可以将与每个等价类相关联的权重解释为相对重要性。实现全k-投影覆盖要求数据集在被投影到由任意选择的k-条件形成的超平面时,以不少于相关联的权重的数据点的数量覆盖每个类。对于场景组合受规则约束的一般情况,精确计算k-投影覆盖率仍然在NP中。在寻找最小的测试用例,以实现全覆盖方面,我们提出了理论上的复杂性的重要子情况和编码为0-1整数规划。我们已经实现了一个研究原型,生成自动驾驶中的视觉对象检测单元的测试用例,证明了我们提出的覆盖标准的技术可行性。
2018-05-11 cs.LG cs.SE
DJPlus: Generating minimal test suites for strong coverage criteria in graph models
İstanbul Technical University(伊斯坦布尔理工大学);University of Antwerp(安特卫普大学);Graz University of Technology(格拉茨工业大学)
DJPlus提出一种优化驱动的测试生成方法,在满足图覆盖需求的同时生成精简测试套件,通过减少冗余测试步骤显著缩短执行时间,并在四个真实系统上验证了强覆盖准则的可行性。
2026-09-09 cs.SE
Fine-grained Testing for Autonomous Driving Software: a Study on Autoware with LLM-driven Unit Testing
针对自动驾驶系统源代码细粒度测试不足的问题,本研究聚焦工业框架Autoware,分析人工与LLM生成的单元测试用例,发现人工测试覆盖率有限且LLM测试应用存在挑战,进而提出AwTest-LLM方法以提升测试覆盖率与通过率。
2025-01-16 cs.SE
Evaluating the Effectiveness of Coverage-Guided Fuzzing for Testing Deep Learning Library APIs
本文提出FlashFuzz,利用LLM自动合成API级测试驱动程序,将覆盖率引导模糊测试有效应用于PyTorch和TensorFlow,显著提升覆盖率、有效率和生成速度,并发现42个未知缺陷。
2025-09-18 cs.SE
Testing Medical Rules Web Services in Practice
本文实证评估了EvoMaster黑盒/白盒模式及专用工具EvoGURI对挪威癌症登记处医学规则引擎GURI的自动化测试效果,结果显示各工具代码覆盖率相近,但EvoGURI在规则覆盖和故障识别上表现最佳,建议实际采用。
2024-12-16 cs.SE
Prioritization of Metamorphic Relations to reduce the cost of testing
oracle是一种机制,用于确定程序执行测试用例的输出是否正确。对于机器学习程序,这样的预言是不可用的或太难应用。变形测试是一种使用变形关系的测试方法,变形关系是被测软件的必要属性,有助于验证程序的正确性。变形关系的优先级有助于降低变形测试的成本[1]。然而,基于代码覆盖率对变形关系进行优先级排序对于为机器学习程序对MR进行优先级排序通常不是有效的,因为机器学习模型的决策逻辑是从训练数据中学习的,并且可以利用单个测试输入容易地实现100%代码覆盖率。为此,在这项工作中,我们提出了一个具有成本效益的方法的基础上的多样性的来源和后续数据集的优先级的变形关系的机器学习程序。我们表明,所提出的基于数据多样性的优先级排序方法相比,基于代码覆盖率的方法,故障检测的有效性提高了40%,并减少了29%的时间来检测故障时相比,随机执行的MR。总体而言,我们的方法导致节省时间和成本在测试过程中。
2022-09-01 cs.SE
Graph-Based Fuzz Testing for Deep Learning Inference Engine
随着深度学习(DL)系统的广泛应用,学术界和工业界开始关注其质量。测试是质量保证的主要方法之一。然而,现有的测试技术关注DL模型的质量,但缺乏对核心底层推理引擎(即,框架和库)。受模糊测试成功案例的启发,本文设计了一种基于图的模糊测试方法来提高深度学习推理机的测试质量。DL模型的图结构自然遵循这种方法。引入了一种新的基于图论的算子级覆盖准则,并通过探索模型结构、参数和数据输入的组合,实现了六种不同的变异以生成多样化的DL模型。蒙特卡罗树搜索(MCTS)用于在没有训练过程的情况下驱动DL模型生成。实验结果表明,MCTS在提高操作符级覆盖率和检测异常方面优于随机方法。我们的方法已经发现了超过40个不同的异常,在三种类型的不期望的行为:模型转换失败,推理失败,输出比较失败。变异策略是有用的,以产生新的有效的测试输入,高达8.2%以上的运营商级的覆盖率平均和8.6以上的异常捕获。
2021-03-04 cs.SE
RERS-Fuzz : Combining Greybox Fuzzing with Interval Analysis for error reachability in reactive softwares
模糊测试是软件维护和演化领域中一个被广泛研究的领域。近年来,基于覆盖率的灰盒模糊测试通过发现工业级软件中的关键安全级别和show-stopper错误而获得了极大的关注。灰箱模糊测试以覆盖率最大化为目标函数,并采用反馈驱动的进化算法来实现。在我们的工作中,我们利用灰盒模糊测试的力量,结合区间分析来解决序列和工业RERS(反应式软件的严格检查)2019基准测试中的可达性问题。
2019-07-26 cs.SE
Enhancing Software Testing Education: Understanding Where Students Struggle
The University of Alabama(阿拉巴马大学);Willamette University(威拉米特大学);Augusta University(奥古斯塔大学)
本研究针对计算机专业学生软件测试概念掌握不足的问题,通过分析高年级课程两次作业的提交数据,发现判定覆盖和异常处理是主要难点,学生多做无效表层修改,为教学优化和反馈工具改进提供了依据。
2025-10-01 cs.SE