没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报Java项目测试气味检测的多标签分类方法Mouna Hadj-KacemMouna,Nadia BouassidaMir@cl实验室,Sfax大学,Sfax,突尼斯阿提奇莱因福奥文章历史记录:收到2021年2021年10月4日修订2021年10月24日接受2021年11月2日网上发售保留字:测试气味测试气味的基准多标记分类问题转化包围法A B S T R A C T软件测试在软件开发和软件质量保证中起着至关重要的作用。然而,负责测试的代码的质量本身可能会受到糟糕的设计选择的影响,称为测试气味。在文献中,开发人员可能会对测试气味进行不同的解释,这反过来又会导致不同的检测工具和结果。在我们的工作中,我们选择了最常用的检测工具,并研究了它们在不同项目和不同测试气味中的总体一致性。发现的结果进行了评估,根据平均水平的协议,我们观察到一个明确的工具之间的分歧。为了克服这种误解的差距,我们在本文中提出了一种多标签分类方法来检测测试气味的基础上,测试代码的深层表示。我们使用4种问题转换技术和4种集成技术进行了实验。为了评估我们的实验结果,我们使用基于工具的标签方法建立了一个基准,并将其公开。二进制相关性和RAkEL被认为是最好的多标签技术,实现高性能的结果。版权所有©2021作者。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍在软件系统中,测试代码负责测试产品代码。这两种代码在软件演化过程中易受不同问题的影响。代码气味(Fowler等人,1999)和测试气味(Van Deursen等人,2001)分别是出现在生产和测试代码中的设计缺陷的指标。几项研究(Palomba等人,2018; Bavota等人,2015)指出它们是能够损害软件质量的因果因素,即低可维护性。为了减轻它们的影响,应该应用重构过程。尽管它们对测试代码有有害的影响,但与代码气味(CS)相比,测试气味(TS)受到的研究关注较少。正如Bladel和Demeyer(2018)所述,当重构应用于生产代码时,测试套件被认为是一种保护措施然而,这不适用于测试环境。*通讯作者。电 子 邮 件 地 址 : mouna. gmail.com ( M. Hadj-Kacem ) , nadia.bouas-sida@isimsf.rnu.tn(N. Bouassida)。沙特国王大学负责同行审查代码,它变得更难。在重构过程中帮助开发人员的一种可能的方法是根据测试套件的严重性级别来确定它们的优先级。如果一个测试套件存在多个测试气味,那么它将优先被重构其他人这可以在重构之前的检测步骤中实现。大多数现有的TS检测方法是基于规则的,由此产生的问题的阈值的校准。这反过来又反映了TS的主观解释,导致不同的检测结果。例如,在 文 献 中 , 关 于 TS 出 现 的 时 间 缺 乏 共 识 。 根 据 Tufano et al.(2016),TS与代码的创建同时引入。作者使用检测工具(Bavota等人,2012年,项目变更。相比之下,Van Rompaey等人(2007)认为软件演变期间发生的变更是TS的原因。这种不一致可以用开发人员对TS的主观解释来解释。为了实证研究这个问题,我们将比较两种常用的检测工具,并研究它们的总体一致性。在实际的软件项目中,单元测试可能同时受到不同TS的影响。这就是为什么我们把TS的检测作为一个多标签学习问题。多标签分类(MLC)是一种特定类型的分类,其中一个实例同时属于几个标签(Tsoumakas和Katakis,2007)。的https://doi.org/10.1016/j.jksuci.2021.10.0081319-1578/©2021作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comM. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8693表1代码气味vs测试气味功能代码测试代码水平生产代码测试代码原始目录22 CS由Fowler等人定义。(1999)11由Van Deursen等人定义的TS。(2001年)粒度项目、包、类、方法测试套件和测试用例质量可理解性和可维护性(Palomba等人, 2018)可理解性和可维护性(Bavota等人, 2015年)、测试用例的有效性(Grano等人, 2019年度)技术机器学习,基于搜索,基于规则,信息检索信息来源历史的,文本的,结构的文字上,结构基准填埋场(Palomba等人,2015),Arcelli等人(2016)的四个数据集,MLCQ(Madeyski和Lewowski,2020),QScored(Sharma和Kessentini,2021)填埋(Palomba等人,2015)中的数据集(Peruma等人,2019年度)分类步骤之前是基于深度学习算法的测试代码深度学习(LeCun等人, 2015年)已经证明了它在遇到不同软件工程时的有效性挑战(Wang等人,2016年; Maddison和Tarlow,2014年)。特别是在代码气味的背景下,几种方法使用了不同的深度学习算法 ( Liuet al. , 2018; Sharma 等 人 , 2021; Hadj-Kacem 和Bouassida,2019)。总的来说,在软件工程任务中应用深度学习方法的研究成果非常有前途,并鼓励在这方面进行进一步的研究。因此,受先 前 研 究 结 果 ( Hadj-Kacem 和 Bouasida , 2019;Hadj-Kacem 和Bouasida,2019)的启发,我们打算在本文中通过应用深度生成算法(即变分自动编码器)来获得测试代码的深度表示(Kingma和Welling,2013)。为了评估我们的方法,我们需要一个在使用MLC时支持多种类型TS的基准。然而,有一个显着的缺乏基准的TS。因此,我们通过使用基于工具的方法创建响应于我们的需求的基准来填补这一缺陷(Trindade等人,2020年)。我们公开提供进一步研究的基准。本文的主要贡献归纳如下:调查常用检测工具之间的一致性使用基于工具的方法应用基于测试代码的深层表示的MLC方法,这使我们能够调查TS之间的相关性在检测结果本文其余部分的结构如下。第2节介绍了代码和测试气味之间的区别,然后进行了回顾的检测方法。接下来,我们在第3节中描述我们的研究方法。实验结果在第4节中给出,随后进行了讨论。第5节提出了对有效性的威胁。最后,第6节对本文进行了总结。2. 背景和相关工作2.1. 代码气味vs测试气味CS的概念最初由Fowler等人提出。(1999)在Fowler et al.(1999年)。接下来,受CS的启发,Van Deursen et al. (2001)在Van Deursen等人(2001)中提出了TS的概念,在那里他们提出了每种类型TS的定义以及适当的重构步骤。因此,在文献中,许多研究已经进行了探索不同的角度的CS。同样,同样的观点已经在TS的背景下进行了研究表1列出了代码和测试气味。在文献中,有更多的研究CS相比,TS。特别是,在所使用的技术和基准方面存在着显著的多样性。2.2. 测试气味检测方法根据Garousi和Küçük(2018)的说法,除了原来的TS之外,还有新的TS类型在本文中,我们感兴趣的TS的原始目录,因为它被认为是最常用的比新的类型,是有限的研究,他们被介绍。Van Rompaey等人,2007年提出了一种基于规则的方法来检测2TS。作者已经使用了阈值由用户定义或导出的度量。使用一个项目进行评 价 。 Greiler 等 人 ( 2013 ) 提 出 了 一 种 用 于 检 测 6 TS 的 工 具TestHound。此外,该工具还可以推荐重构操作。后来,作者发布了Tes- tEvoHound作为该工具的改进版本。Bavota等人(2012年)开发了一种检测工具,能够识别9种TS。他们使用18个项目(2个工业项目和 16 个 开 源 项 目 ) 评 估 了 他 们 的 结 果 。 TASTE 是 Palomba 等 人(2018)发布的工具。该工具采用文本分析和信息检索技术,检测9种类型的TS。作者发现,TASTE是比基于结构的检测工具效率高44%。Peruma等人(2019)提出了一种工具tsDetect。该工具能够检测19种TS:8种来自原始目录的气味和11种新引入的气味。该工具可在Android应用程序和Java项目上运行。上述方法的共同之处在于,它们使用生产代码与测试代码一起来检测TS。Breugelmans和Van Rompaey(2008)提出了仅基于测试代码的TestQ来检测7个TS。然而,作者为每个检测到的TS创建了新的同样,后者的工作,在本文中,我们将只使用测试代码。但是,与所有上述工作不同的是,我们将提出一种基于机器学习的方法,以解决来自TS的不同解释的主观性问题。3. 研究方法在本节中,我们将描述我们提出的研究方法。首先,提出三个研究问题。然后,介绍我们的方法,然后在下一小节中介绍完整的细节。本文讨论了三个研究问题RQRQ1:现有工具在检测测试气味方面的一致性如何?RQ2:是否可以仅根据测试代码中包含的信息检测测试气味?●●●●●M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8694●●●Fig. 1. 概述我们提出的方法。RQ3:如果考虑到测试气味之间的相关性,分类准确性是否会提高?3.1. 拟议办法如图1所示,我们提出了一种用于检测TS的3阶段方法。第一阶段包括收集和标记数据集的过程。在第二阶段,我们对测试代码进行无监督的预训练,即单元测试。最后,第三阶段是基于前两个阶段,并包括识别的TS使用不同的MLC技术。3.2. 数据收集和标签建立基准是一项具有挑战性的任务。它需要大量的重复检查和大量的时间投资。它用于评估和进行检测方法之间的无偏比较。在文献中,存在许多用于检测CS的建议基准或预言。根据Trindade等人(2020)的说法,这些基准是通过以下三种方法之一创建的:手动,工具和混合。然而,在TS的上下文中,很少有手动创建的基准(LandFill(Palomba等人,2015年),Peruma et al. (2019))。在本文中,我们将使用基于工具的方法来建立一个基准检测TS。该步骤将在没有手动干预的情况下系统地完成。这一选择有两个理由。首先,要保证一定的质量,人工干预应该由在分析软件设计问题方面具有丰富经验的专业开发人员进行。其次,如果在没有任何先前经验的情况下进行手动干预,则数据集将存在偏倚并包含主观方面。因此,这将对内部有效性构成威胁在实验中。在下文中,我们将更详细地解释选择工具的标准,主题项目,主题TS以及如何构建数据集工具选择:工具选择的步骤不是随机进行的。相反,它有两个主要目的。首先,我们的目标是调查现有的检测方法有多少一致。其次,我们需要建立一个相关的基准,作为我们的实验评估的支持,以及为未来的研究基线参考。我们概述的选择标准如下:1. TS属于原始目录(Van Deursen等人,(2001年)2. 该工具是公开的3. 该工具支持Java项目4. 该工具应被其他研究普遍使用或采用5. 该工具支持识别多种类型的TS通过遵循这些标准,我们能够确定两种工具,即Bavota等人提出的工具。(2012)和Peruma等人提出的tsDetect。(2019)。在本文的其余部分,为了避免混淆,我们将称他们为顾问。顾问1指的是第一个工具的(Bavota等人,2012)和Advisor 2是指tsDetect(Peruma等人,2019年)。两名顾问均已接受审查第2.2节。关于TS的标准,Advisor 1检测到9个属于原始目录的TS,而Advisor 2检测到19个TS,其中8个类型来自原始目录,11个类型是作者新引入的。每个Advisor的总体准确率接近90%。根据Aljedaani等人(2021)的说法,这两种工具是最常用的。值得注意的是,这两个顾问都是公开的,但网址不再活跃对于Advisor 1,如(Aljedaani等人,2021年)。因此,由于它被广泛采用,我们使用了来自其中一项过继研究的Advisor 1应用结果(Grano et al., 2019年)。主题项目和TS:我们选择了10个不同的Java项目和5种类型的TS,分别列在表2和表3中。数据集构建过程:一旦识别出顾问、代理和TS,我们就能够构建数据集。为了处理,我们应用了三个连续的迭代。每次迭代都将细化之前迭代的结果。如图 2、对每次迭代的结果进行深入研究。对于第一次迭代,我们采用了两个Advi- sors的重叠。结果,我们获得了每个项目和每种类型的TS的50个数据集。这50个数据集是公开的1。 第一次迭代是最重要的一次,因为它允许我们确定顾问之间的协议级别。之后,第二次迭代将通过按测试气味的类型对所有项目进行分组,将50个数据集转换为5个数据集。如图 1,将得到的5个数据集称为DS-AR、DS-ET、DS-MG、DS-SE和DS-RO,它们是指受试者5种测试气味AR、ET、MG、SE和RO的数据集。因此,TS在项目中的分布将是明确的。第三次迭代将把5个数据集组合成一个第1页https://drive.google.com/file/d/1vtgaWmJ8Wtf-4Nkdd1XgJIMZ1LhSnO83/view?usp =共享●M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8695ð Þ ¼吉吉ð Þ表2Java开源项目的描述项目版本#类#单元测试项目描述Checkstyle8.141862360一个检查Java源代码的工具Apache Commons Collections4.2535205包含扩展类型Apache Commons IO2.623266包含实用程序类Apache Commons Lang3.8.1328153Java实用程序类包Apache Commons Math3.6.11617566数学组件Gson2.8.5206106将Java对象转换为JSONJavaPoet1.11.13619用于注释处理JFreeChart1.5.0990345用于生成图表Jsoup1.11.311235用于处理HTML的JUNIT44.12392170Java的单元测试框架表3测试气味定义(Van Deursen等人, 2001年)。测试用例定义通过使用深度生成算法的测试代码,即,可变自动编码器(Kingma和Welling,2013)使用了使用贝叶斯推理方法的近似方法。AR断言轮盘单元测试有几个断言语句,但没有解释如图1所示,在第二阶段,使用抽象树(AST)解析代码。保留AST的节点,ET Eager Test单元测试,具有测试类MG的方法神秘嘉宾使用外部资源的表示代码,因为它们保留了隐藏的语义表示。编码的表达(Peng等人,2015; Wang等人, 2016年)。在-SE敏感平等RO资源优化具有用于检查相等性的assert语句的单元测试假设外部资源需要映射步骤来将节点矢量转换成数字矢量,其中每个节点由唯一的整数值标识。关于向量的长度,它们通过填充零值而变得均匀(Wang等人, 2016年)。随后,得到的矢量是变分自动编码器的输入多标签数据集(MLD)类型的数据集。3.3. 无监督生成式预训练深度学习在软件工程任务中得到了广泛的应用。在CS的背景下,不同的方法利用了深度学习算法,并取得了高性能的结果。因此,受先前研 究 结 果 ( Hadj-Kacem 和 Bouassida , 2019;Hadj-Kacem 和Bouassida,2019)的启发,我们在本文中提出了一个深入的代表性,这将生成代码的新表示。生成算法用于学习输入数据的概率分布,以生成新的数据实例。两个神经网络形成变分自动编码器的架构:编码器和解码器网络。编码器生成输入(x)的深度表示(z)。解码器通过反向映射重构输入(x)以具有输出(x)。联合分布phx;z phx z phz. 高斯分布的特征在于均值和方差。对于每个数据点,边际可能性-图二.数据集构建过程。M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8696fgfgfg罩(Eq. 1)测量,然后求和(等式1)。其中h是该步骤中的参数,KL是后验分布和先验分布之间的对数pHxiDK LqzjxjphzL. h;;xi1N表4多标签分类技术。技术定义BR MLD被转换为l个二进制数据集,其中l是标签的数量然后,将二进制分类器的结果合并为一个结果。例如,表(5c)中的UT 3的输出是fAR;ET;:MG;SE;:ROg对数pHx1;.. . ;xN¼Xlogph.xi21/13.4. 多标签分类(MLC)有不同的方法来执行MLC任务。算法自适应(AAM)、问题转换(PTM)和包围法(EM)是最知名的方法(Read例如, 2011年)。在AAM中,学习算法适于直接在多标签数据集上操作。对于PTM,该问题通过一个或多个单标签分类器来解决。在EM中,一组分类器的输出被不同地组合(Read等人,2011年)。在本文中,只考虑后两种方法。对于每种方法,我们将应用表4中总结的四种不同技术。在PTM中,我们将使用四种技术,即二进制相关性(BR)、分类器链(CC)、标签幂集(LP)和修剪集(PS)(Read等人,2011年)。如表5所示,我们提出了一个包含4个单元测试(UT)的MLD示例,以及如何在所研究的转换技术中转换该数据集(即表5a)。这四种技术之间的主要区别是标签之间的相关性的简化。BR是唯一一个在分类过程中不考虑相关性的方法。对于EM,我们已经选择了四种技术,即EBR、ECC、RAkEL和EPS(Read等人, 2011年)。4. 实验结果与讨论4.1. 选定顾问根据Hartmann(1977),总体一致性(OA)是两个观察者将观察结果归为同一组的比例。在我们的研究中,为了调查两个顾问之间的协议水平,我们使用OA测量。对于每个项目和每种类型的TS,计算同意率更明确地,OA是由顾问对在相同类型的TS中分类的UT的数量除以所考虑的项目中的UT的总数表6列出了10个选定项目和5个TS的两名顾问之间的OA结果。一致性值在0%和100%之间变化。为了更全面的分析,图。 3 a显示了每个项目的OA平均值,无论TS类型如何。我们发现,OA是较高的项目规模往往是较大的。该观察结果仍然很重要,但Checkstyle项目除外,该项目的百分比由于TSAR而显著降低 图 3 b显示了箱形图,根据TS类型比较了Advisors之间的一致性,无论研究项目如何。总体而言,MG和RO的一致性最低。这种分歧的原因可能是项目中的资源稀缺,或者是项目的复杂性。然而,AR和ET记录了更好的一致性百分比这两种TS明显比其他类型更分散由于这个原因,他们的OA被认为是合理的较高。在 文 献 中 , 关 于 一 致 性 的 平 均 值 有 一 个 共 同 的 观 点 。 在(Hartmann,1977; Stemler,2004)中,平均值必须高于70%。然而,在我们的研究中,两位顾问的平均一致率为58.62%。CC它涉及l个分类器。首先,基于原始输入训练分类器。一步一步地,输入由其先前的二进制预测结果增强。表(5d)示出了CC变换LP MLD被转换为多类数据集,其中每个类都是标签的唯一组合。LP的一个例子如图所示。表(5b)PS它类似于LP,但它更感兴趣的是不频繁的标签集,因此这些标签集被分成公共子集EBR BR ECC的集成版本CC的RAkEL随机k-标签集,是一种使用标签EPS PS的集成版本即使该值与建议的文学平均值相比并不太远,但最终达成的协议仍未得到履行。在这些发现的推动下,我们可以回答第一个研究问题RQ 1;工具在TS检测中不完全一致。这种低一致性证实了TS定义分析中存在差异机器学习的应用可以避免主观性问题,因为它允许通过示例对不良气味进行分类(Arcelli等人,2016年)。在下文中,我们将根据实证结果回答RQ2和RQ34.2. 多标签数据集如图2所示,第二次迭代在于将来自第一次迭代的50个数据集减少到每个TS的5个数据集。这是通过按TS类型应用组来完成的。图4描绘了TS的分布,其中AR和ET最扩散。之后,图2中的第三次迭代通过对常见和不常见实例进行分组,将5个数据集转换为一个数据集。生成的数据集称为多标签数据集(MLD)。如表7所列,存在描述MLD的某些特征的不同度量。这些度量用于指示标签的分布、它们之间的关系以及不平衡的水平(Charte等人,2015; Tsoumakas和Katakis,2007)。他们是下一步的关键标准。如表8所示,我们数据集中的标签集数量为23,即存在23种可能的TS组合前三个标签集是AR;ET;AR和AR;ET;SE。对于不平衡水平,如 果 其 MeanIR 高 于 1.5 , 则 存 在 认 为 MLD 不 平 衡 的 一 般 规 则(Charte等人, 2015年)。在我们的例子中,数据集被归类为不平衡的.4.3. 实验装置在我们的实验中,我们应用了两种MLC方法,即,PTM和EM。对于PTM,我们使用BR、CC、LP和PS。对于EM,我们使用EBR,ECC,KAkEL和EPS。选择的基本分类器是J48、随机森林(RF)、朴素贝叶斯(NB)和顺序最小优化(SMO)。这些分类器属于不同的分类家族,并且在文献中也被广泛使用。它们用于两种MLC方法。为了进行实验,我们使用MEKA 1.9.3(Read等人,2016年)。MEKA是基于WEKA的多标签学习开源工具(Hall等人, 2009)学习工具包。为了验证我们的实验,我们通过将数据集随机分成10个相等的折叠来进行10倍交叉验证,其中9个折叠用于训练,其余的折叠用于训练。M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8697表5多标签分类变换方法。表6顾问之间的协议项目UT数量ARETMGSERO#%#%#%#%#%Checkstyle360–0.0%86百分之二十三点九55百分之十五点三236.4%215.8%Apache Commons Collections205126百分之六十一点五117百分之五十七点一–0.0%167.8%–0.0%Apache Commons IO6636百分之五十四点五38百分之五十七点六10百分之十五点二8百分之十二点一8百分之十二点一Apache Commons Lang15384百分之五十四点九80百分之五十二点三2百分之一点三53百分之三十四点六0100%的Apache Commons Math566392百分之六十九点三24142.6%1百分之零点二31百分之五点五–0.0%Gson10621百分之十九点八1817.0%–0.0%76.6%0100%的JavaPoet19842.1%10百分之五十二点六15.3%7百分之三十六点八–0.0%JFreeChart345317百分之九十一点九25674.2%0100%的5百分之一点四0100%的Jsoup3523百分之六十五点七18百分之五十一点四411.4%10百分之二十八点六411.4%JUNIT417049百分之二十八点八18百分之十点六–0.0%127.1%–0.0%当(#)用符号“-"标记时这可能由于两种情况而发生,(i)顾问中的一个检测到TS集合,但另一个什么也没检测到,(ii)或者两个顾问都找到TS,但在它们的输出之间没有任何重叠当(#)标记为“0”时:这意味着两个顾问都因此,这被视为完全一致,并计为100%。一个是测试。这个过程重复10次,然后考虑100(10×10)的平均值4.4. 试验性措施与二元分类相比,存在更多度量MLC性能的不同观点的度量M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8698(Tsoumakas和Katakis,2007)。基于示例的度量通过对所有数据集上的标签的实际集合和预测集合的差异求平均来计算, 例如,准确度;汉明损失;精确匹配比。同时,对于唱片公司-基于度量,每个标签的性能被单独计算,然后它们在所有标签上被平均,例如MacroA平均;MicroA平均。表9简要介绍了它们4.5. MLC性能我们将研究是否可以提高分类精度,如果TS之间的相关性被考虑在内。为了处理,我们将比较保留相关信息的算法与其他算法。性能M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8699●●●联系我们ð Þ¼ P¼图三. 顾问之间的总体协议(a)关于项目和(b)关于技术服务。见图4。 TS的分布我们基于PTM和EM的实验结果分别报告在表10和表11中。如表10所示,对于准确度评价,RF通常是最佳基础分类器。然而,J48获得对于问题转换技术,BR-RF在准确性和精确匹配率方面取得了最高的结果它也呈现了最低的汉明损耗值,为11.60%。即使对于基于标签的指标,无论是F1-macro还是F1-micro,BR-RF都获得了最佳结果至于“完全配对比率”,尽管其评估表现的性质非常严格,但我们已达到介于42.40%至58.40%之间的可接受结果平均而言,超过50%的标记集的预测与实际集完全相同考虑到表11中所示的EM,与PTM类似,RF优于其余分类器,而NB的结果通常会减少。至于EM,RAkEL为示例和基于标签的度量提供了最佳结果为了更全面地了解PTM和EM,我们在图5中用箱形图展示了他们的结果。这些箱形图显示了每种MLC技术的准确度,F1宏观指标和F1微观指标,无论是否使用J48、RF、NB或SMO基础分类器。在不同的评估方法中,可以观察到集成技术克服了问题转换技术。一般而言,与其他四分位数(特别是四分位数1和3之间的结果)相比,它们在四分位数0和4之间呈现较小的距离基于所获得的实证结果,我们可以回答我们的最后两个研究问题。可使用测试源代码的深度表示作为唯一信息来源检测TS。TS之间的相关性不影响精度。虽然BR不保留相关性的信息,它实现了最好的结果之间的PTM技术。此外,在PTM中,我们观察到,结果通常受到基本分类器的选择的影响。而对于EM,无论采用哪种基本分类器,结果都很接近。总体而言,尽管两者之间的差异很小,但EM在不同层面上表现出比PTM更好的5. 对有效性的结构有效性:在我们的工作中,由于缺乏基准,我们使用我们使用基于工具的方法建立的基准来评估我们的方法。这就是为什么我们无法将我们的结果与其他最先进的方法进行比较的原因。尽管如此,我们已经进行了几个实验,通过应用不同的MLC技术和比较他们之间的结果。内部有效性:尽管我们的数据集具有较高的MeanIR,但我们没有应用分层技术。相反,我们选择使用不同的集成方法来克服不平衡的问题。在我们未来的工作中,我们打算应用不同的方法来平衡数据(Salazar等人,2021年)。此外,我们的基准的建设是基于现有的检测工具。因此,有可能在其结果中发现假阳性和/或假阴性。这个问题可能会影响我们的实验结果。但是,我们排除了这种情况经常发生的可能性。一方面,工具的选择是基于严格的标准,以确保所使用的工具是可靠的,即被其他研究所采用。另一方面,它们的总体准确率接近90%。外部有效性:我们在10个Java开源项目中进行了实验因此,我们不能声称我们的结果的泛化能力,以其他编程语言和/或表7MLD指标。度量描述方程基数测量每个样本的活动标签的平均数量。D和L分别表示实例数和标签数卡DjDj jLiji1jDj密度是基数除以标签集LDens DCardDjLjMeanIRMeanImbalanceRatio表示所有标签L之间的平均不平衡。它越高,MLD越不平衡平均值1jLjjLj1/1IRLblii频率M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8700P. B.LLiiD1¼jD j1/1-ω-ω-¼PjDji¼1. bLi[Li.-ω-ω-¼PjD j1/1jLj表8MLD的特点样本数量标签数量标签集数量基数密度MeanIR20255231.090.2110.96表9评价指标。度量描述方程准确性显示所有标签中被正确预测准确度jj\HammingLoss是在标签总数上预测标签和真实标签之间的平均对称差。最好如果HammingLoss的值较低,HLoss¼1PjDj. bLiDLi.精确匹配率也称为SubsetAccuracy,是最严格的评估指标。它计算预测的标签集与实际标签集完全相等ExactMatch¼1PjDjsbLi¼Lit宏观和微观平均F1度量是宏观平均和微观平均F1中精确度和召回率的调和平均值宏观2P宏观R宏-Macro-MacroF1微2P微R 微-微型电子 -微型电子表10问题转化技术的结果。基于模型示例基于标签精度精确匹配率汉明损耗F1-宏(按标签)F1-宏(通过示例)F1-微型BRJ48百分之六十八点五46.10%15.60%40.30%75.60%87.00%RF77.40%58.40%11.60%42.00%83.30%84.30%NB69.70%45.90%百分之十六点三46.90%77.10%78.00%SMO75.40%54.60%12.20%35.40%81.80%83.20%CCJ4868.40%46.10%百分之十六点四44.80%75.50%77.00%RF77.20%57.90%11.70%42.00%83.20%84.10%NB70.70%47.50%百分之十五点九48.00%77.90%78.50%SMO75.60%54.80%12.20%37.50%82.10%83.30%LCJ4865.60%42.40%百分之十七点九39.50%73.00%74.80%RF77.30%58.30%11.70%42.60%83.20%84.10%NB70.60%49.10%百分之十五点三46.60%77.40%78.70%SMO75.10%54.30%百分之十二点三百分之四十一点三81.60%百分之八十三PSJ4865.60%42.40%百分之十七点九39.50%73.00%74.80%RF77.30%58.30%11.70%42.60%83.20%84.10%NB70.60%49.10%百分之十五点三46.60%77.40%78.70%SMO75.10%54.30%百分之十二点三百分之四十一点三81.60%百分之八十三表11集成技术模型基于实例基于标签精度精确匹配率汉明损耗F1-宏(按标签)F1-宏(通过示例)F1-微型EBRJ4875.40%54.70%百分之十二点三39.60%81.90%83.20%RF76.70%56.80%11.90%38.10%82.90%83.80%NB70.70%47.20%15.40%45.50%78.00%79.00%SMO75.20%53.90%百分之十二点三35.30%81.90%83.20%ECCJ4875.50%54.50%百分之十二点四38.60%82.10%83.30%RF76.80%57.10%11.90%40.30%百分之八十三83.90%NB70.60%47.40%16.10%45.50%77.90%78.30%SMO75.50%54.50%百分之十二点三36.40%82.10%83.30%RAkELJ4874.50%53.10%13.10%43.30%81.10%82.30%RF77.30%58.20%11.60%42.20%83.30%84.20%NB69.80%46.60%百分之十六点八46.30%77.30%77.50%SMO76.10%55.20%12.10%37.50%82.60%83.60%EPSJ4875.80%55.50%百分之十二点三40.10%82.20%83.20%RF76.90%57.20%11.90%40.80%83.10%83.90%NB72.40%50.30%百分之十四点一47.90%79.40%80.50%SMO76.10%55.20%11.90%40.80%82.60%83.60%工业项目。值得进行额外的研究来调查这个潜在的问题。6. 结论和今后的工作在本文中,我们调查的测试气味检测工具是否实现了整体协议的平均值为此,我们进行了对比分析,并计算了总的一致性常用工具之间的10多个开源项目。结果低于平均水平,这促使我们提出了一种基于测试代码深度表示的多标签学习方法。为此,我们进行了我们的实验,使用8种不同的MLC技术超过4个基本分类器。实验评估是在我们使用基于工具的方法构建的基准上进行的,并使其公开可用。我们已经比较了做和做的技术M. Hadj-Kacem和N. 布瓦西达沙特国王大学学报8701图五.使用箱形图比较MLC技术。不保留测试气味之间的相关性。通过这些实验,我们观察到相关性不影响准确性。我们发现,二进制相关性和RAKEL提供的最佳结果。对于这两种技术,随机森林被认为是最好的基本分类器。在未来的工作中,我们希望通过包括其他类型的测试气味来扩展我们的研究。我们还想investi-门使用算法适应方法与更多类型的分类器。此外,我们打算利用我们的研究结果作为优先级的重构操作在测试代码的推荐。竞争利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作。引用Aljedaani , W. , Peruma , A. , Aljohani , A. , Alotaibi , M. , Mkaouer , M.W. ,Ouni,A.,Newman,C.D.,Ghallab,A.,Ludi,S.,2021.测试气味检测工具:系统映射研究。软件工程中的评估与评价,计算机协会,170-180。Arcelli,F.F.,Mäntylä,M.V.,扎诺尼,M.,Marino,A.,2016.比较和实验机器学习技术用于代码气味检测。恩皮尔软件工程21,1143-1191。Bavota,G. Qusef,A.,奥利韦托河De Lucia,A.,Binkley,D.,2012年。单元测试气味分布及其对软件维护影响的实证分析。软件维护国际会议,IEEE,56-65。Bavota,G. Qusef,A.,奥利韦托河De Lucia,A.,Binkley,D.,2015年。 测试气味真的有害吗?实证研究。恩皮尔软件工程20,1052-1094。Bladel,B.V.,Demeyer,S.,2018.测试行为检测作为测试重构的安全性,在:国际重构研讨会,pp。22-25..Breugelmans,M.,Van Rompaey,B.,2008. TestQ:探索单元测试套件的结构和维护特性,在:高级软件开发工具和技术国际研讨会上。Charte,F.,里维拉,A.J.,del Jesus,M.J.,Herrera,F.,2015.解决多标签分类中的不平衡:测量和随机恢复算法。神经计算163,3-16。Fowler,M.,Beck,K.,Brant,J.,Opdyke,W.,Roberts,D.,1999.重构:改进现有代码的设计。印度培生教育Garousi,V.,Küçük,B.,2018.软件测试代码中的味道:工业界和学术界知识调查。 J.系统 软件138,52-81。Grano,G.,Palomba,F.,加尔,H.C.,2019.使用源代码质量指标对测试用例有效性进行轻量级评估。IEEE Trans. Software Eng. 4 7 ,758-774。Greiler,M.,Van Deursen,A.,Storey,MA,2013.自动检测测试夹具策略和气味。软件测试、验证和确认国际会议。IEEE,pp. 322- 331Hadj-Kacem,M.,Bouassida,N.,2019年。使用变分自动编码器进
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功