没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报模型转换Saqib Iqbala,Issam Al-Azzonia,a阿拉伯联合酋长国艾因艾因大学工程学院阿提奇莱因福奥文章历史记录:2021年3月28日收到2021年8月9日修订2021年8月9日接受2021年8月21日在线提供保留字:模型转换模型驱动工程回归测试测试用例优先A B S T R A C T模型转换的应用是模型驱动工程(MDE)中的一个关键组成部分为了确保生成的模型的正确性,需要对这些模型转换进行广泛的测试。然而,在这些模型转换的回归测试期间,频繁地运行大量的测试用例变得太昂贵了。测试用例优先级排序技术需要对测试用例进行排序,并帮助测试人员在回归测试过程中更有效。其目的是将故障揭示测试用例排名更高,以便测试人员只能执行排名最高的测试用例,并且在预算和资源有限的情况下仍然能够检测到尽可能多的故障。本文的目的是提出一种模型转换回归测试的测试优先级排序方法。该方法是基于利用规则覆盖信息的测试用例。本文提出了一个实证研究,比较了我们的方法引入的几种技术的优先级测试用例。该方法的补充与工具,实现了所提出的技术,可以自动生成测试用例排序。版权所有©2021作者。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍模型驱动工程(MDE)通过在模型中表示系统的所有类型的开发工件和视点来简化复杂和大型系统的开发。模型提供了抽象,这有助于关注最重要和最关键的问题,除了改进工件的表示,提高设计效率和兼容性。由于现代软件的规模和复杂性的增加,MDE已经获得了巨大的普及。 模型转换是MDE最重要的活动之一,它允许操纵和转换模型(Lúcio等人, 2016年)。模型转换过程由转换语言支持,转换语言由转换规则组成每个规则定义输入模型的元素到目标模型的元素的转换。这些规则匹配输入模型的各个部分,以将它们转换为目标模型的各个部分。*通讯作者。电子邮件地址:saqib. aau.ac.ae(S.Iqbal),issam. aau.ac.ae(I.Al-Azzoni)。沙特国王大学负责同行审查模型的正确性在很大程度上依赖于转换过程执行的正确性。因此,对目标模块进行测试,以确保与传统的源代码测试类似的正确性。回归测试也是MDE中的一项重要活动,它确保在响应测试而做出一些更改后模型是正确的。然而,回归测试是一项乏味的工作,因为严格的测试会导致测试用例的数量呈指数级增长。为了减少回归测试的这种开销成本 , 诸 如 回 归 测 试 选 择 ( Harrold 等 人 , 2001 年 ;Rothermel 和Harrold,1994年),测试套件最小化(Harrold例如,1993; Korel等人,2002)和测试用例优先级(TCP)(Malishevsky等人,2006;Rothermel等人,2001年,他被雇用。TCP的目的是选择最少数量的测试用例与最大的覆盖率,以减少回归测试的开销成本。本文提出了一种TCP方法的回归测试的模型转换。所提出的方法利用了几种技术,排名测试用例的基础上,他们的规则覆盖年龄。反过来,如果测试人员面临时间和预算的限制,这有助于他们首先运行具有预期高数量的暴露错误的测试用例本文的主要贡献归纳如下:1. 我们提出了一种方法,用于模型转换的测试用例优先级。https://doi.org/10.1016/j.jksuci.2021.08.0111319-1578/©2021作者。由爱思唯尔公司出版代表沙特国王大学这是一个在CC BY-NC-ND许可证下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comS.伊克巴尔和我。阿佐尼沙特国王大学学报Fig. 1.模型转换模式(转载自Czarnecki和Helsen(2006))。63252. 我们提出了几种技术,可以利用我们的方法来找到一个测试用例排序,最大限度地提高故障检测的有效性。3. 我们提出了一个工具,实现了我们的方法,可以自动生成测试用例排序。4. 我们提出了一个实证研究的结果,比较了几个模型转换的案例研究所提出的技术。本文的结构如下。首先,我们在第2节中提供必要的背景。第3节中有一个激励性的例子。我们提出的测试用例优先级排序方法在第4节中介绍。第五节介绍了我们的实证研究,并讨论了我们的实验结果。第6节讨论了相关文献。第7节讨论了结论和未来的工作。2. 背景随着软件系统的复杂化和大型化,MDE越来越受到人们的欢迎.MDE通过提供一种基于模型的方式来理解和解决与设计和开发相关的问题,从而为此类复杂系统的开发提供了另一种解决方案。本节介绍MDE的一些基本概念。2.1. 模型驱动工程MDE指的是使用模型作为主要工件来记录、设计和实现系统的需求、设计和实现都在不同抽象层次的模型中表示模型有助于降低工件的复杂性,使分析人员和设计人员能够专注于与业务问题解决方案的实现使用自动化方法将模型转换为具体的工件,例如Rumbaugh等人(1991)将模型定义为复杂概念的抽象,以便在实现它之前理解它。MDE在过去几十年中已经实现了工程复杂和可扩展系统的持续普 及 , 具 有 提 高 的 生 产 力 , 更 好 的 质 量 和 降 低 的 维 护 成 本( Brambilla 等 人 , 2017; Mussbacher 等 人 , 2014; VanDerStraeten等人,2008年)。该技术在逆向工程和软件演化过程中代码和数据的高度抽象表示中也被证明是有用的(Mazón例如,2007; Ramón等人, 2014年)。在MDE中,模型使用领域特定语言(DSL)表示和转换,与通用的统一建模语言(UML)相比,DSL更具可定制性。 DSL可以表示来自各种领域的应用程序的模型,例如移动、基于Web或嵌入式(Kelly和Tolvanen,2008)。DSML的语法通常使用定义模型的元素和它们之间的关系的元模型来描述。2.2. 元模型元模型是定义结构、语法和约束以构建有效模型的模型。例如,UML有元模型,元模型有定义和约束来定义UML元素,如包,类,关联等。从元模型构建的模型应该符合元模型中定义的定义和约束。元模型是为通用语言(如UML)定义的,也为特定领域的语言定义的。元模型是模型本身,它规定了可以定义元模型之后的模型的方式。所定义的模型的结构、它们之间的关联以及应用于模型的规则和约束必须符合它们的Meta模型。DSL的语法由元模型定义,但语义和约束并不完全由元模型定义。模型转换通过向DSL提供语义来解决这些问题,例如,它们可以定义将DSL转换到不同域以进行进一步分析的规则(Troya和Vallecillo,2014),从而使它们可重用和灵活,以进行更具综合性的分析(Moreno-Delgado等人, 2014年)。2.3. 模型转换模型转换是MDE框架的基石,它操纵模型并将它们转换成其他模型或代码(Brambilla等人,2017年; Sendall和Kozaczynski,2003年)。模型到模型(M2M)转换是在转换引擎上运行以通过遵循定义的转换规则(规范)将一个或多个输入模型转换为一个或多个目标模型的程序。 该过程如图所示。1.一、模型转换语言基于元模型,元模型使转换过程可重用于符合转换语言的模型实例。在过去的十年中已经提出了几种转换语言,例如AGG(Taentzer等人,2004)、ATOM(Lara和Vangheluwe,2002)、VIATRA ( Csertan 等 人 , 2002 ) 、 QVT ( Greenyer 和 Kindler ,2010)、Kermeta(Jézéquel等人,2011)、JTL(Cicchetti等人,2011)和ATL(Jouault等人, 2006年)。ATL是一种常用的转换语言,因为它具有灵活性,支持Meta建模,并与Eclipse等工具集成2.4. 模型回归检验回归测试是在系统经过定期测试后进行一些修改回归测试可确保修改不会产生意外影响,系统仍能正常运行。S.伊克巴尔和我。阿佐尼沙特国王大学学报图二. BibTeX2DocBook转换的元模型(摘自Atenea(2021))。6326形式符合其规范(IEEEStd2010,)。由于MDE遵循增量开发过程,因此模型会随着时间的推移而变化,这与源代码类似。这些变更会影响系统特性和功能,从而促使对变更后的型号进行重新测试(回归测试)。当变换规则或覆盖准则被修改时,模型也需要重新测试。回归测试的完整性和正确性确保了MDE中模型的质量、一致性和鲁棒性(Brottier例如,2006; Mottu等人, 2008年)。尽管回归测试至关重要,但由于测试用例的规模很大,因此回归测试也会带来很大的成本、时间和精力开销(Yoo和Harman,2012;Zhang等人,2016年)。一些研究表明,回归测试占测试成本的80%(Chittimalli和Harrold,2009)。为了降低回归测试的成本,已经提出了许多技术,例如回归测试选择,测试套件最小化和测试优先级(Yoo和Harman,2012)。 回归测试选择(Harrold等人,2001; Rothermel和Harrold,1994)只生成受修改影响的测试用例。 测试套件小型化(Harrold等人,1993; Korel等人,2002)通过消除冗余测试用例来最小化测试用例的大小。 测试优先级(Malishevsky等人,2006; Rothermel等人,2001)重新排序测试用例并确定优先级,以便有效地识别故障和错误。在这三种技术中,测试选择和测试套件最小化技术被认为是有风险的选择,因为它们经常排除关键测试用例以减少测试用例的大小(Lou等人,2019年)的报告。相反,测试优先级并不排除任何测试用例,而是根据优先级标准对测试用例进行重新排序。因此,测试优先化不会损失故障检测的有效性,并且与其他方法相比被认为是安全的选择(Elbaum等人,2014;Marijan等人,2013年; Srivastava和Thiagarajan,2002年)。3. 转换示例在本例中,我们考虑一个模型转换示例,它使用ATL将符合BibTeX元模型的模型转换为符合DocBook元模型的模型。示例代码来自Atenea(2021),并在附录中列出。从BibTeX到DocBook模型的模型转换是一个经典的例子,文献来呈现和评估用于模型转换的新技术和方法(Alkhazi等人,2020; Troya等人,2018年a)。BibTeX和DocBook元模型如图所示。 2(a)和(b)。抽象类的名称以斜体显示。在BibTeX元模型中,书目由BibTeXFileS.伊克巴尔和我。阿佐尼沙特国王大学学报6327图三. BibTeX模型示例。元素,它由继承自抽象BibTeXEntry元素的元素组成。有几个直接从BibTeXEntry 继 承 的 抽 象 类 : AuthoredEntry , DatedEntry ,TitledEntry,BookTitledEntry和Misc。具体的BibTeX条目根据它们的强制字段集从一个或多个抽象类例如,Book就是一个具体的BibTeX条目。它继承自AuthoredEntry、DateEntry和TitledEntry抽象类。这意味着对于图书条目,除了publisher属性之外,图书还有三个继承属性:id、year和title。此外,图书还继承了对Author元素列表的引用,命名为authors 图 3显示了符合BibTeX元模型的示例模型。在本例中,BibTeX文件由一本书组成,其属性和作者如图所示。在DocBook元模型的情况下(图2(b)),DocBook文档由DocBook元素建模。这个元素由几个Book元素组成,每个Book元素由几个Article元素组成。一个Aricle由几个有序的section组成(section是类Section1的实例)。Section1元素由几个有序的段落组成(段落是类Para的实例)。类Article和Section1继承自抽象类TitleElement。这意味着文章和章节将标题作为继承属性。图4显示了一个符合DocBook元模型的示例模型,该模型是由BibTeX2DocBook转换生成的,下面将对此进行解释。BiBTeX2DocBook转换(如附录所示)包含九条规则。规则指定应该如何从源模型元素生成目标模型元素。因此,规则由输入模式(带有可选的过滤条件)和输出模式组成,输入模式必须在源模型元素上匹配以触发规则,输出模式指定在触发规则时要创建过滤条件在OCL中指定每个输出模式可以有几个绑定,指定如何初始化目标模型元素的属性和引用。绑定也用OCL表示BiBTeX2DocBook 转 换 程 序 的 完 整 解 释 可 以 在 ATLTransformationExample(2021)中找到。这里,我们试图解释与图3所示的样本输入模型的转换相关的规则。在这个转换中,执行了三个规则:Main、Author和TitledEntry_Title_NoArticle。第一条规则Main从BibTeXFile构建DocBook的基本结构。它创建了四个部分,SE1... 4、每个人都有自己的名字。每一节的段落将在执行其余规则时设置。RuleMain使用三个助手:authorSet,它返回输入BibTeX模型中没有重复名称的作者序列;ti- tledEntrySet,它返回输入BibTeX模型中没有重复标题的标题序列;articleSet,它返回输入BibTeX模型中没有重复期刊名称的文章规则Author为每个作者创建一个段落,并将其内容设置为作者规则TitledEntry_Title_NoArticle对包含在集合ti- tledEntrySet中且不是项目的每个TitledEntry当执行此规则时,它将创建两个段落:第一个段落由DocBook中的第一部分引用,第二个段落由第三部分引用请注意,第一段的内容是通过调用helperbuildEntryPara来设置的,该helper buildEntryPara根据相应的条目类型构建段落的内容。在示例输入模型中(图 3),在BibTeX文件中有一个条目是一本书。一本书是一个AuthoredEntry,因此可以由几个作者创作,一个DatedEntry,因此有一个年份属性,一个TitledEntry,因此有一个标题。一本书也有一个id,因为它是一个BibTexEntry元素。 图 4显示了生成的输出模型。DocBook由单个Book元素组成,Book元素由单个Article元素组成。Article元素由四个部分组成,它们将图书信息作为DocBook组成的文档呈现。在模型转换的测试过程中,测试人员创建了大量的测试用例。在每个测试用例中,测试人员需要定义一个输入测试模型。此测试模型必须符合源元模型。然后测试人员可以运行一个转换来获得相应的输出(目标)模型。为了验证转换,测试人员需要检查在输入和输出模型上定义的几个约束的满足情况。这些约束通常用OCL表示,并且有自动化工具用于检查OCL约束的满足情况(MDTOCL,2021)。对于要被视为通过的测试用例,见图4。 DocBook模型示例。S.伊克巴尔和我。阿佐尼沙特国王大学学报6328我þΣð Þ喜喜图五.不同测试用例排序的AUC测量。测试用例的输入模型和相应的输出模型必须满足约束条件。这种测试方法的目的是根据一组断言从语义上检查模型转换的正确性。它已经应用于模型转换测试的其他工作中(Alkhazi等人,2020; Troya等人,2018年a)。例如,在BibTeX2DocBook转换中,考虑以下OCL约束:SrcAuthor. allpark ( ) ->forAll ( aj TrgPara.alllog()->exists(pj p.content= a.author and p.-section.title=这个约束指出,对于BibTeX文件中的每个作者,在名为“作者列表”的部分中有一个段落,该段落的内容是作者的名字。请注意,对于图3中输入模型和图4中输出模型的测试用例,满足此约束。测试人员需要检查每个测试用例是否满足所有约束。如果至少有一个约束未被满足,则测试用例被认为是失败的测试用例。为了验证模型转换,测试人员定义了大量的测试用例,并试图确保所有的测试用例都通过。在模型转换的回归测试中,每当转换程序发生变化时的启发式的是,通过最大化规则覆盖率,测试用例执行尽可能多的规则,因此故障检测的机会变得更好。第一种TCP技术应用贪婪方法来最大化覆盖范围。这是简单的基于覆盖的TCP方法。它使用了一个贪婪算法,该算法将规则覆盖率最高的测试用例排在首位。虽然贪婪技术是非常简单和实用的,但它的缺点是在选择下一个最佳测试用例时没有考虑换句话说,贪婪技术在每一步都做出局部最优选择,并且在许多情况下它不会产生最优解。为了避免陷入局部最优,我们提出了两种基于元启发式搜索算法的全局搜索技术。第一种方法采用遗传算法(GA),第二种方法采用蚁群算法(ACO)。这两种技术都使用基于规则覆盖率的拟合度函数。我们使用曲线下面积(AUC)度量,其中曲线表示当测试用例被执行时所覆盖的测试用例的总数,由TCP技术给出的测试用例的顺序。更正式地说,我们使用以下度量:目标是通过失败测试例在大量测试用例和频繁更改模型转换程序的情况下,发现失败的测试APRC ¼100 ω。1-TR1型电.. . M11型纳米二氮尽可能早地测试用例可以节省测试开销。本文提出的工作试图优先考虑更有可能失败的测试用例。给定一组测试用例,我们的目标是对这些测试用例进行排序,以便更有可能失败的测试用例出现在其他测试用例之前。因此,测试人员可以通过重新运行较少数量的测试用例来尽可能早地发现故障。4. 模型转换的测试用例优先级在本节中,我们将介绍几种可以应用于模型转换的TCP技术。这些技术在第5节中进行了评估。所提出的TCP技术使用每个测试用例的规则覆盖信息。通过分析模型转换程序的源代码,可以提取规则覆盖信息或者通过分析模型转换执行的跟踪模型。例如,Jouault提出了一种方法,可用于从ATL程序的转换执行中自动获取跟踪模型(Jouault,2005)。所提出的TCP技术的目标是最大限度地提高规则覆盖率。使用使用这种方法背后的直觉在这里,APRC代表APRC是由APFD驱动的,APFD是另一个度量,稍后将讨论,它是一个用于测量测试用例优先级技术有效性的常用度量。APRC是当测试用例按照指定的顺序执行时所覆盖的规则百分比的加权平均值。由方程式其中,n表示测试用例的数量,m表示规则的数量。TRi是在覆盖规则i之前必须执行的测试用例的数量。APRC对应于AUC,其中x轴是以给定顺序执行的测试套件的部分,y轴是测试执行所覆盖的规则的部分。当所有规则都被第一个测试用例覆盖时,APRC的最大值出现,当所有测试用例都没有覆盖任何规则时,APRC的最小值出现。考虑下面的示例,其详细信息显示在图五.假设在测试套件中有四个测试用例要进行排序。图中的表格显示了这些测试用例的规则覆盖信息例如,测试用例T1覆盖规则R1、R2和R3。这意味着当执行测试用例T1时,它导致执行上述三个规则。考虑以下测试用例顺序O1:T1、T2、T3、T4和O2:T1、T3、T4、T2。测试用例排序O1是通过Greedy算法获得的排序的示例排序中的第一个测试用例立即得到60%的结果第二个测试用例不会增加覆盖率,但是,在此之后,每个测试用例都会产生20%的额外覆盖率。S.伊克巴尔和我。阿佐尼沙特国王大学学报6329-þþ纳米二氮×见图6。 我们的测试用例优先级排序方法的概述。直到所有的规则都被覆盖。测试用例排序O2从覆盖60%开始,到第一个测试用例结束,但是每个测试用例都会导致额外的20%覆盖。因此,在执行前三个测试用例后,O2导致100%的覆盖率图 5显示了O1和O2的AUC。O1和O2的实际AUC值分别为0.625和 0.725请注意,这些值是对应排序的APRC值。因此,O2比O1更快地实现完全覆盖,并且出于这个原因,它应该是优选的。由于APRC被用作解决方案的适应度函数(排序),因此O2被认为具有比O1更高的适应度值为了评估测试用例优先级排序技术,我们使用了“平均故障检测百分比”(APFD),这是一个常见的有效性度量标准,用于测试用例优先级排序文献。该度量标准最初由Rothermel et al.(2001)提出。APFD测量TCP技术返回的排序检测故障的速度。更高的APFD值意味着更快的故障检测率。以下公式用于计算APFD值:APFD¼ 100 ω。1-TF1型双.. . TFm这里,TFi是在检测到故障i之前必须执行的测试用例的数量。为了计算给定测试用例排序的TFi从概念上讲,APFD表示AUC,其中x轴是按给定顺序执行的测试套件的部分,y轴是测试执行检测到的唯一故障的部分。这非常类似于在前面解释的APFD度量的情况为了在模型转换的回归测试期间简化测试人员的工作,我们开发了一个工具来自动化测试用例优先级排序过程。该工具是一个Java程序,可在GitHub上访问https://github.com/ialazzon/TestCasePrioritiza-tionTool。该工具只需要用户输入两个信息:转换中的规则名称列表和包含测试用例先前运行的跟踪模型这些跟踪模型是从transformation执行自动获得的跟踪模型由跟踪组成,每个规则执行一个跟踪。跟踪捕获所应用规则的名称、源元素和通过应用规则创建的目标元素我们的工具利用这个跟踪模型来构建一个规则覆盖信息模型,该模型稍后由TCP技术使用。作为输出,该工具显示本文中提出的所有算法返回的测试用例排序。此外,该工具还显示与每个订单相对应的APRC值图6给出了我们的测试用例优先级排序方法的概述。使用UML活动图符号,它显示了应用我们的方法所涉及的主要步骤。这些步骤可以通过使用我们的工具完全自动化。为了收集规则覆盖信息,测试用例需要至少执行一次,以创建执行跟踪模型。请注意,该工具实现了本文中介绍的所有TCP技术。为了实现GA,我们使用了Jacobson和Kanber(2015)中提出的基于Java的框架。遗传算法是一种进化算法,它通过应用遗传算子(如突变和交叉)来保持种群的解种群最初由指定数量的排序填充排序表示为长度为n的数组,其中n是表示排序的排名列表的大小。数组中的元素具有0到m1范围内的值,其中m是要优先考虑的测试用例的数量数组中索引i处值为j的元素意味着将测试用例i 1分配给(j 1)排序中的第位。对于变异,我们使用交换算法,对于交叉,我们使用2点交叉算法。对于终止,我们使用了达到指定代数的我们使用成本函数APRC比较排序。GA参数包括变异率、交叉率、世代数我们将每个参数的域划分为几个区间,并从每个区间中选择一个随机值为参数选择实现最佳性能的值的组合对于ACO算法的实现,我们使用Isula。Isula是Gavidia-Calderon和Castañon(2020)提出的ACO算法的Java框架。蚁群算法最初由Dorigo等人(1996)提出,模拟自然界中蚂蚁的行为来解决组合优化问题(Blum,2005)。蚁群算法的实现是蚂蚁系统(AS)。AS这些值是基于试错法,其中ACO算法在几个选定的测试用例优先化问题实例上实现了其最佳性能。为了存储信息素值,我们使用了一个n m二维数组,其中n是表示排序的排名列表的大小,m是要优先考虑的测试用例的数量。5. 实证研究在本节中,我们将介绍我们的实证研究,并讨论我们的实验结果。首先,我们列出了要研究的主要问题。然后,我们提出了不同的案例研究,用于调查研究问题。第三,我们不--表1AS设置。迭代次数10的蚂蚁2000蒸发率(q)0.4信息素重要性(a)1启发式的重要性(b)1S.伊克巴尔和我。阿佐尼沙特国王大学学报6330B如何收集相关数据。接下来介绍评估指标,然后是结果总结和讨论。最后,威胁的有效性的结论。5.1. 研究问题有两个研究问题,我们要调查:1. 第4节中提出的技术如何执行随机搜索? 调查这个问题可以作为一个健全性检查步骤。如果随机搜索技术优于其他技术,那么这意味着不需要使用元启发式搜索算法或基于贪婪的方法。2. 全局搜索技术能胜过贪婪技术吗?在这里,我们比较建议的GA和ACO技术与贪婪的。5.2. 研究对象我们使用了五个不同的案例研究来评估我们的研究问题。四种情况取自先前关于模型变换中基于谱的故障检测的工作(Troya等人,2018年a)。在这四种情况下使用的测试套件是使用模型生成脚本半自动创建的。我们从ImplementationSpectrumBased(2021)获得了测试套件。第五个案例是专门为解决第二个研究问题而创建的,将在随后的章节中介绍和讨论。前四个案例研究如下:BibTeX2DocBook:此转换从BibTeXML模型生成DocBook组合文档。此转换可在ATL Zoo(ATLZoo,2021)中使用。UML2ER:这个转换从UML类图生成实体关系(ER)图。CPL2SPL:这是一种相对复杂的情况,其处理因特网电话领域中的两种建模语言之间的模型转换的若干方面:SPL和CPL(Jouault等人,2006年)。这种转换可以在ATL动物园(ATLZoo,2021)中使用。Ecore2Maude:该转化产生Maude特异性(Clavel等人, 2007年),由Ecore元模型。这些案例研究来自多个应用领域,它们在转换的大小及其结构方面有所不同。表2总结了一些关于转换的信息。例如,转换的大小范围从8到39条规则,代码行(行数)从53到1055。该表还显示了每个案例研究的输入测试模型的数量和突变体的数量。这些测试模型和突变体的创建是为了评估不同的基于频谱的故障检测技术的模型转换中的工作Troya等人。(2018a)中所描述的。每个突变体都是原始模型变换的错误变化,并且通过应用Troya等人提出的用于模型变换的一个或多个突变算子来获得。(2015年)。在我们的实验中,突变体代表需要由测试用例检测到的故障。为了模拟真实故障,在案例研究中,一些突变体是通过应用一个以上的变异算子创建的。此外,一个突变体可以有一个以上的错误规则。当执行一个突变体时,成功地生成一个输出模型。但是,一个或多个OCL断言在输出模型上失败。这允许关注转换编写者所犯的语义错误,而不是语法错误。每个案例研究都有自己的OCL断言,这些断言传递未更改的原始转换,但每个案例研究至少有一个OCL断言失败表2案例研究的信息。为例#规则联系我们突变体数量#测试输入模型BibTeX2DocBook939340100UML2ER85318100CPL2SPL1950350100Ecore2Maude39105550100变种人在一个转换中,我们认为测试用例检测到故障时,至少有一个OCL断言失败的输出模型所产生的测试用例的输入表2还显示了每个案例研究中有100个可用的测试案例。每个测试用例都有一个对应的输入模型,该模型是在Troya等人的工作中半自动创建的。(2018a)中所描述的。当在输入模型上执行变换的变体时,会创建一个或多个输出模型。然后,OCL断言根据输入及其相应的输出模型进行评估如果至少有一个断言失败,则测试用例被称为失败,因此相应突变体中的故障被认为是由测试用例检测到的。在我们的实验中,在每个案例研究中,我们从可用的测试用例中随机选择一些测试用例。5.3. 数据收集我们修改了ImplementationSpectrumBased(2021)中的程序,以获取每个案例研究可用的100个测试案例中每个案例的规则覆盖率信息。此外,我们已经扩展了程序,以报告测试用例的结果时,执行一个特定的突变为每个案例研究。我们已经创建了一个单独的程序,根据相应的规则覆盖信息和特定突变体上的测试用例结果,计算不同测试用例排序的APFD和APRC值。对于每个案例研究,我们随机选择了一些测试案例进行排序。此外,我们随机选择一些需要杀死的变种人。当我们报告一个案例研究的结果时,我们首先注意要排序的测试案例的数量(n)之后是需要杀死的突变体的数量(m)。例如图 7显示了BibTeX 2- DocBook案例研究的APFD结果。每个子图显示了待排序的测试用例数量和待杀死的突变体数量的特定值对的结果5.4. 评估指标为了评估测试用例排序,我们使用APFD度量。由于测试用例优先级排序技术可以在每次运行时产生不同的测试用例排序,因此有必要将每个实验重复最少次数,并对测量的APFD值进行统计分析。在我们的例子中,每个实验重复30次。在每个实验中,测量的APFD值使用箱形图表示,其中较高的中线表示更好的测试用例排序。为了比较结果的两种分布,我们使用非参数Mann-Whitney U检验来检测统计差异(Hollander等人,2013年)。为了进行U检验,我们使用R中的函数wilcox.test进行Wilcoxon秩和检验(R Core Team,2019)。 除了统计学意义外,我们使用Vargha和Delaney效应量测量对于评估差异的大小是有用的●●●●S.伊克巴尔和我。阿佐尼沙特国王大学学报6331Bbb¼¼¼¼¼BB¼¼¼ ¼ ¼¼¼¼在两种不同技术的观察性能。在我们的背景下,考虑APFD作为性能指标,统计测量TCP技术X产生比另一技术Y更高的APFD值的概率。当两个技术-niques是等价的,那么A120: 5。 例如,如果A120比 7,那么这就意味着,与技术Y相比,使用技术X在70%的时间内获得更高的APFD结果。5.5. 结果和讨论图图7-10 分 别 显 示 了 BibTeX 2DocBook 、 UML 2 ER 、CPL 2SPL 和Ecore 2 Maude 案例研究的结果。关于第一个研究问题,我们想比较随机搜索技术与其他三种技术的性能:贪婪,GA和ACO技术。当对两种技术进行统计学比较时,零假设(H0)表明两种技术获得的APFD结果之间没有统计学显著差异,而替代假设(H1)表明差异具有统计学显著性。通过应用适当的统计检验,我们获得p值,即在零假设正确的假设下,获得至少与实际观察结果一样极端的检验结果的概率。P值在[0,1]范围内,通常惯例是p值低于0.05代表统计学显著值,因此在这种情况下可以拒绝零假设。在除两种情况外的所有情况下,p值均低于0.05,因此Greedy、GA和ACO均显著优于随机搜索技术。例外情况包括UML2ER(n个5;m10)、和BibTeX2DocBook(n个15岁20)。 在UML2ER的情况下(图。 8a)所有技术APFD效果不佳。原因是测试套件中的测试用例只覆盖了转换程序中的两条规则。在BibTeX2DocBook案例中(图7d),差异不显著的观察结果可以通过测试套件。BibTeX2DocBook转换仅由9条规则组成,每个测试用例覆盖5到7条规则。在这种情况下,测试用例很快就覆盖了规则。实际上,随机搜索技术返回的测试用例排序的平均APRC大于91:04%,这与APRC非常接近其他技术的平均值(94:40%贪婪和95:19GA和ACO)。关于第二个研究问题,表3显示了A12四个案例的统计数据。每个单元格显示了将行中的TCP技术与列中的技术进行比较时获得的A12值。我们使用Vargha和Delaney(2000)建议的阈值来解释效应量:0.5表示无差异;低于0.5的值表示小差异。(0.44-0.5),中等(0.36-0.43),大(0.29-0.35),或差异非常大(0.0-0.28)有利于柱内技术;高于0.5的值表示小的(0.5-0.56)、中等的(0.57-0.64)、大的(0.65-0.71)或非常大的差异(0.71-1.0),有利于行中的技术。在表中,如果差异在中等、大和非常大的范围内,则单元格分别以浅灰色、灰色和深灰色着色。在这样的单元格中,为了帮助读者,如果结果有利于列中的技术,则添加向上箭头,如果结果有利于行中的技术,则添加向左箭头。粗体的值是假设检验指示统计学差异的值(即,p值小于0.05)。从表中可以看出,在大多数情况下,Greedy、GA和ACO技术之间没有显著差异。在某些情况下,GA和ACO显著优于Greedy,大和非 常大差 异等作 为CPL2SPL( n 个5;mEcore2Maude(n15岁10)。在其他情况下,贪婪算法的性能显著优于GA和ACO算法,差异较大,如CPL 2 SPL(n15;m 20)和Ecore 2- Maude(n15;m10)。我们可以对结果提出以下意见贪婪技术在返回的测试用例方面随机性较低见图7。 BibTeX2DocBook结果。S.伊克巴尔和我。阿佐尼沙特国王大学学报6332见图8。UML2ER结果。图9.第九条。CPL2SPL结果。排序比GA和ACO。这解释了与贪婪技术相对应的箱形图中的小宽度的箱形此外,在许多情况下,贪婪发现测试用例排序与最高的APRC相比,遗传算法和ACO。鉴于在这样的排序,与GA和ACO返回的排序相比,多个测试用例更可能覆盖相同的规则,这将解释贪婪在上面提出的几种情况下的优势。如果测试套件的大小(n)是S.伊克巴尔和我。阿佐尼沙特国王大学学报6333B见图10。 Ecore2Maude结果。表312效应量估计的统计量。大,突变体的数量(m)大。然而,贪婪技术在某些情况下可能表现得太差,如下面所讨论的。表4给出了任意模型转换测试实验的测试用例覆盖信息。在测试套件中有15个测试用例,在模型转换程序中有10条规则。我们做了以下两个假设。 第一个每条规则都有缺陷第二个假设是,如果一个测试用例覆盖了一个规则(如表中的X标记所示),那么这个测试用例就发现(消除)了那个规则中的错误。我们比较贪婪,GA和ACO技术在其返回的测试用例排序的APFD值。结果表明,遗传算法和蚁群算法是有效的。比贪婪更有吸引力A12值为0: 0,表明GA和ACO的效应量非常大。在这种情况下,贪婪的平均APFD为48:31%,GA和ACO的平均APFD为88:67%这可以通过表4中所示的测试用例覆盖的性质来解释。Greedy会选择测试用例T6;. ;T15,但是,这些测试用例只覆盖了S.伊克巴尔和我。阿佐尼沙特国王大学学报6334表4任意模型转换测试实验的测试用例覆盖信息。T1T2T3T4T5T6T7T8T9T10T11T12T13T14T15R1XR2R3XXR4R5XXR6R7XXXXXXXXXXXXR8XXXXXXXXXXXR9XXXXXXXXXXXR10XXXXXXXXXXX模型转换。GA和ACO不受此影响,在这种情况下,产生的排序,覆盖规则比贪婪更快,导致更好的APFD结果。事实上,三种技术的APRCGreedy的平均APRC远小于GA和ACO。这可以解释贪婪在这种情况下的糟糕表现实证研究的主要结论是,没有一种技术可以保证在所有模型转换情况下都优于其他技术。因此,我们的建议是获得贪婪和全局搜索技术,如GA或ACO的测试用例排序。在这种情况下,测试人员应选择Greedy技术返回的排序,除非Greedy排序的APRC显著小于GA或ACO返回的排序的APRC。例如,如果贪婪排序的APRC比GA或ACO排序的APRC小10或更多,则建议测试人员使用GA或ACO排序。代表显著差异的阈值可以由测试人员设置。它可能取决于几个因素,比如转换中的规则数量和测试套件的大小.5.6. 对有效性的在下文中,我们讨论了对我们实验结论有效性的可能威胁。有效性威胁有四种基本类型:1. 结论有效性:结论有效性的威胁与影响根据观察数据得出正确结论的能力的因素有关。为了应对这一威胁,我们进行了适当的统计测试。我们使用得出任何结论时,均考虑所有p值。当比较任何一对技术时,我们考虑了每种技术下30次独立运行的APF
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功