没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报ProRE:一种基于蚁群算法的软件缺陷Ashima Kukkara,Umesh Kumar Lilhoreb,Jaroslav Frndac,d,Jasminder Kaur Sandhue,Rashmi PravaDasf,g,Nitin Goyalh,Arun Kumari,Kamalakanta Mudulij,Mudali,Filip Rezacda印度旁遮普邦奇卡拉大学工程技术学院b昌迪加尔大学计算机科学与工程系,Gharuan,Mohali,140413,印度c斯洛伐克日利纳大学运输和通信运营与经济学院定量方法和经济信息学系,邮编:01026d捷克共和国俄斯特拉发VSB技术大学电子工程和计算机科学学院电信系,邮编:70800电子计算机科学与工程系,昌迪加尔大学,Mohali 140413,印度f印度布巴内斯瓦尔CV拉曼全球大学计算机科学与工程系g印度奥里萨邦布巴内斯瓦尔工程学院计算机科学与工程系h哈里亚纳邦中央大学计算机科学与工程系,Mahenapoph,Haryana 123031,印度i计算机科学与工程系,Galvanas工程与技术学院,大诺伊达,(U.P.)201306,印度巴布亚新几内亚理工大学,Lae,Morobe,PMB 411,巴布亚新几内亚阿提奇莱因福奥文章历史记录:2022年10月20日收到2022年12月21日修订2022年12月23日接受2022年12月29日在线发布保留字:软件工程缺陷分配基于蚁群算法的程序员推荐系统特征加权触发器机器学习方法A B S T R A C T在软件工程中,将错误分配给特定程序员的过程称为错误分配。程序员可以通过应用他们的知识来修复错误本文提出了一种基于蚁群优化的程序员推荐模型(ProRE),用于精确管理软件缺陷。所提出的ProRE模型执行四个操作:数据预处理,即,数据预处理、提取、特征选择和程序员推荐过程。特征选择阶段利用蚁群优化(ACO)方法从所有特征中确定合适的特征子集在程序员推荐阶段,三个程序员指标,即,功能性排名、错误发生率和平均错误修复时间用于推荐分配。使用Mozilla,Eclipse,Firefox,JBoss和OpenFOAM的数据集评估所提出的程序员推荐系统的有效性。值得注意的是,所提出的模型提供了一个更好的建议,mendation战略比其他可用的系统。所提出的ProRE模型的模拟结果也用公知的可用ML方法进行了分析,即,SVM、NB和C4.5。据观察,与基于SVM、C4.5和NB的模型相比,推荐结果平均提高了4%、10%和12%。实现了程序员推荐软件,用于将错误分配给准确的程序员。已经发现,所提出的ProRE模型比现有模型产生更多的优化结果。©2022作者(S)。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍*通讯作者。电子邮件地址:ashima@chitkara.edu.in(A. Kukkar),umeshlilhore@gmail.com( 美 国 ) 。 Kumar Lilhore ) , jaroslav. uniza.skjasminder2011@gmail.com ( J.Frnda),www.example.com(J. Kaur Sandhu),rashmidas3@gmail.com(R.PravaDas ) , dr.nitingoyal30@gmail. com ( N. Goyal ) , piet.co.in ( A. Kumar ) ,kakanta.muduli@pnguot. ac.pg(K. Muduli),filip. vsb.cz(F. Re.沙特国王大学负责同行审查软件在SDLC的发展、测试和维护阶段传播错误(Wu等人,2022年)。软件缺陷产生的主要原因是对需求的误解、实现和设计策略、错误处理机制、合并在法典中的新规定,等等,(Jorayeva等人,2022年)。每当实施软件项目时,维护集中式数据库以存储软件执行期间报告的错误(Batool和Khan,2022)。错误目录和监视系统在SDLC过程中起着至关重要的作用。许多错误存放在错误目录中(Zaidi等人,2022年)。https://doi.org/10.1016/j.jksuci.2022.12.0171319-1578/©2022作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comA. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报484此外,据观察,错误修复是昂贵的、标准的和耗时的任务(Mo等人, 2022年)。因此,在现代实践中,可以考虑由一组程序员来修复bug,而不是单独修复bug。错误报告包含有关故障的一些基本信息,如内容、状态、文本描述等,并且缺少许多信息(Zheng等人,2022; Guo等人,2022年)。如果一个程序员知道Bug,那么bug就可以被有效地修复。因此,确定合适的程序员来修复错误是具有挑战性的(Cynthia等人, 2022年)。例如,在Eclipse开源项目中,2007年每天向BTS报告大约30个新的错误报告(Lilhore例如,2022年)。在2001年10月到2010年12月之间,Eclipse bug跟踪器收到了333,371个bug报告。34,917名用户和程序员对这些问题发表了超过150万条评论。此外,所有这些错误都分配给不同的程序员进行调试和修复。如果程序员不能解决这个Bug,它就被分配给其他程序员.将bug重新分配给另一个程序的过程称为bug抛出。这个过程一直持续到Bug无法解决为止。图1显示了抛bug的过程。抛出错误的长度是根据人数来描述的(Yang等人,2022年)。让程序员A被分配修复一个错误的工作。然而,程序员无法解决该Bug。同样的Bug被交给了程序员B,他无法修复它。然后系统将Bug分配给程序员C。该过程将重复,直到Bug未被修复(Jahanshahi等人,2022年)。bug抛出的长度可以表示为AaBbC。它必须被定义为分配给纠正Bug的员工总数。B错误卡紧还可以增加错误检查时间(Liu等人, 2022年)。 例如,Eclipse开源实现需要40到50天的时间来完成抛出过程,然后适当的程序员才能收到错误(Malhotra等人,2021年)。这是由于通过专家triager对bug报告进行手动检查。由于缺乏有关错误的信息,手动错误分类过程成本高昂且耗时(Zaidi和Lee,2021年1月。).例如,在开源Eclipse项目中,大约44%的bug被意外地分配给不同的程序员(Oliveira等人,2021年)。打开bug和它们的第一个任务的时间成本是19.3天(Almhana和Kessentini,2021)。因此,程序员推荐系统(DRS)的目标是最小化错误抛出长度(BTL)。此外,注意到有些错误需要程序员立即注意。triager手动确定bug的严重性和优先级这种手工操作是并且可以通过自动的错误解决来减少。因此,上述问题的解决方案之一是设计一个程序员推荐系统,该系统可以识别适当的程序员进行错误修复并测量错误的严重性(Garg等人,2021年8月). 在文学中,注意到各种研究人员已经挖掘了软件库,即,源代码存储库、错误存储库和电子邮件存档,以从数据中查找未见过的信息还观察到,已经开发了几个推荐系统来帮助分类器,例如错误的优先级推荐(Nath等 人, 2021 ) , 预测 错误报告的组 成部 分, 识 别相 关程 序 员(Panda和Azar,2021),错误解决时间预测(ABsRo等人,2021),和缺陷严重性预测(Khleel和Nehéz,2021)。机器学习和挖掘技术也被应用于严重性预测和推荐。这些技术旨在预测新提交的bug报告的标签表1显示了eclipse的两个bug报告,图2显示了eclipse的两个bug报告。 2说明了程序员之间的沟通。1.1. 动机考虑Eclipse项目的两个修复错误报告,错误ID分别为127,495和403,841(Sun等人,2021; Ferenc等人,2020年)。表1包含程控仪的详细信息。一个程序员通过错误报告提供错误信息,而几个程序员则对错误报告进行评论。据观察,两个错误报告都由两个标准程序员组成,即,csmclaren和tjwatson。不同评论者的评论过程如图1所示。边表示各种注释器之间的连接,并使用数值进行标记。数值表示程序员对同一个bug报告发表评论的次数。可以看到,两名评论者对两份错误报告进行了两次评论。与此同时,其他人都在评论一次。此外,研究人员是研究中的活跃程序员(Trivedi等人,2020;Esteves等人,2020年; Prabha和Shivakumar,2020年,6月。)因为他们不止一次地评论以解决bug问题。因此,分类器的任务是识别相关的程序(Gupta等人,2020年6月). triager提供了关于错误和程序员能力的足够详细信息但是,这是一个重大的挑战,程序员被指定修复Bug。triager为csmclaren和tjwatson(他们对这两个bug统计都做了评论)提供了两个解决Bug的此外,注意到没有关于漏洞严重性的证据,这需要立即关注。Fig. 1. Bug Tossing程序。A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报485表1Eclipse的两个Bug报告评论者订单程序员错误ID 127,495错误ID 403,841记者Chris Bailey奇姆克拉伦评论员1奇姆克拉伦奇姆克拉伦评论员2约翰·阿瑟恩kim.moir评论员3克里斯·贝利奇姆克拉伦评论员4约翰·阿瑟恩Kim. Moir评论员5克里斯·贝利蒂沃森评论员6约翰·阿瑟恩kim.moir评论员7蒂沃森奇姆克拉伦1.2. 工作贡献本工作的目的是提出一个程序员推荐系统的错误分配。所提出的程序员培训系统解决了自动化错误解决过程中适当程序员问题的抛出长度和识别。工作的贡献突出如下:本研究的主要焦点是开发一个有效的错误修复系统,该系统可以正确地识别特定错误的所需程序。本研究开发了一个基于ACO的特征选择系统,该系统有助于从可用的错误数据集中选择相关的数据特征集开发三个指标来对程序员进行排名(ProRE),这有助于程序员分配错误。该方案最大限度地减少了抛投长度,并确定了正确的错误修复程序。该模型提高了错误分配的准确性,减少了分配的时间和精力。在这项工作中,ProRE模型的目的是帮助triagers分配的错误。所提出的技术旨在缩短折腾周期,并找出解决问题的理想程序员。建议的系统的评估是通过良好的错误数据集进行的。它的结果进行了比较,与许多现有的ml算法建议以前的研究。仿真结果表明,所提出的ProRE模型比现有的系统工作更有效,并预测更准确的程序员分配错误。全文的结构如下:第二部分为相关工作;第三部分为材料和方法;第四部分为推荐过程和讨论结果;第五部分为结论和未来工作。2. 相关工作软件工程是软件开发过程的一个活跃的研究领域。它有助于根据重要性识别和分类软件错误。错误分类的目的是分配一个合适的程序员来解决错误。本节给出了关于找到正确的程序员来修复bug和bug修 复 生 命 过 程 的 最 新 研 究 Murphy 解 决 了 自 动 错 误 分 类 问 题(Alazzam等人,2020年)。这项研究的目的是减少传统的物理任务的量本文采用文本研究(Pandey等人,2020)使用ML和数据处理策略实现了一个半自动的错误分类模型。所提出的方法考虑了一个基于技能集的适当程序员数据库来解决错误。此外,可以观察到,所提出的方法立即将新的错误跟踪器分配给程序员进行错误修复,并减少了时间和精力。Research(Pombo和Teixeira,2020)开发了一种基于图的抛投系统。建议的推荐模型集成了基于马尔可夫的方法来预测适当的程序集。还观察到,与基于机器学习的推荐系统相比,所提出的模型将错误抛出长度减少到72%缺陷分类过程的程序员分配和分配者任务问题在(Subbiah等人,2019年)。研究人员使用社交媒体网络驱动的技术考虑了三个困难:I)程序员评级,II)进化过程,III)容忍度。通过这种方法,社会网络评估希望优先考虑那些积极参与Bug解决活动的发布评论程序的程序员。此外,NB和SVM分类器用于选择图二. 一个程序员之间交流的例子。●●●●●A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报486正确的编码器。根据研究结果,社会网络分析策略显着提高NB SVM的识别率2%和10%。研究提出了一种新的技术(Yadav等人,2019年),以改善缺陷评估的结果。所提出的模型依赖于错误报告的文本相似性和程序员传递错误的传统。研究人员还发现了所有这些工作的错误分配方法的重复问题。建议的方法将错误抛出时间缩短了大约80%到90%。错误分类挑战被描述为研究中的优化过程(Mani等人,2019年)。在这项研究中,研究人员创建了一种基于组织过滤的高级分流方法,以减少问题修复所需的时间。结合五种ML技术的程序员推荐引擎在(Lee和Seo,2019)中讨论。这些策略是规则、DT、NB、C4.5和SVM。所提出的模式分两个阶段运作。在整个第一阶段,从错误目录中收集足够的错误报告组第二步,ml算法对软件程序员进行评分所提出的模型获得了75%的预测 性能 的五 个项 目, 即, Myly 、 GCC 、 Bugzie 、 Eclipse 和Firefox项目。它表明,建议的系统与当前的程序员谁可以修复相关的缺陷,为特定的项目。通过研究形成了一种基于社交网络的评级策略,用于选择用于解决Bug的编码器(Hammouri等人,2018年)。该方法将胜任力评价与KNN模型相结合。研究结果表明,社交媒体平台此外,该模型对Mozilla和Firefox数据集的召回率均超过60%在(Aljedaani和Javed,2018)中讨论了一个错误抛出图(BTG)和一种基于机器学习的方法。作者在这项工作中考虑了bug这些特征训练各种基于ML的分类器,如NB、SVM、C4.5、BN和bug抛出结果。由于Mozilla Eclipse的投掷路径较短,NB分类器的性能优于BN分类器;这些较短的投掷路径分别快了80%到90%和87%。为了分配适用的程控仪进行错误纠正,研究(Angel等人,2018)创建了一个基于图的折腾平台,称为“基于主题模型的程序员推荐”(PREAM)。使用召回因子,将DRETOM系统的模拟结果与Bugzie的模拟结果进行对比(Sahu等人,2018)和DREX(Jaiswal等人,2018)方法。根据研究观察,DRETOM比Bugzie DREX框架更好。因此,对于Eclipse JDT样本和Mozilla样本,建议的DRETOM在两者中获得超过80%的召回率。研究(Kumari等人,2018)提出了一种错误分类方法,以找到合适的错误修复者或解决者。提出的错误分类方法是基于缓存建模和一个模糊集Bugzie.在这种方法中,每个程序员的分数是使用以前的Bug修复记录来计算的。仿真结果表明,所提出的Bugzie方法获得了75%和83%之间的错误数据集的预测率基于概念定位(CL)方法的程序员排名模型有助于错误分类(Uddin et al.,2017年)。该模型使用潜在语义索引来抽取注释并识别源 代码 和语 料库 索引. 为了 提高 错误 分配 的精 确度 ,Research(Kumari等人,2018)建立了一种基于TG的技术,考虑了程序员的问题模型和关系。值得注意的是,实验倡议显示出比DRE-TOM更好的F测量比例。另一种用于半自动错误分类的技术是通过调查创建的(Xuan等人,2017年)。该方法分析了多特征选择对缺陷监测的影响,评价建议的方法结合了几个技术,包括Kullback-Leiber,它涉及一个详细的和基本的NLP。仿真结果表明,在所有的数据库,建议的系统优于在,基于AP的产品推荐,和DRETOM方面的优异性能。与错误分类相关的数据减少问题在(Shrivas et al.,2017年)。在这项工作中,作者使用特征选择方法减少了错误报告数据的维数。一个预测性的设计是采用早期的错误报告的特点。模型的准确性是在EclipseMozilla功能集上进行评估的。实验结果表明,只有降维过程提高了错误分类的精度。一种不同的方法,KSAP,与K-最近邻搜索技术,以提高错误属性的精度,讨论了(钱德拉等, 2017年)。可以证明,KSAP提供了比目前使用的模型更好的结果。研究(Xuan等人, 2017)提出了一个基于现代投资组合理论的多评分程序员推荐系统,用于bug分流,以考虑时间成本和推荐准确性。使用Bugzie项目测量所提出的模型的效率建议的ProRE模型提供了更有效的建议结果的错误分流过程。研究(Kaur等人,2017)开发了一个半监督分类器,以解决与标记Bug相关的缺陷。该方法采用朴素贝叶斯(NB)分类器和值得注意的是,建议的半监督预测模型的准确率是显着大于NB和NBEM方法。一种新颖的程序员建议技术,用于减少识别注释所需的人力(Sun等人,2017年)。研究结果表明,在前10个排名中,所提出的排名方法产生了81% 的更另一项减少 bug 抛出长度的工作在(Sama et al., 2016年)。在这项工作中,作者考虑了程序员专业知识分数的概念,以减少bug抛出的长度。所提出的技术主要包括三个阶段。第一阶段对应于程序员程序员得分是使用Jaccard、余弦相似性和基于特征的相似性度量计算的。在第二阶段,程序员根据程序员分数进行排名性能评估是通过重新分配的准确性和命中率。在第三阶段,采用NB、SVM和C4.5等基于ML的技术验证了该算法值得注意的是,所提出的ProRE模型比基于ML的方法实现了20%的 改 进 结 果 。 Research 51 开 发 了 一 个 错 误 分 类 模 型 , 称 为DBSRNN-A 的 性 能 使 用 Mozilla Firefox 、 Google Chrome 和Mozilla数据集进行评估。结果表明,DBSRNN取得了更好的结果相比,现有的模型。2.1. 研究空白综合文献回顾发现,大多数研究者根据历史和新日志评估相关主题和言论之间的相似性。根据参与程度选择程序员来解决几乎相同的错误报告。此外,一些工作还开发了指标,以建立程序员的性能评估档案(RPAP)和推荐程序员。同时也可以看出,在缺陷严重性预测和程序推荐中的特征选择技术方面还缺乏研究。相比之下,这些技术在不同领域提供更好的结果。为了确定现有研究中的研究差距,考虑了三个参数/属性。这些A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报487参数是特征选择技术的可用性、度量的数量和程序员排名。此外,引用的数量也被认为是一个参数,表明现有工作的重要性。因此,它被认为是缺乏工作的报告功能选择技术的程序员建议,特别是严重程度的错误。一些结果还考虑了推荐程序员此外,还可以看到,程序员排名可以根据错误报告评论或评论部分中建议的程序员姓名进行因此,声明当前工作没有考虑上述所有参数,以便程序员这项工作考虑了所有三个参数,即,特性选择方法、度量、错误报告注释,以建议程序员采取纠正措施。特征选择方法的重点是确定一组相关的功能,程序推荐,这可以通过基于ACO的特征加权技术来完成。这三个指标也是为程序员排名而设计的。本研究使用三个关键组成部分:a)程序员能力排名,b)缺陷严重程度,c)平均缺陷修复时间。建议的建议也被认为是程序名称的最终建议中bug报告的各种还有人说,研究人员并没有专注于通过结合严重程度分类和适当的程序员预测来修复漏洞来减少BTL。这项工作还探讨了错误严重性级别的适用性,以确定适当的程序员修复和减少BTL。表2展示了针对软件缺陷的程序员推荐系统的研究。3. 材料和方法本节介绍了拟议的模型工作。完整的步骤如下:3.1. ProRE模型本节介绍了用于bug分配的程序员推荐系统。在预测适当的亲-语法修复的缺陷,一个基于ACO的特征加权方法被纳入建议的推荐系统。图3演示了ProRE模型的预期原理图操作。特征加权方法旨在从特征空间中识别最佳特征。此外,开发了三个指标来对每个程序员进行排名。这些测量包括程序员能力等级、错误强度等级和平均错误解决时间。NB和基于SVM的ML方法估计在线数据集上的错误的严重性(Onan等人,2016年; Dorigo和Blum,2005年)。此外,根据漏洞的严重性,可以假定还存在具有有效和快速解决缺陷的跟踪记录的程序员目录。所提出的ProRE模型的主要步骤描述如下:a) 数据预处理,b) 特征提取c) 使用ACO方法进行特征加权,以及d) 分配bug(给程序员)。a) 数据预处理阶段数据预处理阶段是计划的ProRE模型的初始阶段。错误报告的内容通过使用不同的数据预处理技术进行处理。在实践中,错误报告由任何语言形式的段落组成,最好是英语。此阶段的不同阶段用于检查错误报告。这些行动如下:标记化过程涉及将文本输入分解为单个单词、数字和空格。标记化过程旨在为每个bug文档识别唯一的标记。此外,还提到可以使用空格代替标点符号。此外,删除了不可打印的转义字符,并将短语的大写改为小写。停用词消除过程:在此阶段识别日志中的停用词。停用词是包含与特定上下文无关的内容的词。停用词可以是任何动词、名词、冠词、代词、副词、介词等。一些停用词的例子,如表2程序员推荐系统的研究。参考使用的关键方法特征选择无程序员排名使用的混合模型(Subbiah等人, 2019年度)机器学习即服务(MLaaS)✘0U✘(Yadav等人, 2019年度)专长评分法✘1✘✘(Mani等人, 2019年度)深度学习✘2✘✘(Lee & Seo,2019)缺陷报告处理技术✘0U✘(Hammouri等人, 2018年)机器学习方法✘0U✘(Aljedaani和Javed,2018)数据挖掘技术✘0U✘(Angel等人, 2018年)有效的缺陷处理和跟踪系统✘0U✘(Sahu等人, 2018年)混合选择KNN✘0U✘(Jaiswal等人, 2018年)实例和特征✘1✘✘(Kumari等人, 2018年)机器学习方法✘1✘✘(Uddin等人,(2017年)人工智能✘1✘✘(Kumari等人, 2018年)机器学习方法✘2✘✘(Xuan等人,(2017年)半监督方法✘2✘✘(Shrivas等人,(2017年)CCM和文本特征U0U✘(Chandra等人,(2017年)改进的随机森林✘0U✘(Xuan等人,(2017年)一种Bug注释方法✘0U✘(Kaur等人,( 2017年)软件熵与机器学习✘2✘✘(Sun等人,(2017年)蚁群优化✘0U✘(Sama等人,(2016年)蚁群优化✘3✘✘(Zhang等人,(2016年)基于ML的bug解决方案✘0U✘该模型ProRE模型UUUU●A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报488图三.建议的程序员推荐系统的错误分配。表3说明了在错误报告中识别的一些停止词。一关于跨再次对他们这几乎单独长已经也他们下面虽然总是是是另一所有从之间无论如何任何人一个在自己使用任何是周围什么的其他的任何地方不被作为至少为因为“an”、“the”、“at”、"and“、”although“、”anywhere“、”as“、”a“等,从令牌53、54中移除。在这项研究中,https://pypi. python.org/pypi/stop-wordsAPI用于识别停止词,总共有328个词被识别为停止词,表3中列出了其中的一些。词干:这是一种确定典型短语词干的方法。‘‘Stemming is anatural language processing method (NLP) 整个广泛的词干可以保留在几个功能,●A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报489df-100ðÞ美德.先知-愿假设一个单词在bug报告中出现了几次,其变体包括“relocate” 、 “relocates” 、 “relocated” 和 “relocating” , 单 词“relocate”被称为属性,可以用来代替每次发生的情况。可以用公式(1)和(2)来简单地数学表达它。bigram方法现在,此外,正常的bigram概率通过unigram方法的归一化行计数来计算(六)、表示集合,fs是功能集。PLapfn=fn1 Cfn fn-1 1ð6Þ-C.N. fn-1BSR¼ f BS1; BS2· · ····: B: S:jg=1B: S:j^f fs1; fs2···: fskg2b) 特征提取:在这个阶段,可以使用TF-IDF和N-gram技术提取基于文本的特征并将其描述为矢量模型55-56。建议的ProRE框架的加权特性被用来解释错误报告。当量(3)显示了该过程的表示P_Lap(f_n<$ f_(n-1))表示第n个特征的拉普拉斯平滑函数。第(n-1)个特征,C(f_nf_(n-1))表示使用二元文法的词的计数,C(f_(n-1))表示使用一元文法的词的计数。V是给定bug报告的总词汇量。此外,调整后的计数是使用等式(Eq.(七)、BSR x1/2 fs1; 2/2fs2; ······:n fs n n n n nnn n3 nCωfnfn1½Cfnfn-11]×Cfn-1ð7Þ其中,n(i)表示第i个唯一特征的权重,n表示特征的最大数量。TF-IDF被描述为用于检索重要属性的附加统计技术。这种方法在识别bug报告中的属性时考虑了单词重复性。特征的频率决定了它们的重要性。在事件日志中重复出现的短语(特征)的重要性和权重大于其他短语或特征的重要性和权重,如等式中所述。(四)、TF-IDF x;yFtf x; yF log.N4算法1(预处理和特征加权)。输入:BSR_h=(BSR_(1,)BSR_2,BSR_h)文本错误报告bug report dataset中的输出:BSR_h=(BSR_1 ^',BSR_2 ^'. ......这是什么?......你好。. . BSR_h步骤1:首先,仔细阅读错误报告样本数据中的每个错误文档。步骤2:文本已被分割,停止术语已被删除。步骤3:使用TF-IDF公式来测量每个单字特征的频率。步骤4:使用TF-IDF方程确定每个单字特征的平均严重性。因此,每个特征都可以在向量空间中用TF-IDF表示,公式5描述了相关的错误报告向量。-C fn-1 VCω fnfn-1表示C(fnfn-1)的调整值最后,使用二元语法方法构建包含单词概率的数据矩阵,并在应用N元语法方法之前移除最大值“000个c) 特征选择阶段整个阶段的主要目标是选择相关的特征来评估缺陷的强度。图4描绘了动作中的基于AC0的特征排名过程。一个示例是具有n个特征、m个数据实例和k个聚类的错误报告。BD1、BD2、BD3、…. ,B.D.N个代码被用来描述一个bug文档的特征。在特征提取阶段,利用来自日志的统计和语义数据确定许多特征。已经注意到,没有一个特征具有相同的权重。许多特征的存在偶尔会导致数据中的非线性问题以及预测百分比降低。因此,有时效率会很高。因此,选择必要的特征是一个关键的技巧,可以通过选择相关的characteris- tics通过特征集的分类器的性能。在这项研究中,使用基于蚁群算法的特征选择方法选择最佳的功能的错误发生。为了解决约束和无约束组合优化的复杂性,Dorigo等人创建了这种方法(Mohammad等人,2016年)。该方法已被用于解决特征优化、聚类分析、物联网、图像分析、发送数据等问题,它为这些问题带来了最好的结果。在特征筛选阶段,采用基于蚁群算法的特征排序方法,找出显著特征进行缺陷严重性预测。该方法试图确定提取的特征中每个特征当预-VBSRx 四分之一tfbsrx;y1;tfbsrx; y2···tfbsrx; yx5指示错误的强度,具有较高权重之所以被选中,是因为它们具有很高的影响力。以下是一个描述-一个独特的词汇表特征表示错误报告向量的大小。考虑bug文档(BSR)2中具有特征y 1的术语频率为tf(BSR 2,y 1)。假设bug文档没有提到查询特征。在该场景中,矩阵内的相关特征被赋予零。许多不同功能的基本值也将被设置为零,如果它们超过此估值。数据稀疏是指无法提取相关的错误报告。N-gram技术解决了稀疏数据的问题(Jiang等人, 2016年)。在N-gram方法中,平滑函数处理稀疏性问题.平滑函数可以定义为add-1 smoothing、add-k、stupid back off和Kneser-Ney。在这项工作中,我们采用了N元模型的add-1平滑函数,也称为拉普拉斯平滑。此函数将“1 00”加基于ACO的特征排名方法如何操作。完整的数据集被分成k个子组来评估基本特征。采用随机选择来确定k个聚类中心。一个基于蚁群优化算法的聚类也被用来提高聚类中心。接下来的步骤涉及到使用范围特性将各种数据事件分组到k个聚类中。为了将数据组织成适当的聚类,通常利用欧几里得距离方法(Vijayarani等人,2015;Wang等人,2015年)。现在,使用权重特征函数来确定特征集中每个属性的权重。根据权值特征选择特征进行烈度预测。图4示出了基于AC0的特征加权和选择过程。A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报490W<$P<$i图四、基于ACO的特征加权和选择过程。3.1.1.基于蚁群算法的特征加权技术的步骤如下:步骤1:显示bug数据集的特征和获得的值。第2 步 : 与 ACO 算 法 探 索 的 漏 洞 严 重 度 水 平 直 接 相 关 , 包 括BSLEV_1、BSLEV_2、BSLEV_3等。. 和BSLEV_n,它们可以连接到每个bug文档。对于每个严重性级别,还计算权重特征。为了确定属性的最终权重,首先将上述权重特征乘以各个特征的质量。在步骤3中:使用称为“权重函数确定”的算法来确定每个特征的重要性,bug数据源当量(8)确定测试数据集的每个元素的权重函数(w_f)。其中,Wi示出了第i个参数的权重参数的值,Fi表示第i个参数的平均权重,Ci表示第i个聚类的中心值,如等式(1)中所述(八)、3.2. 拟定的程控仪指标程序员推荐框架的原理在本小节中介绍。在这个阶段中提供了识别错误和问题的适当程序员的排名。通过使用度量、相关性和推荐系统、工具,找到合适的程序员。以下是对所有这些操作的描述。能力得分(C_score):程序员解决bug数据的独特能力是所有这些排名的基础。据观察,一个特定的错误报告涉及一组独特的技能来解决。如果一个类似性质的bug最近被修复了,那么程序员就可以有效地处理bug报告。因此,可以调查程序员的技能来解决bug解决方案。此外,已经发现可以通过使用关于历史记录的机器学习算法来评估程序员的技能。在数据库中确认了一个新的错误,并首先考虑了其严重性。为了解决这个问题,对于机器学习,识别应用程序员。一PDFiDPBSLPnxi k;能力等级由程序员I 1i¼ 1Ci;i: e:;Fi¼k¼1ii¼ 1ð8Þ来解决bug这些可以通过使用程序计算-mers的专业知识来纠正错误。因此,在这项研究中使用的能力得分,而不是机器学习类-变量i表示具有相似严重性的特征内的报告的计数,并且x_(i,k)表示具有第k阶段的文件的计数。BSL指示错误报告严重性。算法2列出了所提出的基于ACO的特征选择方法的阶段。一个较小的特征集是特征选择阶段的结果。此外,这些功能预测Bugd) 程序员推荐阶段程序员推荐框架的原理在本小节中介绍。在这个阶段中提供了识别错误和问题的适当程序员的排名。通过使用度量、相关性和推荐系统、工具,找到合适的程序员。对程序员进行评分标记:g_A示出了对增强结果的特征的先验理解,s_A(T)捕获在周期T处的第A个特征的信息素的量,a和b示出了提供信息素和上下文的命令变量,并且p_A(T)示出了转移概率值,q示出了信息素路线的提取效率并且位于区间0和1之间,Ds_A(T)指示了随时间D并入到第A个特征中的信息素的数量,并且DT,d示出了特征的计数,h示出了数据实例的计数,k示出了聚类的数量,X_ih是第h个数据实例的第i个特征值,C_ik示出了第k个聚类集合的第i个特征●●●●A. 库卡尔,U.Kumar Lilhore,J.Frnda等人沙特国王大学学报491ð þÞ¼ð ÞþðÞ一一1/1漏洞总数1/1k½ 1CikD● 缺陷严重性级别:缺陷严重性是一个前瞻性测量算法2(建议在整个研究中,程序员的总体是一个众所周知的简单事实是,并不是每一个错误都需要立即注意或至关重要。有几个bug比其他bug更严重,需要程序员如果没有,也会发生奇怪的事件必须评估事件日志的影响学习技巧可以快速完成任务。文献随后包含错误报告的数据集。分类器在任何这些数据集上进行训练,以预测风险水平。假设数据库已更新了最新的bug。所有这些错误的风险都可以使用NB和SVM等分类器进行预测此外,完美的程序员被分配来解决错误。应该注意的是,程序员的排名是根据bug严重程度创建的。一个程序员有能力修复-处理多个严重性的bug为了维持严格的秩序输入:Bug日志数据集输出:无冗余值步骤1:在加载数据集后设置初始聚类中心步骤2:在初始化蚂蚁种群后,指定最高的迭代步骤3:每个蚂蚁步骤4:在使用距离的平方和评估目标值加权方案之后,将令牌分配到具有次要优化标准第五步:While(condition true)。步骤6:应用等式(9)以确定转移概率。一BpTsAT:gA(九)由每个程序员管理,加权严重性最终列表是介绍了它可以被描述为总的APsATa:gb程序员修复的错误数和管理的错误的各种严重程度。当量(12)显示了每个程控仪的加权严重度计算功能。步骤7:等式(10)应用于升级费洛蒙sAT1qsATDsAT(10)第八步:探索蚂蚁第9步:目标函数SL:¼XSL:b×Bugið12Þ重新计算。由方程式在公式(12)中,Bug_i表示缺陷严重性的第i个级别,SL表示严重性级别的数量,b表示要解决的缺陷的关键性,SL_list表示与第10步:结束时步骤11:生成最佳聚类中心。第12步:使用等式(11)计算每个特征值FV_i的结束权重。程序员fvi¼. PdPhPk第1Xih×1(11)平均错误修复时间(BFT_avg):程序员解决错误所花费的平均时间用于解释此标准度量。发现和修复涉及许多步骤,包括软件程序员对问题的表述、系统开发以及源代码检查和评估。根据错误的严重性,确定适当的程序员也很重要一个程序员花费在修复bug上的总时间占修复bug总数的比例可以用来计算出平均的Bug解决时间。当分析错误报告时,发现它们包含各种字段,包括元素、组件、时间和日期、严重性级别、能力等。(13)计算程序员D等级:1 C开发:2 SL:列表:3 T平均值:13由方程式D等级表示程序员的最终等级,Cdev描述程序员的能力学习,SL:list表示错误的严重程度,Tavg表示平均错误修复时间。c1、c2和c3是三个控制参数,c3c1c2此外,这些参数值在<<0和1。3.2.1. 相似程序只有在bug存档中记录了新的bug时,才能直接从bug报告中提取特性。此外,相似性程序用于评估事件的严重程度并选择正确的程控仪。整个研究采用相似性度量来评估错误事件和合适程序员之间的相似性。通过相似性程序创建了一组解决类似错误类型第13步:选择最高的功能重量.3.3.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功