PentestJudge: Judging Agent Behavior Against Operational Requirements
dreadnode
PentestJudge 是一个基于 LLM 的评判系统,通过树状评分细则评估渗透测试智能体操作,最佳模型 F1 达 0.83,且验证比生成更容易。
2025-08-04 cs.AI cs.CR
WebCraftBench: Evaluating Web Application Generation from a Software Testing Perspective
Tencent(腾讯);Tsinghua University(清华大学);Peking University(北京大学)
IWC-Bench从软件测试视角,通过代码覆盖率引导探索和状态转换图评估,在三个维度上评测LLM生成的Web应用,包含369个需求和5088个验收标准,与人类偏好一致性达85.3%。
2026-09-22 cs.AI cs.SE
Mubric: Mutation Testing-Guided Rubric Generation for LLM Evaluation
Tsinghua University(清华大学);University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校)
Mubric提出基于变异测试的评分标准生成方法,通过挖掘缺陷并注入参考响应来迭代改进评分标准,在703个任务上以7.48个百分点的优势超越最强基线。
2026-09-30 cs.AI cs.SE
Testing Criteria for Mobile Apps Based on Callback Sequences
应用程序质量已被证明是应用程序采用的最重要指标。为了保证质量,开发人员主要使用测试来发现应用程序中的错误,并应用结构和GUI测试覆盖标准。然而,移动应用程序的行为比GUI操作更多,例如,应用程序还处理来自传感器的事件,并通过Android API调用服务和AsyncTasks执行长时间运行的后台任务。我们的研究发现,通过回调交互的重要应用行为应该在测试中涵盖,因为回调之间的数据共享很常见,并且是许多现有错误的原因。我们设计了一系列基于回调序列的测试准则,并使用回调控制流自动机(CCFA)来测量测试的覆盖率。我们的实验表明,在我们的标准的指导下,测试可以发现更多的错误和触发错误比最先进的工具更快。
2019-11-20 cs.SE
Generalized Coverage Criteria for Combinatorial Sequence Testing
针对以动作与断言序列为测试向量的系统,提出广义序列覆盖准则、测试套件生成工具及贝叶斯风险量化框架,并实证验证其缺陷发现、风险评估与覆盖效果。
2023-10-31 cs.SE
Black-Box Testing of Deep Neural Networks Through Test Case Diversity
University of Ottawa(渥太华大学);École de Technologie Supérieure(高等技术学院);University of Luxembourg(卢森堡大学);General Motors(通用汽车公司)
针对白盒神经元覆盖准则可获取性受限且指导效果受质疑的问题,本文评估三种黑盒输入多样性指标,证明其中一种在故障揭示能力和计算时间上显著优于现有覆盖准则。
2023-02-06 cs.AI cs.LG cs.SE
Basis Path Coverage Criteria for Smart Contract Application Testing
智能合约的广泛认可确立了其在下一代区块链技术领域的重要性。然而,编写正确的智能合约是非常困难的。此外,一旦网络确认了状态改变事务,结果是不可变的。因此,在部署之前对智能合约应用程序进行全面测试至关重要。本文的重点是智能合约的测试覆盖标准,这是衡量测试质量的客观规则。我们分析了以太坊智能合约程序模型与传统程序模型相比的独特特征。为了捕捉智能合约的基本控制流行为,我们提出了全事务基路径集和有界事务交互的概念。前者是一组有限的线性独立的过程间路径,从中可以通过线性组合构建以太坊交易的潜在无限路径,而后者是交易在一定范围内的排列。基于这两个概念,我们定义了一个家庭的基于路径的测试覆盖标准。给出了覆盖需求的生成算法。最后通过一个案例分析比较了所提出的测试覆盖准则与随机测试和语句覆盖测试的有效性。
2019-11-24 cs.SE
DeepGauge: Multi-Granularity Testing Criteria for Deep Learning Systems
Harbin Institute of Technology(哈尔滨工业大学);Carnegie Mellon University(卡内基梅隆大学);Nanyang Technological University(南洋理工大学);Kyushu University(九州大学);University of Illinois at Urbana–Champaign(伊利诺伊大学厄巴纳-香槟分校);Monash University(莫纳什大学)
深度学习(DL)定义了一种新的数据驱动编程范式,通过一组训练数据构建精心制作的神经元网络的内部系统逻辑。我们已经看到DL在许多安全关键场景中的广泛采用。然而,大量的研究表明,国家的最先进的DL系统遭受各种漏洞,这可能会导致严重的后果时,应用到现实世界的应用程序。目前,DL系统的测试充分性通常由测试数据的准确性来衡量。考虑到可获得的高质量测试数据的局限性,对测试数据的良好准确性很难为DL系统的测试充分性和通用性提供信心。与具有清晰和可控逻辑和功能的传统软件系统不同,深度学习系统中缺乏可解释性使得系统分析和缺陷检测变得困难,这可能会阻碍其在现实世界中的部署。在本文中,我们提出了DeepGauge,一组多粒度的测试标准DL系统,其目的是呈现多方面的写照的测试床。我们提出的测试标准的深入评估证明了两个著名的数据集,五个DL系统,并与四个国家的最先进的对抗攻击技术对DL。DeepGauge的潜在用途为构建更通用和更强大的DL系统提供了帮助。
2018-08-14 cs.CR cs.LG cs.SE
Coverage Criteria for Model-Based Testing using Property Patterns
本文提出了一种基于模型的测试方法,旨在从UML/OCL模型和给定的测试属性生成测试用例。该属性使用基于模式的专用形式主义表示,并自动转换为自动机。我们提出了新的自动机覆盖标准,我们考虑的属性自动机量身定制。这些标准是基于与原始属性相关的转换的相关子集的覆盖率,旨在产生说明属性中描述的系统动态的测试用例。此外,我们建议产生测试用例,可以确保系统的鲁棒性w.r.t.属性,通过改变属性自动机,以试图引发属性禁止的事件。这种方法已被实施到一个大型的工具集,并已在工业研究项目的背景下,对现实的案例研究进行了实验。
2014-03-28 cs.SE
Testing as an Investment
软件测试是一项昂贵而重要的任务。大量的研究和工业努力已经投入到改进软件测试技术,包括标准,工具等。这些研究可以提供指导方针,以选择合适的测试技术,为软件工程师。不过,在一些工程项目中,商业问题可能比技术问题更重要,因此我们需要游说非技术成员支持我们的决定。本文介绍了一个著名的投资模型--Nelson-Siegel模型,用于评价和预测不同测试标准下的测试过程。通过这个模型,我们提供了一个新的视角来理解整个测试过程中的短期,中期和长期投资回报。从投资的角度出发,对三个检验标准进行了初步的实验研究。结果表明,语句覆盖准则在获得长期收益方面表现最好;短期和中期的测试收益取决于程序的规模和包含的错误数量。
2017-08-03 cs.SE
Test Adequacy for Metamorphic Testing: Criteria, Measurement, and Implication
本文针对变质测试缺乏充分性评估准则的问题,从被测软件必要性质的角度提出新的测试充分性准则和度量方法,实验证明该度量能有效反映测试套件的缺陷检测能力,为构建高质量 MT 测试套件提供指导。
2024-12-30 cs.SE
An Efficient Black-Box Support of Advanced Coverage Criteria for Klee
动态符号执行(DSE)是一种基于被测程序路径空间探索的强大测试生成方法。这种方法非常适合于路径覆盖,但是对于条件、决策、高级覆盖标准(例如多个条件、弱突变、边界测试)或用户提供的测试目标效率较低。虽然已经提出了使DSE适应大量标准的理论解决方案,但它们从未被集成到公开可用的测试工具中。本文提出了一种先进的覆盖标准的优化测试生成策略到一个流行的开源测试工具DSE的基础上,即Klee的第一个集成。集成是以完全黑盒的方式执行的,因此可以激发轻松集成到其他类似工具中。该工具的最终版本名为Klee4labels,已公开发布。我们提出的设计所提出的技术,并评估它的几个基准。我们的研究结果证实了先进的覆盖标准所提出的工具的好处。
2022-12-23 cs.SE
Towards Unified Combinatorial Interaction Testing
我们相信,我们可以利用组合交互测试(CIT)在许多“非传统”的组合空间使用许多“非传统”的覆盖标准的好处。然而,这需要真正灵活的CIT方法。为此,我们介绍了统一组合交互测试(U-CIT),它使从业者能够定义自己的组合空间和覆盖标准的测试,并提出了一个统一的建设方法来计算特定的U-CIT对象的实例。此外,我们认为,大多数(如果不是全部)现有的CIT对象是一个特殊的情况下,U-CIT和演示的灵活性,U-CIT在一个简单的,但现实的情况。
2016-02-21 cs.SE
Testing Multi-Subroutine Quantum Programs: From Unit Testing to Integration Testing
本文针对多子程序量子程序的测试需求,提出从单元到集成测试的完整测试准则与技术,涵盖IO分析、关系检查、结构及行为测试等,并通过变异体和随机输入验证了方法的有效性。
2024-05-24 cs.SE quant-ph
Testing Deep Neural Networks
University of Oxford(牛津大学);University of Liverpool(利物浦大学);Defence Science and Technology Laboratory (Dstl)(国防科学技术实验室(Dstl))
深度神经网络(DNN)具有广泛的应用,使用它们的软件必须经过彻底的测试,特别是在安全关键领域。然而,传统的软件测试覆盖度量不能直接应用于DNN。在本文中,受MC/DC覆盖标准的启发,我们提出了一系列四个新的测试标准,这些标准是针对DNN的结构特征及其语义而量身定制的。我们通过证明通过我们提出的覆盖标准指导生成的测试输入能够捕获DNN中的不期望行为来验证标准。测试用例的生成采用符号化方法和基于梯度的启发式搜索。通过将它们与现有方法进行比较,我们表明我们的标准在发现错误(使用对抗性示例进行代理)的能力和测试用例生成的计算成本之间实现了平衡。我们的实验是在使用流行的开源数据集(包括MNIST、CIFAR-10和ImageNet)获得的最先进的DNN上进行的。
2019-04-15 cs.CV cs.LG cs.SE
Pass-Fail Criteria for Scenario-Based Testing of Automated Driving Systems
New Mobility Technologies Directorate(新移动技术局);Connected Places Catapult(互联城市弹射中心)
MUSICC项目创建了一个概念验证场景数据库,用于自动驾驶系统(ADS)验证的类型批准过程的一部分。这个过程必须包括一个高度自动化的方法来评估测试结果,因为在所需的规模上进行人工审查是不切实际的。本文提出了一个框架,用于评估ADS在正常运行中的行为安全性(即在没有组件故障或恶意行为的情况下执行动态驾驶任务)。确定了ADS性能的五个顶级评估标准。实现这些需要两种类型的结果评分规则:规定性的(必须始终遵循的可衡量规则)和基于风险的(不得经常发生的不良结果)。评分规则以程序设计语言定义,并将作为场景描述的一部分存储。基于风险的规则不能从单个测试用例中给出通过/失败的决定。相反,定义了一个框架来为每个功能场景(具有共同特性的测试用例集)做出决策。这考虑了许多单独测试的统计性能。这个框架的假设检验和场景选择的影响。
2020-05-26 cs.CY cs.RO cs.SE
Flow-A11y: Flow-Aware Accessibility Testing
University of Luxembourg(卢森堡大学)
研究现代网页应用因交互流程产生的无障碍性问题,提出Flow-A11y系统,通过在真实浏览器执行流程、记录运行时跟踪等方法,贡献为提高测试准确性及实现动态WCAG标准自动化评估。
2026-07-07 cs.AI cs.SE
On-line tracing of XACML-based policy coverage criteria
目前,可扩展访问控制置标语言(XACML)已成为实现访问控制策略的标准,对XACML策略正确性的测试也越来越受到重视。特别地,可以采用覆盖度量来评估测试策略在执行策略元素时的有效性。本研究介绍了一套XACML覆盖标准,并描述了访问控制基础设施,基于一个监视引擎,使覆盖标准的选择和在线跟踪的测试活动。基础设施的使用和评估不同的测试策略的例子。
2018-09-07 cs.SE
Guiding Deep Learning System Testing using Surprise Adequacy
深度学习(DL)系统正在安全和安全关键领域中迅速采用,迫切需要测试其正确性和鲁棒性的方法。DL系统的测试传统上依赖于手动收集和标记数据。最近,已经提出了许多基于神经元激活值的覆盖标准。这些标准基本上计算在DL系统的执行期间其激活满足某些属性(诸如高于预定义阈值)的神经元的数量。然而,现有的覆盖标准不够细粒度的捕获DL系统所表现出的微妙的行为。此外,评估的重点是显示对抗性示例和拟议标准之间的相关性,而不是评估和指导它们用于DL系统的实际测试。我们提出了一种新的测试充分性标准用于测试DL系统,称为深度学习系统(SADL)的惊喜度,这是基于DL系统相对于其训练数据的行为。我们将输入的惊喜度量为输入和训练数据之间的DL系统行为的差异(即,在训练过程中学到了什么),并随后将其发展为适当性标准:与训练数据相比,好的测试输入应该是充分的,但不是明显的令人惊讶。使用从简单图像分类器到自动驾驶汽车平台的一系列DL系统进行的实证评估表明,基于惊喜的系统化输入采样可以通过再训练将DL系统对对抗性样本的分类准确率提高77.5%。
2018-08-25 cs.NE cs.SE
Decomposability in Input Output Conformance Testing
我们研究的问题,得出一个规范的第三方组件,基于规范的系统和环境中的组件应该驻留。特别是,我们感兴趣的是使用组件规范的一致性测试的黑盒组件,使用输入输出一致性(ioco)测试的理论。我们提出并证明了充分的标准分解,即,符合派生规范的组件将始终组成以产生关于系统规范的正确系统。我们还研究了强可分解性的标准,通过它我们可以确保只有那些符合派生规范的组件才能导致正确的系统。
2013-03-05 cs.LO cs.SE
Understanding the Effectiveness of Coverage Criteria for Large Language Models: A Special Angle from Jailbreak Attacks
本文从越狱攻击视角评估传统覆盖率准则在LLM安全测试中的有效性,发现神经元覆盖率能区分正常与越狱查询,并据此提出实时检测、测试用例优先级排序及覆盖率引导的攻击样本生成三种应用,显著提升模型安全性。
2025-04-01 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
Presentation Proposal: Towards Efficient Data-flow Test Data Generation Using KLEE
数据流覆盖率是白盒测试的标准之一,它关注变量定义与其使用之间的关系,一些实证研究证明了数据流测试比控制流测试更有效。然而,由于缺乏有效的工具支持,数据流测试在实践中仍然没有得到采用。为此,我们提出了一个指导符号执行的方法来有效地搜索程序路径,以满足数据流覆盖标准。我们在KLEE上实现了这种方法,并用30个程序主题进行了评估,这些程序主题是由以前的数据流测试文献、SIR、SV-COMP基准中使用的主题构建的。此外,我们正计划将数据流测试技术集成到新提出的符号执行引擎SmartUnit中,SmartUnit是一种基于云的工业软件单元测试服务,支持基于覆盖率的测试。已成功帮助国内多家知名企业和机构在实践中采用基于覆盖率的测试,累计测试了超过百万行的行业真实代码。
2019-03-19 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
Testing Agentic Workflows with Structural Coverage Criteria
Carleton University(卡尔顿大学);Cisco Systems(思科系统)
针对多智能体工作流的结构化测试问题,提出基于类型化协调图的覆盖驱动测试方法,通过DSPy生成可执行场景,有效检测工具访问、限制和委托路径的结构性回归。
2026-05-26 cs.SE
Benchmarking Quantum Software Testing with Scalable Quantum Programs
Beihang University(北京航空航天大学);Kyushu University(九州大学)
提出Qolumbina基准基础设施,通过40个开源量子程序,支持可扩展量子软件测试的受控实验,涵盖功能、输出行为、开发复杂度和量子执行复杂度等测试相关特性。
2026-07-03 cs.SE quant-ph
Exploring LLMs Impact on Student-Created User Stories and Acceptance Testing in Software Development
本研究考察大语言模型在引导指令下对本科生将用户反馈转化为用户故事的影响,发现LLMs有助于生成具有明确验收标准的故事,但在控制故事范围方面学生独立完成时表现更佳。
2025-02-04 cs.SE
In the Driver's Seat: A Multi-Company Study on the Reality of Autonomous Driving System Testing
University College London(伦敦大学学院);Technical University of Munich(慕尼黑工业大学);University of Tartu(塔尔图大学);King’s College London(伦敦国王学院)
针对自动驾驶系统测试复杂且缺乏标准的问题,通过对九家公司专家访谈,经主题分析总结行业测试情况、挑战与趋势,提出以证据为中心的闭环测试框架,为ADS测试提供指导并指明未来方向。
2026-10-27 cs.SE
Computation in an algebra of test selection criteria
测试中的关键概念之一是适当的测试集。测试选择标准决定哪些测试集是适当的。在本文中,一个语言模式,用于指定一个大类的测试选择标准的开发,该模式是基于两个操作,从简单的建立复杂的标准。这两个操作的基本代数性质的推导。在论文的第二部分中,一个简单的语言-一个通用模式的实例-进行了详细的研究,目标是自动生成足够小的测试集。结果表明,一个版本的问题是棘手的,而另一个是可解决的有效算法。该算法的实现进行了说明。
1999-12-24 cs.SE
A Decision Support Method for Recommending Degrees of Exploration in Exploratory Testing
探索性测试既不是黑的也不是白的,而是一种连续的探索。在这项研究中,我们提出了一种决策支持的方法,帮助从业者分配不同程度的探索性测试之间的连续时间。为了使连续体易于管理,定义了五个级别:自由式测试,高、中、低程度的探索,以及脚本化测试。决策支持方法是基于库存网格技术。该方法已在一家公司使用。数据汇集的方法是焦点小组。结果表明,所提出的方法艾滋病从业者在反射什么样的探索性测试水平使用,并调整他们的理解优先级的决策标准和性能的探索性测试水平在他们的背景下。研究结果还表明,参与公司目前主要进行脚本测试,与脚本测试相比,应该花更多的时间进行更高程度的探索测试。
2017-04-04 cs.SE
Minimal TestCase Generation for Object-Oriented Software with State Charts
今天,状态图是工业界对系统行为建模的事实标准。测试数据生成是软件测试的关键问题之一。针对基于状态的软件测试,提出了一种测试数据生成的约简方法。本文从状态图出发,导出了第一状态转移图。然后,从状态图中提取所有需要的信息。然后生成测试用例。最后,通过计算每个测试用例的节点覆盖率来最小化一组测试用例。还确定哪些测试用例被其他测试用例覆盖。我们的测试生成技术的优点是,它通过最小化时间和成本来优化测试覆盖率。该测试数据生成方案生成满足变迁路径覆盖准则、路径覆盖准则和动作覆盖准则的测试用例。最后以铁路自动售票机为例进行了分析。
2012-08-10 cs.SE
Dynamic Mutant Subsumption Analysis using LittleDarwin
在软件测试领域的许多学术研究都依赖于变异测试作为他们的比较标准。然而,最近的研究表明,冗余突变体对其结果的准确性有显著影响。这个问题的一个解决方案是使用突变体包容来检测冗余突变体。因此,为了促进该领域的研究,需要能够检测冗余突变体的突变测试工具。在本文中,我们描述了我们如何改进我们的工具,LittleDarwin,以满足这一要求。
2018-09-07 cs.SE
Testing Quantum Programs with Multiple Subroutines
由于量子程序的不确定性,量子程序中的错误很难追踪。因此,测试是保证量子软件质量的一种不可或缺的方法。现有的量子程序测试方法只针对量子电路或单个子程序,无法有效地测试多个子程序。在本文中,我们首先讨论了测试多子程序量子程序时必须考虑的几个关键问题,并指出现有测试方法的局限性和问题。然后,我们提出了一个新的框架,用于测试多子程序的量子程序,允许单元和集成测试。我们的框架包括两个新的测试覆盖率标准的量子变量的等价类划分,以指导我们的测试任务和技术来测试量子程序与几个常见的模式。我们还讨论了如何生成测试用例的基础上,我们的框架。为了评估我们的测试框架的有效性,我们实现了一个名为QSharpTester的工具,用于测试具有多个子例程的Q\#程序。我们用它来进行实验,从七个原始Q程序派生的数百个变异程序。实验结果表明,我们的测试方法可以处理更广泛的类型的量子程序比现有的,几乎所有的错误变异程序表现良好。
2023-02-27 cs.SE
Curiosity Driven Multi-agent Reinforcement Learning for 3D Game Testing
针对游戏行业人工测试或录制/回放的局限,提出cMarlTest方法,通过好奇心驱动的多智能体强化学习协同测试3D游戏,实验表明其在覆盖准则和耗时效率上均优于单智能体RL变体。
2025-02-20 cs.SE
Estimating the Brittleness of AI: Safety Integrity Levels and the Need for Testing Out-Of-Distribution Performance
Georgetown University, Walsh School of Foreign Service(乔治城大学沃尔什外交学院)
人工智能(AI)的测试、评估、验证和确认(TEVV)是一项挑战,可能会限制AI研究人员致力于创造的经济和社会回报。人工智能的TEVV的一个中心任务是估计脆性,其中脆性意味着系统在某些范围内运行良好,而在这些范围之外运行不良。本文认为,这两个标准都不是深度神经网络的确定标准。首先,高度吹捧的人工智能成功(例如,图像分类和语音识别)甚至在设计界限内(完全分布内采样)也比在关键系统中通常认证的更容易发生故障。第二,性能只会随着输入进一步脱离分布(OOD)而逐渐下降。需要更加重视设计具有弹性的系统,尽管AI组件容易出现故障,以及评估和改善OOD性能,以便让AI能够清除TEVV和认证的挑战性障碍。
2020-09-02 cs.AI cs.CV cs.CY
Software-testing education: A systematic literature mapping
内容:随着软件系统的复杂性和规模的不断增加,对复杂且具有成本效益的软件测试的需求不断增加。为了满足这样的需求,行业中需要高技能的软件测试工作人员(测试工程师)。为了满足这一需求,世界各地的许多大学教育工作者在他们的软件工程(SE)或计算机科学(CS)课程中加入了软件测试教育。目的:本文的目的是总结软件测试教育领域的经验和知识,以帮助读者(教育工作者和研究人员)在大学环境中设计和提供软件测试课程,并在这一领域进行进一步的教育研究。方法:为了满足上述需求,我们进行了一次系统的文献映射(SLM),以综合教育工作者社区就此主题发表的内容。在汇编了307篇论文的候选库并应用了一套纳入/排除标准后,我们的最终库包括了1992年至2019年期间发表的204篇论文。结果:软件测试教育的话题越来越活跃,从论文数量的增加可以看出。许多教学方法(如何最好地教测试),课件和测试教育的具体工具已经提出。人们提出了测试教育方面的许多挑战以及如何克服这些挑战的见解。结论:本文为教育工作者和研究人员提供了软件测试教育中现有研究的分类。我们进一步综合了教学软件测试时报告的挑战和见解。本文还为软件测试教学的大量知识和经验提供了参考(“索引”)。
2020-03-08 cs.SE
Fuzzing Deep Learning Compilers with HirGen
针对深度学习编译器高级IR优化阶段缺陷率高的问题,提出HirGen自动化测试技术,通过三种覆盖率准则、高级IR语言特性利用及三个测试预言,在TVM中检测出21个缺陷,并优于现有基线。
2023-06-21 cs.SE
WebMAC: A Multi-Agent Collaborative Framework for Scenario Testing of Web Systems
Wuhan University(武汉大学);Jiangxi Normal University(江西师范大学)
本文提出WebMAC框架,通过多智能体协作完成测试场景描述和转换,提升测试脚本执行成功率和效率,减少token消耗,并有效发现更多Web系统错误。
2026-04-15 cs.SE
Assessing Exception Handling Testing Practices in Open-Source Libraries
现代程序设计语言(例如,Java和C#)提供了将错误处理代码与常规代码分离的功能,旨在增强软件的可理解性和可维护性。然而,异常处理(EH)代码的结构,在这样的语言可能会导致多个,不同的,复杂的控制流,这可能会影响软件的可测试性。以前的研究报告,EH代码通常被忽视,没有得到很好的测试,它的误用可能导致可靠性下降和灾难性的故障。然而,很少有人知道测试实践和EH测试有效性之间的关系。在这项探索性研究中,我们(i)测量了EH测试关于代码覆盖(指令,分支和方法)标准的充分程度;(ii)通过测量其检测人工注入故障(即,突变体)。我们的研究是使用来自开源生态系统的27个长寿Java库的测试套件进行的。我们的研究结果表明,指令和分支内的$\mathtt{catch}$块和$\mathtt{throw}$指令覆盖较少,与整体指令和分支的统计意义。尽管如此,大多数研究的图书馆提出的测试套件能够检测到超过70%的注入故障。在这项研究中创建的总共12,331个突变体中,测试套件能够检测到其中的68%。
2021-05-02 cs.SE