没有合适的资源?快使用搜索试试~ 我知道了~
制作和主办:Elsevier沙特国王大学学报软件测试用例优先级排序方法综述Rajendrani Mukherjee,K.Sridhar PatnaikBirla Institute of Technology,Mesra,Ranchi 835215,India阿提奇莱因福奥文章历史记录:2018年4月17日收到2018年7月26日修订2018年9月4日接受在线发售2018年关键词:回归优先技术程序故障覆盖A B S T R A C T测试是通过手动或自动化手段评估系统的过程。回归测试选择(RTS)丢弃测试用例,测试套件最小化(TSM)显示故障检测率下降,测试用例优先级(TCP)不丢弃测试用例。测试用例优先级技术可以是基于覆盖率或历史信息的,也可以是基于模型的。它也可以是成本-时间感知的或需求-风险感知的。GUI/Web应用程序需要特殊的优先级机制。本文对2001年至2018年的90篇学术我们已经探索了IEEE,Wiley,ACM图书馆,Springer,Taylor Francis和Elsevier数据库。我们还描述了每种优先级排序方法及其发现和主题程序。本文包括一个按时间顺序排列的目录清单的审查文件。我们提出了三个研究问题,总结了常用的优先级排序方法,经常使用的主题程序和不同优先级排序技术的分布。据我们所知,这是第一次审查与TCP技术的最后18年的详细报告。我们希望这篇文章将有利于初学者和经验丰富的专业人士。©2018作者制作和主办:Elsevier B.V.代表沙特国王大学这是一CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。内容1.导言. 10422.测试基础...................................................................................................................................................................................................................................................................3.测试用例优先级.......................................................................................................................................................................................................................................................4.研究方法10444.1.搜索策略10444.2.RQ 1-TCP经常使用哪些指标?....................................................................................................................................................................................................10444.3.RQ 2-优先级研究中常用的受试者项目是什么?......................................................................................................................................................................10444.4.RQ3-通常探讨哪些优先排序方法,它们的比例是多少?.......................................................................................................................................................... 10445.测试用例优先级排序的不同方法的回顾10455.1.覆盖感知测试用例优先级排序技术10455.2.基于历史信息的测试用例优先级排序技术10475.3.成本认知测试用例优先级技术10475.4.时间感知测试用例优先级排序技术10485.5.面向需求和风险的测试用例优先级排序技术5.6.基于模型的测试用例优先级排序技术5.7.基于GUI/Web的应用程序的测试用例优先级排序技术10505.8.TCP技术应用于真实世界系统10515.9.其他测试用例优先级排序方法*通讯作者。电子邮件地址:kspatnaik@bitmesra.ac.in(K.S.Patnaik)。沙特国王大学负责同行审查https://doi.org/10.1016/j.jksuci.2018.09.0051319-1578/©2018作者。制作和主办:Elsevier B.V.代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.com1042R. Mukherjee,K.S.Patnaik/沙特国王大学学报6.结论和今后的工作1052参考文献10521. 介绍测试的主要目的是确保可交付的软件没有错误。SDLC的测试阶段在成 本 、 时 间 和 资 源 方 面 是 一 项 复 杂的 任 务 。 在 测 试 优 先 方 法 中(Erdogmus等人,2005年),测试套件在编码开始之前构建。一项涉及本科生的研究表明,随着开发人员为每个编程单元编写更多的测试,可以确保更高的生产率和一致的质量(Erdogmus等人,2005年)。回 归 测 试 确 保 变 更 后 的 应 用 程 序 中 没 有 引 入 新 的 错 误(Chittimalli和Harrold,2009)。然而,由于时间、成本和资源的限制,几乎不可能执行所有预定的测试用例如果一个VB应用程序有5个屏幕,每个屏幕有4个组合框,每个组合框有5个项目,那么该应用程序将产生5⁄4⁄5= 100次测试。对于大型系统,检查每个数据是不可行的或输入组合。从这一点来看,RTS(回归测试选择),TSM(测试集最小化)和TCP(测试用例优先级)的概念在研究人员中获得了价值。虽然测试用例选择丢弃了几个测试用例(Rothermel和Harrold,1996),但测试套件缩减显示出故障检测率的显著损失(Rothermel等人,1998; Elbaum等人,2003年)。测试用例优先化技术不会丢弃测试用例,而是首先运行最重要的测试用例(Rothermel等人,1998年)。TCP是一种改进测试机制(Juristo等人,2004年),也可以应用于测试的初始阶段。测试用例的优先级问题是由几个研究人员在几种方式解决。虽然覆盖感知优先化技术集中于最大化覆盖信息(状态/分支/功能覆盖等), 需求和风险感知优先化技术提出了PORT(测试需求的优先化)(Srikanth等人,2005年)。尽管作为测试用例选择机制受到了严厉的批评,但先前测试运行数据的历史记录(Kim和Porter,2002)也有助于确定测试用例的优先级。 背包求解器(Alspaugh等人, 2007)或ILP(线性规划)(Zhang等人, 2009a)帮助在时间有限的环境中确定测试用例的优先级。如果没有应用时间约束,那么测试用例排序的好处就可以忽略不计了,因为TCP技术有自己的实现开销。由于收集执行信息是一项昂贵的工作,基于模型的TCP如今变得流行(Korel等人, 2005年)。事件驱动软件(EDS),如基于GUI/Web的应用程序,从所有可能的事件组合(鼠标点击,菜单打开等)生成并需要测试用例机制的排序。TCP技术的持续重要性促使我们准备这篇综述文章。本文试图做出以下贡献:1. 在本文中,我们回顾了2001年至2018年关于TCP的90篇学术文章。由于Yoo和Harman(2007)的综述工作到2009年共叙述了47篇关于TCP的论文,我们希望通过增加时间范围和论文数量来弥补这一差距。在这篇综述中选择的论文是很好的抽样,因为我们已经考虑了5篇以上的论文在上述优先级技术。2. 本文还详细描述了每种优先级机制及其技术、结果、主题程序和缺点。虽然Catal和Mishra(2013)建立了TCP的系统映射研究,但缺乏技术细节学科计划、结果、缺点等。据我们所知,这是TCP技术过去18年来的第一份详细审查报告3. 我们还在每个小节的末尾建立了一个按时间顺序排列的目录该目录将作为一个概括的快照。4. 这篇综述文章的最终目的是帮助初学者以及正在进行TCP领域研究的专家。我们设计了三个研究问题,希望他们的发现是有价值的。本检讨文件旨在解决以下的问题-(a) RQ1:TCP经常使用哪些指标(b) RQ 2:定价研究中经常使用的主题计划是什么?(c) RQ3:通常探讨哪些优先排序方法,它们的比例是多少?我们的审查结构如下。第2节讨论了测试的基本事实和最近的趋势第三部分介绍了测试用例优先级问题的定义和相关工作的背景第四部分叙述了我们的检索策略,并分析了研究问题中的发现第5节介绍了每一种优先排序方法及其入围论文和按时间顺序的目录列表。第6节讨论了未来工作的范围,并总结了我们的审查。2. 测试基础在深入测试用例优先级的细节之前,在本节中,我们想总结一下测试的必要性和类型,以及测试工具的一些最新趋势和发展。除了保持产品的质量外,测试还可以确保软件的扩展版本正常工作。在当今竞争激烈的市场中,软件系统应该不断发展以保持相关性。由于直觉测试取决于个人能力,因此始终建议由专业测试团队进行严格测试。不充分的测试会导致遗漏的故障,这需要更多的成本来修复,并需要大量的返工。在现场检测到的缺陷成本是在需求分析阶段发现的缺陷成本的1000倍(Srikanth等人,2009年)。Google的程序员每分钟对源代码进行20次以上的更改,每天执行1亿个测试用例(Thomas等人,2014年)。测试套件是测试用例的集合。测试用例是输入、程序状态和预期结果的三元组。测试套件可以在以后重用,测试用例实际上决定了测试的成功和成熟度。现在我们想总结几种测试技术。功能测试技术被认为是黑盒测试,因为它们只研究输入及其相应的输出等价类划分和边界值分析是功能测试策略的不同形式.他们不需要内部源代码的知识。面向黑盒的技术的主要优点是它不需要收集和存储覆盖信息(Henard等人,2016年)。在控制流测试的情况通过选择一组路径(从程序开始到结束的代码链)来分析程序流语句覆盖、分支/决策覆盖、MC/DC是不同形式的控制流测试策略。分行覆盖率高于报表覆盖率.MC/DC比声明和分支机构覆盖面更强,R. Mukherjee,K.S.Patnaik/沙特国王大学学报1043ðÞðÞ弱于条件覆盖。数据流测试技术还需要源代码知识突变测试包括产生一系列突变体。程序的突变版本被称为突变体,它是通过改变程序语句而产生的。如果测试套件可以检测到故障,则认为突变体已被杀死。可扩展性是突变测试的一个无法解决的问题,因为大型程序可能具有大量的突变体。回归测试确保程序修改不会导致现有功能回归。有时候修改一个程序或修复一个bug可能会产生一个新的bug。随机、全部重新测试、安全(例如-Djvu、试管、文本差异)是几种回归测试技术。重新测试所有策略适用于小程序,但不适用于大程序。一个安全的回归测试选择技术选择每个测试用例,揭示至少一个故障。由于安全技术需要更少的时间来运行,因此它适用于大型程序。如今,敏捷回归测试变得越来越流行。在执行敏捷测试时,测试用例在每个sprint/交付窗口之后执行。在测试第一方法(Feldt等人,2016年),测试套件首先在编码开始之前构建。如果在编码完成后才开始测试,那么测试就变成了一项开销活动。连续测试克服了这一缺点(Saff和Ernst,2003;Elbaum等人,2014; Memon等人,2017年)。在持续测试中,测试脚本在程序更改之间运行。在增加测试的情况下,测试非常频繁地进行,并且在两次更新之间进行。对于批测试过程,测试窗口足够长,通常在夜间进行。我们还想使用一些测试工具,使测试更容易。质量中心是惠普公司提供的一个需求和测试管理工具。UFT(统一功能测试)是慧与的另一个自动化测试工具,可对基于UI/非基于UI的测试用例执行回归测试。它 被 称 为 QTP ( 快 速 测 试 专 业 ) 。 JaBUTi ( Java Byte- codeUnderstanding and Testing)是一个Java应用程序覆盖率分析工具.Jumble有助于测量JUnit测试的覆盖率。Jumble在测试类级别运行。Jester是另一个用于测试Java应用程序的开源轻量级工具,它可以找到未覆盖的代码。JMeter是一个开源的负载测试工具,有助于监控性能。Selenium是一个基于捕获和重放的自动化工具,用于测试Web应用 程 序 。 Selenium 提 供 了 一 个 可 移 植 的 框 架 。 WinRunner 和LoadRunner是慧与设计的另一种测试工具。Seque的Silk Test和SilkPerformer分别帮助进行回归测试和Web/移动应用程序测试。所有这些测试工具都配备了测试技术,可以轻松地发现更多的错误。3. 测试用例优先级在本节中,我们将叙述测试用例优先级的起源和重要性,以及该领域中几个重要相关工作的简要介绍。回归测试占测试预算的80%(Chittimalli和Harrold,2009)。实现变更和新的需求,重新验证软件,提供快速的bug修复是回归测试的重要组成部分。回归测试是非常受时间和资源约束的,并且经常遇到。实时嵌入式系统的回归测试是严重的时间约束,因为他们的仿真环境是非常苛刻的,并主持多个项目(Kim和Porter,2002)。全部重测、回归测试选择(RTS)、测试集最小化(TSM)和测试用例优先级(TCP)是主要的回归测试技术。这些方法中的每一种都有其自身的优点和缺点。当测试套件很小时,Retest-All策略是有效的。然而,随着测试套件的扩展,因此,一个有序的机制就变得必要了。Rothermel和Harrold(1996)讨论了几种回归测试选择技术。安全回归测试选择技术选择揭示至少一个故障的每个测试用例,但它仍然不能确保安全选择,因为安全优先的标准并不总是得到满足(Rothermel等人,2001年)。不安全测试用例选择技术丢弃多个测试用例。 Wong等人(1998年)表明,测试套件最小化在故障检测率方面显示出非常小的下降(2%-7%),但几项研究与这一事实相矛盾(Elbaum等人,2003;Rothermel等人,1998年)。他们认为,在许多情况下,测试套件缩减过程确保了100%的需求覆盖率,但并不能保证与实际测试套件相同的故障检测能力。Elbaum等人(2003)在运行最小化技术时显示出显著的故障检测率损失(60%)。测试用例优先级(TCP)通过不丢弃测试用例克服了选择或缩减机制的这些缺点。根据TCP,在进行测试时,具有较高优先级的测试用例会被提前执行。如果离线进行,TCP将节省时间和成本,并且不会成为开销。测试用例优先级可以分为两种类型-一般测试用例优先级和特定于版本的测试用例优先级。在一般的测试用例优先级排序中,优先级排序对于程序的连续修改版本是有用的。然而,对于特定于版本的测试用例优先级,排序只对一个特定的版本有利。定义1. 对于一个测试套件T,以这样的方式发现T0,即fT0PfT00,其中f是可量化的性能或目标函数,PT是从T的所有可能的优先级排序中导出的集合;T0Juristo等人(2004)将测试用例优先级划分称为改进测试,因为它可以与任何其他技术相关联,以提高故障检测率。在测试用例优先级排序中,测试用例是根据一些标准进行排序的。测试用例优先级的目标可以是多方面的。它可以像增加故障检测率或增加捕获高优先级的要求或降低成本和时间的优先级机制。尽管测试用例优先级主要应用于回归测试,但它也可以应用于软件维护或测试的初始阶段。在本文中,我们回顾了2001年至2018年关于测试用例优先级技术的90篇学术文章。一些研究人员已经解决了测试用例的优先级问题,在几个方面。本文第五部分叙述了每一出版物的应用方法,学科计划,成果和不足之处。覆盖感知优先级技术主要以最大化覆盖率为中间目标,最终目标是提高故障检测平均百分比(APFD)率。基于历史信息的TCP技术利用了测试用例运行的历史记录或历史故障信息。成本中心优先级方案的重点是建立成本模型,通过将成本细分为几个参数,如分析成本,维护成本,执行成本等。一个新的度量时间感知的TCP技术使用背包求解器或ILP(线性规划)来解决回归测试中的时间约束问题。由于测试的主要目的是发现交付的产品是否满足客户的要求,因此基于需求的测试(RBT)越来越受到人们的欢迎。需求的聚类和从高优先级的聚类中选择更多的测试用例也越来越受到关注。基于风险暴露的优先级排序产生高故障检测率。Stallbaum等人(2008)从活动图中生成测试用例,并根据相关风险对其进行优先级排序。基于模型的优先级机制是解决TCP问题的另一种可能性,其中规范模型(事件状态图/活动图)表示系统行为1044R. Mukherjee,K.S.Patnaik/沙特国王大学学报模型执行信息用于对测试用例进行排序。基于GUI/Web的应用程序的TCP技术具有使用用户会话数据作为测试数据的优势。Bryce和Memon(2007)提出了基于TCP的交互覆盖。Srivastava和Thiagarajan(2002),Nardo等人(2015)进行的几项研究证明,TCP技术可以很好地扩展到现实世界的数百万个系统。在下一节中,我们将探讨一些关于测试用例优先级的研究问题。RQ将帮助研究者获得一些重要的见解,如常用的优先级指标、常用的研究主题程序、该领域的杰出研究者等。4. 研究方法4.1. 搜索策略我们已经在以下存储库中搜索了论文:IEEE Explorer,WileyOnline Library , ACM Digital Library , Springer , Tay- lorFrancis,Elsevier。我们也选择了会议和工作坊会议记录.尽管最初的搜索检索到了许多研究,但在检查了标题、摘要、引用和相关性之后,我们将选择的论文缩小到90篇。在准备这篇评论之前,所有的90篇论文都要全文阅读。所选的90篇论文的样本具有丰富的多样性,因为它考虑了每个优先级方案类别中的5篇以上的论文-入选和排除标准:我们遇到了3篇综述论文(Catal和Mishra,2013; Yoo和Harman,2007; Hao等人,2016a)在此之前的TCP。截至2007年,Yoo和Harman的审查工作考虑了47篇论文(Yoo和Harman,2007)。我们希望通过选择90篇论文来扩大视野,直到2018年。Catal和Mishra在2013年进行的系统绘图研究没有探索每种优先排序方法的技术细节(Catal和Mishra,2013年)。我们试图解释每一个优先级的方法与他们的技术,结果和主题程序。在每个小节的末尾,按时间顺序列出所选论文的目录是这项检讨工作的另一个特色据我们所4.2. RQ 1检测到的平均故障百分比(APFD)是解决优先级的最主要指标。Catal和Mishra(2013)指出,34%的论文使用了APFD指标。然而,除了APFD之外,研究者们还提出了储蓄因子(SF)、覆盖有效性(CE)、表2列出了几个有用的指标。4.3. RQ 2本RQ调查了TCP技术实验中常用的主题(程序、我们遇到了几个C/JAVA程序,这些程序被反复用于TCP研究。某些案例研究应用程序或基于Web的应用程序也被反复选择。表3列出了RQ 2的调查结果。4.4. RQ 3有多种可用的优先级排序技术。本研究的目的是对它们进行分类,并找出它们的比例。我们选择了过去18年(2001-2018)的90篇出版物。本文第5节详细介绍了每个优先级方案。1. 覆盖感知方法是最普遍的(10%),而基于需求的方法(7.77%)是第二好的方法。2. 基于时间、成本和历史信息的TCP技术也变得越来越流行(各占5.5%)。3. 4.4%的论文涉及实时系统。4. 在4.4%的论文中探索了基于排序的搜索算法,在3.3%的论文中观察到了风险意识排名表2被几个优先级研究使用。缩写完整形式说明知识,这是第一次审查工作的总结报告TCP技术的最后18年叙述测试案例的论文平均百分比检测到的故障APFD值范围在0到100其中较高的值表示较好的故障检测。生成,测试用例执行被排除在外。研究问题:我们还提出了三个研究问题。之结果SF Savings Factor SF将APFD转换为福利规模。SF1000表示1%的APFD增益产生1000美元的节省。RQ将使审查有用的专家以及初学者谁愿意进行TCP技术的研究。表1描述了RQ及其益处。CE覆盖范围有效性CE值范围在0到1之间。CE考虑单个测试用例的成本和覆盖范围。如果满足测试要求,则可获得高CE。表1研究问题和动机。研究问题受益于发现CI收敛指数CI有助于决定何时停止试验.APFDCAPFD per cost每单位检测到的故障严重性单位测试成本计算。NAPFD标准化APFD此指标考虑两种故障检测和检测时间。RQ1:TCP经常使用哪些指标?RQ2:优先级研究中常用的主题程序RQ3:通常探讨哪些优先排序方法,它们的比例是多少?该RQ将有助于重建现有指标,同时提出新的指标。该领域的新研究人员将发现,使用这些主题程序复制现有研究更容易。如果提出一种新方法,也可以使用这些主题进行验证。这个RQ将给出一个关于哪些技术可以进一步探索的想法检测到的故障的平均严重性RP最可能相对位置APDP防止损坏的平均百分比要求i的ASFD是针对该要求检测到的故障的严重性值的总和除以TSFD(检测到的故障的总严重性使用发现缺陷的第一个失败测试用例的平均相对位置。此度量主要用于基于模型的TCP。APDP用于衡量基于风险的测试用例生成和优先级排序的有效性。R. Mukherjee,K.S.Patnaik/沙特国王大学学报1045表3几个优先级研究使用的主题程序。程序/应用程序名称语言/平台tcas(138字节),schedule2(297字节),schedule(299字节),tot_info(346字节),print_tokens(402字节),print_tokens2(483字节),replace(516字节),space(6218字节)grep(7451 KB),flex(9153 KB),sed(10 KB),ant(80.4 KHz)、jmeter(43.4KHz)、xml-sec(16.3 KB),jtopas(5.4KB),这些是来自SIR(软件基础设施库)的8个C程序,它们是公开可用的。前7个被称为西门子计划,第8个计划是欧洲航天局的计划。UNIX实用程序JAVA程序锡耶纳(≥2: 2克朗)JAVA程序Bash(≥ 50 KB)提供Unix服务接口的shell程序帝国(63 K)在C.开源软件JDepend案例研究应用程序。执行评分并生成指标。TerpOffice(≥ 90 KB)包括TerpWord,TerpPaint,TerpCalc等。5. 尽管覆盖感知方法占主导地位,但2.2%的论文研究了没有覆盖信息的算法6. 如果一种技术只在一篇论文中使用,那么该技术将显示在其他类别中。图1描绘了几种TCP技术的分布。 我们还在图中绘制了一年的论文分布图。 二、测试用例优先级研究在2007年至2010年期间获得了最高关注。它在2016年也飙升。在看到年度分布后,我们可以得出结论,研究人员对测试用例优先级化的兴趣非常活跃。5. 测试用例优先级排序的不同方法综述在本节中,我们将重点介绍90个来自测试用例优先级排序的各种途径的著名研究出版物。测试用例优先级技术可以有几种方法。1. 基于覆盖的优先级2. 基于历史信息的优先级排序3. 成本感知优先级4. 时间感知优先级Fig. 1. 优先级技术的分布。图二、关于测试用例优先级的年度明智论文出版物5. 需求和风险感知优先级6. 基于模型的优先级7. GUI/Web应用程序优先级8. 其他特殊方法(蚁群优化技术、搜索算法、聚类技术等)对于每个出版物,用于排序测试用例的方法,实验的主题程序和结果以及缺点在按时间顺序列出的目录中详细说明。该目录还将作为所讨论出版物的简要介绍。一个单独的小节专门用于现实世界/工业案例研究中应用的优先级排序技术。5.1. 覆盖感知测试用例优先级技术覆盖感知优先级技术旨在最大化程序元素(语句/分支/方法等)的覆盖率测试用例,需要详细的源代码知识它基本上遵循白盒/结构测试方法(图3)。实现最大覆盖率可以被看作是一个中间目标,而最终目标是提高故障检测率。现在,我们想重点介绍9篇研究论文,它们为基于代码覆盖率的优先级技术增加了一个新的维度基于覆盖率的测试用例优先级排序技术在2001年受到关注,Rothermel et al. 表明更好的覆盖率产生更好的故障检测率(Rothermel等人,2001年)。九个优先级技术应用于8个C程序从SIR(软件库基础设施库)。最有见地的研究结果表明,对于前七个计划(称为西门子计划),总技术优于附加技术,但对于第八个计划,空间,这是欧洲航天局的一个真正的和巨大的计划,附加技术表现更好。这些额外的技术被称为反馈或贪婪策略,因为它们首先迭代地选择最高覆盖率的测试用例,然后调整尚未覆盖的元素(语句/分支等)的剩余测试用例该研究的缺点是它考虑了相同严重程度的所有故障,没有考虑成本因素。作为Rothermel研究的延续,Elbaum等人进行了另一项经验评估,该评估将优先化技术分为粗粒度(功能级技术)和细粒度(语句级技术)(Elbaum等人, 2002年)。本文引入了节约因子(SF)的概念SF是将APFD度量转换为效益规模的度量SF1000表示1%的APFD增益可节省1000美元。研究认为,细粒度技术是一种新的工艺,1046R. Mukherjee,K.S.Patnaik/沙特国王大学学报图3.第三章。覆盖感知TCP技术的研究方法Niques以非常小的优势优于粗粒度技术。这种边际收益是没有好处的,因为对于较大的系统,语句级技术太繁琐和昂贵,而函数级技术则不那么昂贵。Jones和Harrold(2001)首次将测试用例优先级技术应用于MC/DC测试套件。作者提出了一种构建技术(测试用例被添加到一个空的测试套件)和分解技术(删除低贡献的测试用例)通过识别必要的和冗余的测试用例。以往的研究主要是用C语言来实现优先级的原型。我们想提出Doet al.(2006)所做的工作,它第一次集中于确定JUnit测试用例的优先级。对于JUnit框架,测试用例分为两个部分除了第一次分析JUnit测试用例外,本研究还在时间和金钱方面增加了一个新如果优先级排序方法涉及反馈策略,则优先级排序的成本增加。然而,这项研究既没有考虑其他测试套件,也没有纳入面向对象的功能(继承,封装,多态性等)。测试 Java 程序。我们想提一下 Do 和Rothermel(2006)执行的另一个实验,该实验研究了与先前工作相同的带有突变故障的开源Java程序。本研究通过考虑TSL(TestSpecification Language)测试集,弥补了以往工作的不足.在2007年进行的另一项研究中,Kapfhammer和Soffa引入了用于订购测试套件的度量CE(覆盖有效性)如有测试需要─快 速 完 成 所 有 要 求 , 然 后 实 现 高 CE ( Kapfhammer 和 Soffa ,2007)。 Fang等(2012)执行了另一项实验,重点是术语逻辑覆盖测试。分支覆盖、修改条件/决策覆盖是几种逻辑覆盖测试方法。逻辑覆盖被广泛接受的安全作者创造了术语CI(收敛指数),用于决定何时停止测试。快速收敛意味着低的测试成本和快速的故障检测率。在几乎所有以前的研究中,作者都提到了优先排序和最优排序之间的显着性能差距。然而,我们想强调Hao等人最近的工作。(2016a)通过ILP(线性规划)实现了基于最优覆盖的优先级排序技术研究得出结论,最优技术在故障检测率或执行时间方面明显劣于附加技术。表4是上述论文的简要摘要.虽然有一个逻辑上的建立,即更大的覆盖率表明更大的有效性,但覆盖率只是确定测试用例优先级的一个参数。最大覆盖范围并不总是确保覆盖所有故障。作为测试的主要目标是为了确保在规定的时间和预算内交付高质量的产品,TCP技术应该以时间、成本和需求为中心。Leon和Podgurski(2003)比较了基于覆盖和基于分布的技术(测试用例的执行剖面如何分布)之间的差异,并证明了基于分布的技术可能比覆盖更有效表4覆盖感知优先级技术的出版物摘要。作者和年度优先技术成果主题计划Rothermel等人(2001年)02 The Dog(2001)Elbaum等人(2002年)9项优先排序技术(共计/额外等)被介绍。优先级技术应用于MC/DC测试套件。介绍了粗粒度(功能级)、细粒度(语句级)的概念测试用例的优先级有助于增加APFD。对于较大的系统,构建技术是有益的,因为它需要较少的时间。细粒度技术的性能优于粗粒度技术的一个非常小的边缘。8个C程序(西门子和空间程序)Tcas,空间实时嵌入式系统QTB、UNIX实用程序flex和grepDo等人2006年,采用了基于覆盖率的技术JUnit测试用例。在某些情况下(蚂蚁和xml安全),非控制技术表现更好。四个Java程序- ant、jmeter、xml-security和jtopas02The Dog(2006)使用突变故障进行了研究。对于蚂蚁来说,表现较佳,而jtopas则没有改善。TSL测试套件中的两个Java程序- galileo和nanoxml,JUnit03 The Dog(2007)覆盖有效性用于对测试用例进行如果满足测试要求,则可实现高CE。Fang等(2012)逻辑覆盖的概念和引入了收敛指数。Hao等人(2016 b)ILP用于实现优化基于覆盖的优先级。快速收敛对于低成本和快速故障检测是必要的。最佳方法比附加技术更差。3个Java程序Siemens和Space程序,2个Java程序(jtopas和siena)R. Mukherjee,K.S.Patnaik/沙特国王大学学报1047ðð 卢恩ðÞÞ基于技术。一些事件驱动软件(GUI/Web应用程序)和来自行业的真实案例研究也有特殊的挑战,优先级测试用例。所有这些理解迫使测试用例优先级研究人员探索其他选择。在随后的小节中,我们将逐一叙述其他测试用例优先级排序方案5.2. 基于历史信息的测试用例优先级排序技术大多数提出的优先级排序技术都是内存较少的。然而,由于回归测试不是一次性的活动,因此应该与某种记忆功能相关联。在本小节中,我们想重点介绍5个考虑测试用例执行历史的研究出版物。Kim和Porter(2002)提出了一种利用测试用例性能记录历史信息的TCP方法作者为每个测试用例分配了一个选择概率,如表5所示。本文还引入了断层年龄的概念。如果测试运行未检测到故障,则故障寿命增加。然而,这种技术受到许多人的强烈批评,因为它本质上是一种测试用例选择机制。Park等人(2008)批评现有的TCP技术是价值中立的。现有的方法考虑了相同严重度的所有故障和相同测试成本的所有测试用例。然而这不是真正的案子作者介绍了一个基于历史价值的技术与成本为中心的方法。历史信息库模块用于记录测试用例的先前成本和故障严重性数据。Fazlalizadeh等人(2009)提到,找到测试用例的最佳执行顺序没有任何确定性解决方案。Kim和Baik(2010)提出了FATCP(FaultAware Test Case Prioritization),该方法利用故障定位技术,利用历史故障信息。错误定位技术实际上是一种调试活动,它指出程序中一个或一组错误的位置。FATCP在大多数西门子项目中都采用了分支机构覆盖率和报表覆盖率优先级排序方法.Huang等人(2012),亲-表5测试用例选择参数。变量描述提 出 了 基 于 测 试 用 例 执 行 历 史 的 MCCTCP ( Modified CostCognizant TCP)MCCTCP不需要对源代码进行分析,它将每个测试用例的历史信息反馈给遗传算法。表6简要介绍了上述文件。5.3. 成本认知测试用例优先级技术在讨论覆盖感知优先级原型时,我们讨论了节省因子(SF)。SF的确定是将APFD转换为效益量表的基本尝试尽管测试用例优先级可能会节省成本,但它有自己的执行/实现开销。因此,建立成本模型是必要的,在本小节中,我们将重点介绍计算TCP技术的成本效益权衡的5种方法Malishevsky等人(2002)将成本细分为几个子参数。表7显示拟议的费用分类。Elbaum等人(2004年)进行的另一项研究引入了成本效益阈值的概念,该阈值表示需要跨越的边界百分比,以产生积极/有效的APFD增益。 Malishevsky等人(2006)提出了一种代价感知的TCP技术,克服了APFD度量的缺点。他们引入了这个新的度量标准被称为“每单位测试成本检测到的故障严重性单位”。在绘制-APFDy轴表示检测到的总故障严重性的百分比,而不是检测到的故障的百分比。我们想提出另一项由Smith和Kapfhammer(2009)进行的研究。实验包括8个真实世界的案例研究应用程序,以显示成本对构建更小,更快的故障检测值得测试套件的影响。Srikanth等人(2009年)对测试系统可配置软件进行了实验,他们表明配置成本和设置时间起着重要作用。表8简要介绍了上述文件。表7优先化测试用例的成本参数。成本变量说明分析成本TC测试案例T时刻H tc时序观测fh1;h2;.. . ;h tg从先前运行中获得a单个观察值● 较低的值表示较早的观测● 较高的值表示最近的观测Ptc;tHtc;a每个测试用例维护成本执行成本选择的成本结果检查成本CfFTnFT0不选择Tn T0的缺失故障成本,其中T0是所选测试套件(集合差-F(T)中存在但F(T 0)中不存在Cf Fk 不F kT 0忽略故障的成本,其中F kx是测试套件x检测到的版本v k上的回归故障集表6基于历史的优先级排序技术的出版物摘要。作者和年度优先技术成果主题计划02 The Dog(2002)提出了一种利用测试用例历史信息的TCP方法作者为每个测试用例分配了一个选择概率。8 C计划(西门子和航天)Park等人(2008)提出了一种基于历史价值的技术,采用以成本为中心的方法。测试用例执行成本和故障严重度是重要的影响因素。8个版本的开源Java程序ant。Fazlalizadeh等人(二零零九年)考虑了先前回归测试会话中测试用例的优先级测试用例的最优执行没有确定性解。8 C计划(西门子和航天)02 The Dog(2010)FATCP(Fault Aware Test Case Prioritization)。FATCP的表现优于分支机构覆盖率,语句覆盖法8 C计划(西门子和航天)Huang等人(2012年)MCCTCP(Modified Cost Cognizant TCP)用于优先化。观察到故障检测方面的改进两个UNIX工具● sed● flex1048R. Mukherje
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功