A Large-scale Empirical Study on Fine-tuning Large Language Models for Unit Testing
本研究针对微调大型语言模型在单元测试中的应用进行了大规模实证研究,涵盖3个任务、5个基准和37个模型,发现微调LLMs在几乎所有指标上均优于现有最先进方法,并指出大规模decoder-only模型表现最佳,同时揭示了提示工程的巨大潜力。
2024-12-21 cs.SE
Quality Assurance And Integration Testing Aspects In Web Based Applications
集成测试是软件测试生存周期的重要阶段之一。随着互联网和Web服务的快速发展,基于Web的应用也在迅速增长,其重要性和复杂性也在不断增加。分布式组件、应用程序的异构性和多样性,以及它们对多平台的支持和协作性,使得这些应用程序变得更加复杂,规模也在迅速增长。这些应用程序的质量保证变得越来越重要。测试是实现和确保这些软件或基于Web的产品质量的关键过程之一。在基于Web的应用程序中涉及到许多测试挑战。但最重要的是,集成是与基于Web的应用程序相关的最关键的测试。在集成测试工作中涉及到许多具有挑战性的因素。这些因素对基于Web的应用程序的整体质量有近70%到80%的影响。在软件行业中,不同类型的测试方法被从业者用来解决与集成相关的问题,这些问题是由于基于Web的应用程序的复杂性不断增加。
2012-07-13 cs.SE
Insights from the Field: Exploring Students' Perspectives on Bad Unit Testing Practices
本文通过让三所高校184名学生使用IDE插件自动检测测试异味,考察其对不良单元测试实践的认知及插件效果,为优化测试教学和代码评审提供依据。
2024-04-15 cs.SE
Improvement of Key Problems of Software Testing in Quality Assurance
质量保证确保项目将根据先前批准的规格,标准和功能完成。要求没有缺陷和可能的问题。它从项目一开始就监控并尝试推进开发过程。软件质量保证(SQA)是整个软件开发过程的组合,包括软件设计、编码、源代码控制、代码评审、变更管理、配置管理和发布管理。本文描述了质量保证中软件测试关键问题的解决方法。现有的软件实践存在一些问题,如测试实践,用户的态度和组织的文化。所有这些树的问题有一些组合的问题,如测试中的快捷方式,减少测试时间,不良的文档等,在本文中,我们建议的策略,提供上述问题的解决方案。
2012-02-12 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
Engaging Developers in Exploratory Unit Testing through Gamification
本文提出在 IDE 中使用 Gamekins 通过挑战和任务引导探索性单元测试,实验表明其可提升覆盖率、缺陷检测效果与开发者参与度。
2024-08-09 cs.SE
TUnit - Unit Testing For Template-based Code Generators
基于模板的代码生成器开发作为模型驱动开发(MDD)的一部分,需要强大的机制和工具来支持开发人员提高健壮性,即,为指定的输入生成期望的代码。尽管已经提出了不同的测试方法,但是仍然缺乏一种方法,该方法仅测试基于模板的代码生成器的一部分,并且可以在开发的早期阶段使用。因此,在本文中,我们提出了一种方法和基于JUnit的测试基于模板的代码生成器的实现。它不是测试一个完整的代码生成器,而是通过模拟环境支持模板的执行来简化部分测试。这简化了在开发的早期阶段对代码生成器的测试以及对代码生成器的新部件或更改部件的测试。为了测试由被测模板生成的源代码,提出了不同的方法,包括字符串比较,基于API的断言,和基于抽象语法树的断言。
2016-06-15 cs.SE
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
ProbTest: Unit Testing for Probabilistic Programs (Extended Version)
本文提出黑盒单元测试方法 ProbTest,基于优惠券收集者问题自动确定概率程序所需测试次数并提供统计保证,以 PyTest 插件实现,并在 Gymnasium 和随机数据结构案例中评估。
2025-09-02 cs.SE
A Framework for QoS of Integration Testing in Satellite Edge Clouds
本文提出一个卫星边缘云集成测试框架,能适应拓扑变化、管理异构集群、定制实验并部署工具,验证了关键QoS指标测试能力。
2024-07-17 cs.SE
Testing Quality Requirements of a System-of-Systems in the Public Sector - Challenges and Potential Remedies
质量需求在软件项目中是一个困难的概念,测试软件质量是一个众所周知的挑战。如果不对质量要求进行适当的管理,开发中的软件产品就更有可能无法满足未来用户的期望。在本文中,我们分享了在瑞典公共部门开发大型系统时测试质量要求的经验。我们通过分析案例中的文件来补充经验报告。作为最后一步,我们将确定的挑战与文献中的解决方案建议相匹配。我们报告了五个主要的挑战,包括不充分的需求工程和断开的测试经理。最后,我们匹配的挑战,在科学文献中提出的解决方案,包括集成的需求工程,双峰模型,虚拟铅垂线,QUPER模型,和架构上的重要要求。我们的经验对于其他大型开发项目在质量要求测试方面的努力是有价值的。此外,该报告可作为所研究案例中流程改进活动的投入。
2016-02-17 cs.SE
TestART: Improving LLM-based Unit Testing via Co-evolution of Automated Generation and Repair Iteration
TestART通过生成与修复的协同进化,利用模板修复、覆盖率反馈和正向提示注入,提升LLM单元测试的通过率与覆盖率。
2025-03-31 cs.SE
Internet of Things: Current Challenges in the Quality Assurance and Testing Methods
物联网(IoT)技术的当代发展在质量保证领域带来了许多挑战。讨论了当前与安全性、用户隐私、服务可靠性、互操作性和集成相关的问题。所有这些都需要物联网解决方案的特定质量保证方法。在本文中,我们提出了这一领域的最新技术,我们讨论了系统测试学科的特定领域,这是没有足够的相关工作覆盖到目前为止。这一分析得到了我们最近对10家物联网解决方案提供商进行的调查结果的支持,这些解决方案涵盖了物联网应用的各个领域。
2018-05-03 cs.SE
Unit verification procedure as a test of real time messaging-based processes
本文介绍了与安全关键医疗器械测试相关的博士研究的第一批结果:匈牙利医疗器械制造商系统执行的案例研究。本文简要介绍了目前正在使用的测试过程。强调了软件行业中不太常用的测试方法的元素。案例研究中实际测试过程的终点是进一步研究的起点:测试结果的自动化分析。作者开始开发一种新的方法,使用工具的组合,并建模一个基于模型的测试生成工具-这是既新颖又密集的研究领域。
2014-04-27 cs.SE
Using Early Quality Assurance Metrics to Focus Testing Activities
软件或基于软件的系统和服务的测试被认为是生命周期中最耗费精力的活动之一。这尤其适用于那些不能应用高度迭代开发和持续集成的领域。已经提出了几种方法来使用测量作为提高测试有效性和效率的手段。其中大多数依赖于使用与质量保证活动无关的产品数据、历史数据或过程中数据。很少有方法使用来自早期质量保证活动的数据,如检查数据,以便集中测试活动,从而减少测试工作。本文概述了使用早期缺陷检测活动的数据的潜在好处,可能除了其他数据之外,为了集中测试活动。此外,本文概述了一个综合的检查和测试过程,并在两个案例研究的背景下进行评估。考虑到研究的局限性,结果显示测试工作量总体减少了34%,这反映了测试效率提高了约50%。
2013-12-04 cs.SE
IntelliGame in Action: An Experience Report on Gamifying JavaScript Unit Tests
本研究将原面向Java的游戏化插件IntelliGame定制适配至JavaScript单元测试场景,通过152名参与者使用Jest框架的对照实验,验证了其普适性并分析了对测试行为与开发者体验的影响,为JavaScript测试方法优化提供参考。
2024-03-06 cs.SE
A Survey of Video Game Testing
视频游戏项目是出了名的有第一天的错误,无论他们的预算或团队规模有多大。一款游戏的质量对于它的成功至关重要。这种质量可以通过测试来评估和保证。然而,据我们所知,对视频游戏测试知之甚少。在本文中,我们希望了解游戏开发人员如何执行游戏测试。我们调查,通过一项调查,学术和灰色文献,以确定和报告现有的测试过程,以及他们如何可以自动化。我们发现,游戏开发者几乎完全依赖于手动游戏测试和测试人员的固有知识。我们的结论是,目前的测试过程由于缺乏自动化而不足,这似乎是提高游戏质量同时保持成本的自然下一步。然而,目前的游戏测试技术可能无法推广到不同类型的游戏。
2021-03-11 cs.SE
Extreme mutation testing in practice: An industrial case study
变异测试用于评估测试集的有效性。近年来,出现了一种称为极端突变测试的有前途的变化,这种变化在计算上更便宜。它标识了可以完全删除其功能的方法,并且测试套件不会注意到它,尽管有覆盖率。这些方法被称为伪测试。在本文中,我们比较了传统和极端突变测试的执行和分析时间,并讨论了它们在实践中的意义。我们将研究极端突变测试如何影响当前的软件开发实践,并讨论需要解决的开放性挑战,以促进行业采用。为此,我们进行了一个工业案例研究,包括在半导体行业的一个大型软件项目中运行传统和极端突变测试,该项目由超过11,000个单元测试的测试套件覆盖。除此之外,我们还对25个伪测试方法进行了定性分析,并采访了两个有经验的开发人员,看看他们是如何编写单元测试的,并收集了关于极端突变测试结果的有用性的意见。我们的结果包括执行时间,分数,执行的测试和mutator的数量,为什么方法是伪测试的原因,以及采访摘要。我们的结论是,较短的执行和分析时间是很明显的,在实践中,极端的突变测试补充编写单元测试与代码覆盖工具。我们建议,伪测试的代码应突出显示在代码覆盖率报告,极端的突变测试应在编写单元测试,而不是在一个解耦的会话。未来的研究应该研究如何在编写单元测试时执行极端突变测试,以便结果足够快但仍然有意义。
2021-03-15 cs.SE
Goal-Oriented Mutation Testing with Focal Methods
变异测试是评估测试集故障检测能力的最新技术。不幸的是,突变测试消耗了巨大的计算资源,因为它为每个注入的突变体运行整个测试套件。在本文中,我们探讨细粒度的可追溯性链接在方法级(命名为焦点方法),以减少执行时间的突变测试,并验证每个单独的方法的测试用例的质量,而不是通常验证的整体测试套件的质量。我们的方法在开源Apache Ant项目上的验证显示,位于焦点方法中的突变体的速度提高了573.5倍,质量得分为80%。
2018-10-09 cs.SE
KompicsTesting - Unit Testing Event Streams
在本文中,我们提出了KompicsTesting,一个框架的单元测试组件的Kompics组件模型。Kompics中的组件是事件驱动的实体,它们仅通过消息传递进行异步通信。与Actor模型中的Actor类似,它们在消息传递中不共享其内部状态,与使用共享状态的其他并发模型相比,这使得它们更不容易出错。然而,它们既不能避免简单的逻辑和规范错误,也不能避免诸如源于非确定性的数据字符之类的错误。因此,需要一种工具,能够以类似于用于函数和模块化段代码的xUnit框架的方式,对消息传递组件进行快速和迭代的开发和测试。这些框架以命令式的方式工作,不适合测试消息传递组件,因为这些组件的行为被编码在它们发送和接收的消息流中。在这项工作中,我们提出了一个理论框架,用于描述和验证消息传递组件的行为,独立的模型和框架实现,以类似于使用正则表达式描述字符流的方式。我们展示了如何使用这种方法来执行黑盒和白盒测试的组件,并说明其可行性,通过设计和实现基于这种方法,KompicsTesting的原型。
2017-05-12 cs.SE
On Extracting Unit Tests from Interactive Programming Sessions
软件工程方法论建议开发人员应该捕获他们的努力,以确保程序在可重复和自动化的工件中正确运行,例如单元测试。然而,当从探索性测试到脚本测试的范围内观察开发人员活动时,我们发现许多工程活动都包括探索性测试的爆发。在本文中,我们建议利用这些探索性的测试突发自动提取脚本测试从这些会话的记录。为了做到这一点,我们窃听开发环境,这样我们就可以记录所有的程序输入,所有用户发出的函数调用,以及探索性测试会话的所有程序输出。然后,我们建议使用机器学习(即聚类)从这些记录中实时提取脚本测试用例。我们概述了两个早期原型,一个是静态的,一个是动态的。我们通过例子概述了这个想法如何融入编程的更大研究方向。
2012-12-08 cs.SE
Product Backlog Rating: A Case Study On Measuring Test Quality In Scrum
敏捷软件开发方法专注于进度落后或极有可能在开发阶段出现问题的软件项目。在过去的十年中,敏捷方法已经从邪教技术转变为主流方法。敏捷软件开发是一种敏捷软件开发方法,由于其自适应性而被广泛采用。本文提出了一个度量标准,衡量质量的测试过程中的一个SocketProcess。由于产品质量和过程质量相互关联,提高测试质量可以确保高质量的产品。此外,获得八年的成功实施的SoftwarePeople的经验,我们描述了强调测试过程中的SSPRING过程。我们提出了一个度量产品积压评级(PBR),以评估测试过程中的Sockets。PBR考虑了在一次迭代中开发的特性的复杂性,评估了测试等级,并提供了测试过程的数值分数。该指标能够提供产品开发周期中测试过程的全面概述。我们提出了一个案例研究,展示了如何在SoftwarePeople中使用度量。案例研究解释了一些功能,已在Sprint中开发的功能的复杂性和潜在的测试评估的困难,并显示如何在Sprint中计算PBR。我们提出了一个测试过程的评估指标,提供了深入了解的Sunday测试过程。然而,该度量需要考虑相关联的资源(例如,质量保证工程师,时间周期的长度)。
2014-11-25 cs.SE
Quality Assurance for LLM-RAG Systems: Empirical Insights from Tourism Application Testing
本文通过测试旅游应用中三种 LLM-RAG 变体,提出包含 17 个指标的质量评估框架,发现新版本在响应长度和复杂性上改进更明显,为生产环境部署提供实践指导。
2025-02-09 cs.SE
Does mutation testing improve testing practices?
已经定义了测试质量的各种代理度量,以便在编写测试时指导开发人员。代码覆盖率在实践中特别好地建立起来,尽管覆盖率如何与测试质量相关的问题是一个正在进行的辩论。突变测试提供了一个有希望的替代方案:人工缺陷可以识别测试套件中的漏洞,从而为额外的测试提供具体的建议。尽管突变检测有明显的优势,但在实践中还没有很好地建立起来。直到最近,突变测试工具和技术还不能扩展到复杂的系统。虽然他们现在做规模,剩下的障碍是缺乏证据表明,编写测试的突变体实际上提高测试质量。在本文中,我们的目标是填补这一空白:通过分析近1500万个突变体的大型数据集,我们研究了这些突变体如何随着时间的推移影响开发人员,以及这些突变体如何与真正的故障相关。我们的分析表明,使用突变测试的开发人员编写更多的测试,并积极改善他们的测试套件与高质量的测试,使更少的突变。通过分析一个数据集的过去修复真正的高优先级的故障,我们的分析进一步提供证据,突变体确实与真正的故障。换句话说,如果突变测试被用于引入错误的更改,它将报告一个可以防止错误的活突变体。
2021-03-12 cs.SE
JUGE: An Infrastructure for Benchmarking Java Unit Test Generators
研究人员和实践者已经设计并实现了各种自动化测试用例生成器来支持有效的软件测试。这样的生成器存在于各种语言(例如,Java、C#或Python)和各种平台(例如,桌面、网络或移动应用程序)。这种发生器表现出不同的有效性和效率,这取决于它们旨在满足的测试目标(例如,库的单元测试与整个应用程序的系统测试)以及它们实现的底层技术。在这种情况下,从业人员需要能够比较不同的发电机,以确定最适合他们的要求,而研究人员寻求确定未来的研究方向。这可以通过系统地对不同发电机进行大规模评估来实现。然而,进行这种经验性评价并非易事,需要作出大量努力来收集基准,建立评价基础设施,并收集和分析结果。在本文中,我们介绍了我们的JUnit生成基准测试基础设施(JUGE)支持生成器(例如,基于搜索、基于随机、符号执行等)寻求自动化用于各种目的的单元测试的产生(例如,验证、回归测试、故障定位等)。其主要目标是通过标准化评估和比较过程,减少总体工作量,简化几个发电机的比较,并加强学术界和工业界之间的知识转移。自2013年以来,与基于搜索的软件测试研讨会一起举办的单元测试工具竞赛已经举办了八届,并使用和更新了JUGE。因此,越来越多来自学术界和工业界的工具(超过十种)在JUGE上进行了评估,这些工具多年来已经成熟,并可以确定未来的研究方向。
2022-10-28 cs.SE
Quality and Reliability Metrics for IoT Systems: A Consolidated View
质量和可靠性度量在系统开发和测试阶段的状态评估中起着重要的作用,并作为优化测试过程或定义系统的退出或验收标准的工具。这项研究提供了适用于物联网(IoT)系统的可用质量和可靠性指标的综合视图,因为没有全面的研究提供了针对这些系统的视图。本文中分类和讨论的质量和可靠性指标分为三类:评估物联网系统或服务质量的指标,评估测试过程有效性的指标,以及可以在这两种情况下普遍应用的指标。在讨论中,给出了在测试过程中正确使用所讨论指标的建议。
2020-11-21 cs.SE
Unit Testing in ASP Revisited: Language and Test-Driven Development Environment
University of Calabria(卡拉布里亚大学);University of Applied Sciences Upper Austria(上奥地利应用科学大学)
本文重新审视ASP单元测试语言与工具,提出支持内联测试的新规范语言,并分析其计算复杂度,构建测试驱动开发环境。
2024-01-04 cs.AI cs.SE
Testing Multi-Subroutine Quantum Programs: From Unit Testing to Integration Testing
本文针对多子程序量子程序的测试需求,提出从单元到集成测试的完整测试准则与技术,涵盖IO分析、关系检查、结构及行为测试等,并通过变异体和随机输入验证了方法的有效性。
2024-05-24 cs.SE quant-ph
Cross-View of Testing Techniques Toward Improving Web-Based Application Testing
Web应用程序(WA)的失败可能会导致机构的崩溃,因此,随着时间的推移,高质量的WA的重要性正在增加。测试是决定WA是否可靠的最佳质量度量之一。WA的测试方法缺乏对WA的功能需求测试的适当覆盖。另一方面,一些方法产生的测试用例已经覆盖WA的测试,但他们也产生了大量的无关测试用例。本研究分析了WA和GUI应用程序的主要测试方法。此外,我们还概述了测试驱动开发及其对当前开发的影响。然后给出了满足适当测试的良好测试方法的规范。
2012-05-30 cs.SE
Toward Automated Virtual Electronic Control Unit (ECU) Twins for Shift-Left Automotive Software Testing
University of Applied Sciences Esslingen(埃斯林根应用科技大学);NUVUS GmbH(NUVUS有限公司)
本研究提出一种自动化虚拟ECU双胞胎方法,通过代理驱动的工作流和反馈机制,实现早期软件测试和集成,提升测试的可重复性和安全性。
2026-02-20 cs.SE
Taming the Beast: Fully Automated Unit Testing with Coyote C++
本文提出 Coyote C++,一个面向 C 和 C++ 的全自动化白盒单元测试工具,结合 concolic 执行引擎与自动化测试套件生成,实现高覆盖率与高速测试,并支持手动优化,使 C++ 自动化测试在工业应用中真正可行。
2024-01-04 cs.PL cs.SE
An Expert Module Design and Implementation that Evaluation the C&K Metric Suite in Terms of Object Oriented Software Quality
面向对象软件具有封装性、继承性、内聚性、耦合性和多态性等特性。这些特性对面向对象软件的测试、维护和修复活动有着重要的影响。这些活动的成功结束,取决于正确的检测和正确的解释的指标将被评估。通过开发和使用软件测试工具,也可以安全、快速地评估这些指标。目前,许多软件测试工具都是面向对象的。但是,这些工具的功能存在一些限制。许多这种工具只产生度量结果,不采取任何行动,在这一点上,这些结果意味着什么,以及它如何影响软件的质量。因此,需要使这些工具多样化并提高其能力。基于本研究中提到的软件测试工具的局限性,旨在通过专家系统的方法提供面向对象测试过程的自动化。为此,专家模块,审查和解释的度量结果,提供信息的内部质量属性的项目(.jar扩展名)开发的面向对象的编程方法已经开发。本模块采用了Chidamber和Kemerer(C&K)开发的公制套件。该模块利用软件测试工具QMS获得的度量结果,具有自动、手动和跨版本比较方法的评价特点,并解释了内部质量规范之间的关系。在软件测试活动中,预期betrefend模块将成为白盒测试的支持元素。
2019-02-09 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
Mathematical Principles in Software Quality Engineering
数学对于开发复杂的软件系统有许多有用的特性。一个是它可以准确地描述对象的物理情况或行为的结果。数学支持抽象,这是一个很好的建模媒介,因为它是一个精确的媒介,有一点模糊的可能性。本文表明,数学提供了一个高层次的验证时,它被用作软件媒介。它还概述了基于被测程序源代码的结构测试的显着特点。结构测试方法非常适合于严格的定义,数学分析和精确的测量。最后还讨论了功能测试和结构测试的争论,以使测试有完整的意识。任何程序都可以被认为是一个函数,因为程序输入形成了它的域,程序输出形成了它的范围。一般来说,离散数学更适用于功能测试,而图论更适用于结构测试。
2010-04-10 cs.SE
A Comprehensive Study on Automated Testing with the Software Lifecycle
本文综述了自动化测试在软件生命周期中的作用,分析其相较手动测试在效率、成本和质量评估方面的优势与差异,并探讨自动化测试工具的适用场景。
2024-05-02 cs.SE
Fault Injection in OpenAPI Specifications for Evaluating Black-Box Testing Effectiveness
University of Helsinki(赫尔辛基大学)
研究针对OpenAPI规范常存在的问题,引入故障分类法,在不同严重级别注入故障,用三种测试工具在两个微服务基准上评估,通过多种指标衡量故障影响,揭示规范故障对黑盒测试有效性的作用及相关评估的不足。
2026-07-15 cs.SE
Generalized Coverage Criteria for Combinatorial Sequence Testing
针对以动作与断言序列为测试向量的系统,提出广义序列覆盖准则、测试套件生成工具及贝叶斯风险量化框架,并实证验证其缺陷发现、风险评估与覆盖效果。
2023-10-31 cs.SE
Did You Remember to Test Your Tokens?
身份验证是确认系统用户身份的关键安全功能,通常在Spring Security等框架的帮助下实现。这是一个复杂的功能,应该在开发的所有阶段进行可靠的测试。单元测试是一种有效的技术,用于细粒度验证未广泛用于测试身份验证的特征行为。部分问题在于帮助开发人员进行单元测试安全特性的资源有限。大多数安全测试指南推荐的测试用例都是从“黑盒”或渗透测试的角度出发的。这些资源对于编写新的单元测试的开发人员,或者想要从安全性的角度来看待覆盖率的开发人员来说并不容易。在本文中,我们通过应用一种基于理论的方法来解决这些问题,通过分析来自53个开源Java项目的481个JUnit测试来识别令牌身份验证的常见(单元)测试用例。本研究的结果是一个开发人员友好的单元测试指南,该指南被组织为53个令牌身份验证测试用例的目录,代表了从我们分析的数据集中学习到的17个场景、40个条件和30个预期结果的独特组合。我们在测试指南中补充了常见的测试气味,以避免。为了验证测试指南的准确性和实用性,我们从选定的开发人员那里寻求反馈,其中一些人在我们的数据集中编写了单元测试。
2020-06-25 cs.SE
The risk factors affecting to the software quality failures in Sri Lankan Software industry
由于技术故障、质量故障、缺乏最终客户验收等原因,以及缺乏适当的管理,软件项目的失败和取消率日益增加。软件项目失败的原因有很多。经验证据表明,测试资源不足是导致测试质量低下的主要因素之一。本研究的主要目的是研究影响软件质量的风险因素,以提供一些建议,以尽量减少质量差的风险。影响软件质量的主要因素有三个,即适当的测试、测试计划和QA团队,它们直接影响软件质量风险。为了进行这项研究,我采用了一个开放式的问卷调查收集定性数据的答复分析,他们使用主题的方法。有经验的参与者仅同意需求清晰度和明确定义的验收标准,而不同意充分的单元测试,最后,还同意不进行回归测试会导致质量故障。在数据分析方面,没有适当的正式测试计划,初始测试计划不现实,没有遵循质量风险管理,没有适当的过程和应急行动计划也会导致项目质量差的风险。据与会者补充说,以下因素也是软件质量不足的原因。经验丰富和技术熟练的员工离开公司,因为没有适当的QA流程,团队成员没有风险管理意识。
2017-06-04 cs.SE
Knowledge Matters: Injecting Project and Testing Knowledge into LLM-based Unit Test Generation
Sun Yat-sen University(中山大学)
本文提出KTester框架,通过整合项目特定知识和测试领域知识,提升基于大语言模型的单元测试生成能力,实验表明其在多个关键指标上优于现有方法,提高了测试通过率和覆盖率,且生成的测试更易读易维护。
2026-06-04 cs.SE
Multi-Agent LLM Collaboration for Unit Test Generation via Human-Testing-Inspired Workflows
Nanjing University of Science and Technology(南京理工大学);Nanjing University(南京大学);Huawei Cloud Computing Technologies Co., Ltd.(华为云计算技术有限公司)
研究针对现有基于大语言模型的单元测试生成方法的局限,提出TestAgent,通过多智能体协作机制模拟人工测试,设计专门智能体、配备工具API并构建知识图谱,在Java项目实验中取得优异结果,性能优于基线和搜索工具。
2026-07-13 cs.SE
Coyote C++: An Industrial-Strength Fully Automated Unit Testing Tool
本文介绍了Coyote C++,一款基于混合符号执行的工业级C和C++全自动化单元测试工具,它无需用户参与即可一键完成测试生成与执行,持续达到约90%的代码覆盖率。
2023-10-23 cs.PL cs.SE
Software Testing of Generative AI Systems: Challenges and Opportunities
本文探讨了生成式AI系统在软件测试中引入的新挑战,分析了传统测试技术的不足,并提出了未来研究的机遇以提升该领域的质量保证。
2023-09-11 cs.SE
A Survey on Software Testing Techniques using Genetic Algorithm
软件行业的总体目标是确保向最终用户交付高质量的软件。为了保证软件的高质量,需要对软件进行测试。测试确保软件满足用户规范和要求。然而,软件测试领域存在许多需要解决的潜在问题,例如测试用例的有效生成、测试用例的优先级排序等。这些问题需要测试的努力,时间和成本。已经提出了不同的技术和方法来处理这些问题。利用进化算法自动生成测试一直是许多研究人员感兴趣的领域。遗传算法(GA)就是这样一种进化算法。在这篇研究论文中,我们提出了一个调查的GA方法来解决软件测试过程中遇到的各种问题。
2014-11-05 cs.SE
Mock Deep Testing: Toward Separate Development of Data and Models for Deep Learning
针对深度学习数据与模型难以独立测试的问题,提出Mock深度测试方法及KUnit框架,通过模块化分解和Mock依赖建模实现组件单元测试,有效识别并解决问题,提升开发效率。
2025-02-11 cs.SE
Mobile App Crowdsourced Test Report Consistency Detection via Deep Image-and-Text Fusion Understanding
针对移动应用众包测试中报告图文不一致的问题,提出两阶段方法ReCoDe,通过深度图文融合理解检测报告一致性,在超2.2万份报告的数据集上验证有效,可提升开发者审核效率。
2023-06-12 cs.SE
Defect Detection Efficiency A Combined Approach
IT行业的生存在很大程度上取决于开发高质量和用户满意的软件产品。然而,质量可以从不同的角度来看待,例如在估计的资源范围内部署产品,限制以及无缺陷。自软件在全球市场诞生以来,测试一直是最有前途的技术之一。虽然有几种测试技术存在,最广泛接受的是传统的脚本测试。尽管技术进步,实现无缺陷的交付仍然是一个挑战。因此,本文的目的是加强现有的测试技术,以实现几乎零缺陷的产品,通过脚本和探索性测试相结合的方法。因此,这种方法使测试团队能够捕获最大限度的缺陷,从而减少昂贵的开销。此外,它导致高质量产品的产生,并确保持续的客户满意度。
2014-01-31 cs.SE
Improving the Technical Aspects of Software Testing in Enterprises
许多软件开发项目由于质量问题而失败。软件测试能够创建高质量的软件产品。由于这是一项繁琐而昂贵的任务,而且往往难以管理,因此其技术背景和组织实施都必须有充分的基础。我们与开发软件的区域公司合作,以了解他们在测试方面的明显弱点和优势。通过分析和比较优势,我们得出了最佳实践。在本文中,我们解释了该项目的背景和素描的设计科学研究方法论使用。然后,我们介绍了一个图形分类框架,帮助企业判断建议的适用性。最后,我们提出了五个技术方面的测试建议的细节。对于每一个建议,我们给出了基于分类框架的实施建议。
2010-11-02 cs.SE
A Survey on What Developers Think About Testing
本调查基于284名开发者的回复,探究开发者对测试的真实态度,发现测试动机受质量追求与个人满足感驱动,但被视为单调任务,建议通过更好认可来改善。
2023-09-03 cs.SE
Automated Generation of Computer Graded Unit Testing-Based Programming Assessments for Education
代码的自动评估,特别是支持教育,是包括在几个学习管理系统(LMS)的一个重要功能,至少在某种程度上。可以设计几种类型的评估,例如要求“填充以下代码”,“编写一个函数”或“纠正以下程序中的错误”的练习。教师的一个困难是创建这样的编程练习,特别是当它们有些复杂时。事实上,教师需要编写练习陈述,思考解决方案,并提供平台评分所需的所有额外信息。另一个困难发生时,教师想使用他们的练习在另一个LMS平台。由于还没有标准的方法来定义和描述编码练习,教师必须将他们的练习重新编码到其他LMS中。本文提出了一种工具,可以自动生成编程练习,从一个单一的和唯一的描述,并可以解决在几个程序设计语言。生成的练习可以由同一平台自动评分,为用户提供智能反馈,以支持他们的学习。本文重点介绍并详细介绍了基于单元测试的练习,并提供了对该平台未来可能生成的新类型练习的见解,以及一些额外的开发。
2019-11-27 cs.SE
Beyond Accuracy: An Empirical Study on Unit Testing in Open-source Deep Learning Projects
Monash University(莫纳什大学);Jilin University(吉林大学);University of Oulu(奥卢大学)
本文通过对 9,129 个 GitHub 开源深度学习项目的实证分析,揭示其单元测试覆盖率低且与项目质量指标相关,并构建了单元测试与故障的映射分类法,以强调单元测试对深度学习项目可靠性的重要性。
2024-02-26 cs.AI cs.SE
Testing Criteria for Mobile Apps Based on Callback Sequences
应用程序质量已被证明是应用程序采用的最重要指标。为了保证质量,开发人员主要使用测试来发现应用程序中的错误,并应用结构和GUI测试覆盖标准。然而,移动应用程序的行为比GUI操作更多,例如,应用程序还处理来自传感器的事件,并通过Android API调用服务和AsyncTasks执行长时间运行的后台任务。我们的研究发现,通过回调交互的重要应用行为应该在测试中涵盖,因为回调之间的数据共享很常见,并且是许多现有错误的原因。我们设计了一系列基于回调序列的测试准则,并使用回调控制流自动机(CCFA)来测量测试的覆盖率。我们的实验表明,在我们的标准的指导下,测试可以发现更多的错误和触发错误比最先进的工具更快。
2019-11-20 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
Characterizing High-Quality Test Methods: A First Empirical Study
为了评估测试套件的质量,可以依赖于突变测试,它计算整个测试用例是否充分地使用了覆盖的行。然而,这种高级别的粒度可能会掩盖单个测试方法的质量。在本文中,我们提出了一个实证研究,以评估质量的测试方法,依靠突变测试的方法级。我们发现高质量和低质量的测试方法在大小、断言数量和修改方面没有重大差异。相比之下,高质量的测试方法受关键测试气味的影响较小。最后,我们讨论了研究人员和从业人员的实际意义。
2022-03-24 cs.SE