文摘
软件测试是一个广泛的工业验证软件质量保证的手段。智能优化算法已被证明是一个有效的测试数据自动生成方法。萤火虫算法得到了广泛的关注,被广泛用于解决优化问题,因为更少的参数和简单的实现。克服萤火虫算法的收敛速度慢、精度低,小说与深度学习提出了萤火虫算法生成结构测试数据。最初,人口分为男性组和女性组。随机吸引模型后,由另一个随机选择的每个雄性萤火虫将吸引雌性萤火虫关注全球搜索整个空间。每个雌性萤火虫实现本地搜索在萤火虫一般中心的领导下,建立基于历史经验与深度学习。在最后一段搜索,进行混沌搜索附近最好的萤火虫来提高搜索精度。仿真结果表明,该算法可以实现更好的性能在成功覆盖率方面,报道时间,多样化的解决方案。
1。介绍
软件测试是一个劳动密集型和重要衡量软件质量占总成本的40%以上(1]。自动化测试数据生成的过程搜索可行的测试用例来满足给定的测试标准(例如,分支覆盖)可以降低测试成本的总成本,提高软件质量(2]。coverage-based自动测试数据生成路径优化是一种最基本和关键的领域相当大的研究兴趣。其目的是生成测试数据来执行程序的每个可行路径至少一次(3]。
灵感来自人类智慧和自然现象的生物组织,越来越多的metaheuristic算法提出了解决各种优化应用程序并展示他们独特的优势。因为许多典型问题在软件工程中可以制定优化问题,基于搜索的软件工程(SBSE)已被广泛应用在整个软件生命周期,如需求和项目管理。替补SBSE领域,基于搜索的软件测试(SBST)得到了最广泛的研究和被证明是一种有效的方法来生成结构测试用例(4,5]。Metaheuristic已用于测试用例生成算法包括遗传算法、粒子群优化,萤火虫算法,人工蜜蜂殖民地,布谷鸟搜索算法、蚁群优化等(2]。
通过模拟和简化萤火虫的行为,杨(6)开发了萤火虫算法(FA)根据萤火虫的闪光模式。作为一个随机,群体智能方法,它已经收到广泛关注并成功地应用于各种应用程序,因为它的效率和简单7,8]。然而,足总显示一些缺点如低精度和陷入局部最佳状态。为了克服上述局限,我们打算提出一个性别的焦点与深度学习萤火虫算法生成结构测试用例。
提出了一个有效的metaheuristic萤火虫搜索结构测试数据生成算法,这是研究最广泛的搜索技术的应用测试数据生成问题。主要工作可以总结如下:首先,一个解决方案来生成测试用例使用FA构造;第二,新算法通过随机吸引力模型结合,深度学习,和混沌搜索制定平衡全局和局部搜索能力;第三,实现和分析公共基准程序中详细讨论。
2。背景
2.1。萤火虫算法
FA是metaheuristic算法出于理想化的生物学行为和信息交互策略的萤火虫。越明亮的萤火虫会相互吸引,走向光明。一般来说,吸引力两个萤火虫之间亮度成正比和距离成反比6]。在进化的过程中,萤火虫会逐渐关注最亮的萤火虫,这是目标的解决方案。在搜索空间的优化问题,尤其是最大化问题,萤火虫亮度可以简单地计算适应度函数值编码,和每个萤火虫代表候选解决方案的优化问题。
假设有N萤火虫在D维空间,任何两个我th /j萤火虫可以表示为 和 ,分别。足总可以被描述的数学描述如下(9]。
初始化每个萤火虫应该如下: 在哪里是随机函数生成数字0和1之间,U和l输入空间的上界和下界。
萤火虫之间的距离我在和萤火虫j在可以定义如下: 在哪里是d的空间坐标我萤火虫,是d的空间坐标j萤火虫。
降低复杂性的优化,尤其是在最简单的最大问题,萤火虫的吸引力我可以制定 ,由它的亮度与适应度函数值。假设萤火虫j是比萤火虫我,萤火虫我会吸引了,搬到萤火虫吗j。然而,亮度被萤火虫我将减少的距离,因为媒体的光吸收。然后,吸引力会改变根据吸收的程度。考虑到吸收和平方反比定律,光强度可以被定义为(3)和相对吸引力可以被定义为(4)。 在哪里是萤火虫的吸引力我根据适应度函数进行编码,是一个给定的光吸收系数,是最初的吸引力r= 0。
萤火虫的运动我萤火虫所吸引j定义如下: 第二部分是两个萤火虫之间的吸引力,第三部分是随机漫步。
2.2。相关研究
在许多领域有许多复杂的优化问题,传统优化方法所无法解决的。与社会、自然的深度学习过去几十年已经出现许多新的元启发式搜索算法,如遗传算法(GA)、爬山算法(HCA),粒子群优化(PSO),布谷鸟搜索算法(CS),萤火虫算法(FA),灰太狼优化算法(GWA)和蛾火焰优化算法(MFO)。自动化测试数据生成过程与这些优秀的成就一直是近年来迅速发展的兴趣。研究人员(4,5,10)进行了一系列广泛的搜索和调查发现,这些元启发式算法广泛应用于自动软件测试数据生成,而一些没有利用测试数据生成技术。小河et al。2)选择一些算法根据他们的受欢迎程度在他们的研究和HCA的性能相比,PSO, FA, CS,英航和ABC路径覆盖和分支覆盖优化。在所有,萤火虫算法有其独特的能力的自动划分和处理多模态函数。它已经收到了广泛的关注,被广泛用于解决优化问题,因为更少的参数和简单的实现。
研究人员提高标准FA在许多不同的方式,如参数控制策略,有吸引力的模型和混合改进策略11]。已研制出许多足总变异来解决各种优化问题。赵et al。10)提出了萤火虫算法使用深度学习策略来克服萤火虫算法的过早收敛。实验12个功能展示其更好的性能。胡(12]讨论了萤火虫算法和高斯干扰是添加到迭代期间萤火虫的位置。Huanget艾尔。13]给出了一个改进的混沌萤火虫算法提高局部搜索能力。介绍了切比雪夫混沌映射函数与搜索运算符来初始化萤火虫种群进化过程中,促进优化改变搜索区域。基于初始化列表交配和萤火虫的历史运动,Waledd et al。14)提出了一个萤火虫photinus算法改变吸收参数优化过程中平衡勘探和开发。王等人。15)设计独立的运动方程为雄性萤火虫和雌性萤火虫,分别实现全局搜索和局部搜索。此外,谢et al。8)开发了一种混合多目标萤火虫算法应对新兴复杂多目标优化问题。萤火虫是遵循外部存档的多样性维护的档案修剪。
也有一些令人兴奋的成果软件测试。马等。16)动态惯性权重和压缩因子添加到萤火虫算法和应用到典型的三角形类型项目。将测试套件降低问题转化为优化问题,锣等。17)使用萤火虫算法和贪婪算法获得最佳解决方案,然后证明其还原能力和稳定性。考虑到萤火虫运动作为遗传算法的遗传操作,李et al。18)结合GA和FA减少冗余的测试用例,提高算法的收敛性。Pandey et al。19,20.)开发了一个混合的萤火虫和回归测试环境的遗传算法选择和测试数据生成。评价表明,该混合方法执行。
3所示。Firefly-Based测试用例生成
3.1。测试用例生成框架
测试数据自动生成基于FA需要解决萤火虫算法之间的合作操作问题和考试日期的一代21),如图1。该框架可以分为两个方面:萤火虫算法和测试日期的一代。通过密切合作,即时反馈,双方促进整个优化过程。总体描述如下。首先,测试程序的静态分析(把)执行提取相关的接口信息。和存根插入构造或计算问题特定的健身功能。接下来,萤火虫种群初始化的输入空间,位置在哪里解码参数值。遵循的原则”走向光明的萤火虫,萤火虫的位置在每个维度在每个迭代中更新。在进化过程中,适应度函数值和覆盖率信息收集,进一步指导优化基于知识和历史经验。进化的继续,直到目标解决方案被发现或几代人的最大数量。
3.2。适应度函数
为了适应FA软件测试区域,自动生成测试数据应该转化为优化问题,在搜索空间和解决方案操作应该被合理的适应度函数进行编码。编码机制应确保在搜索空间邻居解决方案类似的候选人在软件测试的测试数据。更好的候选解决方案反映了光明的萤火虫应该奖励,更糟的是候选解决方案与适应度函数值的人应该受到严惩。因此,一个好的适应度函数是一个优化的效率和成功的关键因素。对于测试数据生成,更好的适应度函数值应该返回的测试数据,几乎满足覆盖标准。
对于结构测试数据自动生成,目标是搜索测试数据路径覆盖率最大化。在搜索过程中,我们需要从执行迭代得到反馈。我们专注于有多远的实际执行路径给定的输入向量x远离目标路径。分支覆盖是广泛使用的标准在软件测试22]。基于研究成果Korel和特蕾西的23,24)的总和分支函数用于生成测试数据结构。典型的分支谓词的适应度函数可以计算如下(表1),k是一个常数大于0。通过使用给定的适应度函数,萤火虫算法可以适应生成测试数据,然后优化过程可以引导寻求更好的解决方案。
假设将有n输入参数,表示为 ,和选择被测目标路径米分支。因此,分支1适应度函数值 和 为分公司米。通过总结函数值,每一个适应度函数值输入可以计算(6在(),其中每个条目的定义是7)。
4所示。改进萤火虫算法与深度学习
4.1。动机
在自然界中,闪烁的萤火虫是一个奇妙的景象特别是在夏天夜晚,和节奏闪光由萤火虫是用来吸引合适的交配伙伴或潜在的猎物25]。雄性萤火虫有翅膀,这样他们就可以在空中巡航寻找最喜欢的女性在一些物种的雌性萤火虫没有翅膀,所以他们通常栖息在树枝或草等合适的雄性萤火虫。一旦他们发现一个正确的男性,他们将如何应对闪烁的独特模式。
灵感来自于有趣的生物发光的性格,性别与深度学习的萤火虫算法加速进化。最初,萤火虫人口分为男性组和女性组,一半一半。交配后闪光模式,萤火虫会被产生的闪光吸引交配伙伴,然后走向光明的合适的伴侣。平衡算法的探索和开发,运动机制和更新公式分别为男性和女性设计萤火虫。代表雄性萤火虫算法的全局优化能力,尽可能地搜索整个空间,而雌性萤火虫利用本地搜索空间找到可能的解决方案来改善算法的准确性。一般来说,搜索过程是由优秀的解决方案在各种产品表面优化算法。深度学习优秀的解决方案是用来提高指导能力。此外,将进行混沌搜索附近最好的解决方案来提高解决方案的多样性和准确性。
4.2。随机吸引模型
在标准的萤火虫算法中,每一个萤火虫会相互吸引和转向其他光明的萤火虫,称为完全吸引模型(26]。太多的吸引力会导致过早收敛,所有的萤火虫在蜂群是相似的。因此,收敛速度慢和目标难以寻求的解决方案。假设有N萤火虫,平均运动每个萤火虫的数量 (27在每个迭代和] 所有的萤火虫。虽然完全吸引模型寻求提供了大量的机会,它增加了复杂性和时间导致振荡,消耗大量的计算资源。
Gen-DLFA,雄性萤火虫飞过整个搜索空间找到闪光的萤火虫。通过适应随机吸引模型提出的,雄性萤火虫可以被另一个随机选择的吸引雌性萤火虫关注全球搜索。然后,马克斯运动男性组在每个迭代中 。与完全吸引模型相比,随机吸引模型有较低的时间复杂度,减少频率和计算资源的吸引力。
雄性萤火虫的更新公式定义如下: 在哪里是一个随机选择的雌性萤火虫和d是飞行方向判别因素。的价值d分配基于亮度对比。如果雌性萤火虫是光明的,d设置为1;否则,它将被设置为−1。之间的吸引力是萤火虫吗和萤火虫 。 是一个0到1之间的随机数。
4.3。深度学习
在自然界中,萤火虫的闪光吸引交配伙伴作为一种通信机制。根据标准定义的运动方程FA,萤火虫会被吸引,转移到其他更有吸引力(光明)萤火虫在搜索空间。简而言之,所有的萤火虫群学习”的领袖。“唐et al。28]分析了粒子的轨迹,采用一般中心粒子(GCP)学习每个迭代的领导者。GCP指导实验表明,提出的进化效率,提高收敛速度不增加计算的复杂性。GCP的位置计算如下: 在哪里是d一般中心粒子和空间坐标是d空间坐标从记忆的粒子我。
受益于GCP热点的优秀领导,一般雄性萤火虫中心可以由历史最好值从他们靠记忆来吸引雌性萤火虫。作为其他萤火虫,萤火虫一般中心可以发出闪光参与合作交流和指导女性萤火虫的搜索过程的领导力量。
为了发现有用的模式和从经验训练数据的内在特性,深度学习技术构建低水平之间的复杂映射关系特性高水平训练数据的语义。胡锦涛et al。(29日)采用深层神经网络识别错误的妖怪。王等人。30.]提出一种引起深度学习框架旅行目的地的预测。陈等人。31日语义分割提出了一种改进的神经网络,采用了一种完全连接(FC)融合路径和pretrained编码器嗯图像的语义分割任务。灵感来自这些激动人心的成就,深度学习在一般采用中心萤火虫促进其领导优势在进化过程中,提高全局搜索能力。
最初,萤火虫一般中心作为输入用于深度学习模型。然后,进行一维优化数倍根据以下方程: 在哪里是d随机选择的空间坐标萤火虫r和是d一般中心萤火虫的空间坐标t迭代。
一般中心萤火虫产生深度学习架构是用于指导女性萤火虫从历史的演化过程实验。如果一般中心萤火虫是比女性雌性萤火虫应当按照(移动和更新它的位置11);否则,雌性萤火虫变异根据(12)。 在哪里由柯西分布函数生成随机数,是dth空间坐标的最亮的萤火虫在迭代搜索空间t。
4.4。混沌搜索
理想情况下,萤火虫会慢慢聚集,然后专注于最好的解决方案。然而,在最后一段搜索,其他萤火虫之间的距离减少,因此增加了吸引力。太多的吸引力增加运动,很难找到目标的解决方案,因为太多造成的振荡运动。
像其他著名的全局优化方法,萤火虫算法应该平衡集约化和多样化。最近,混乱吸引了更多的关注在各种应用程序中,包括优化算法,数据加密,智能手机配件算法(32]。Gandomi et al。33]介绍了12种不同的混沌映射成FA和证明其改进全球强大的全局优化搜索能力。位置更新后的萤火虫,采用混沌搜索寻求在当前全球最佳解决方案寻求改善准确性。在混乱的搜索过程中,混沌变量所产生的混沌序列映射到输入空间。然后,选择一些候选解决方案由于混沌的遍历性和干扰特性。混乱的策略可以有效地解决典型的局部最优问题,探索标准FA的搜索空间。详细步骤可描述如下:首先,物流所产生的混沌序列映射函数表示如下: 在哪里ch0 = 0和1之间的初始化随机数,k是迭代次数,是k数字混沌序列。显然,所有混乱的数字将在0和1之间的初始条件下ch0。设置4,k设置5个,以确保搜索空间的完整性。其次,混沌序列映射到搜索空间如下: 在哪里是k混沌数字序列U和l上界和下界的参数测试的程序。最后,进行混沌搜索附近的最佳解决方案根据(15)获得k解决方案来提高局部开发能力,提高搜索精度:
4.5。算法的Gen-DLFA
Gen-DLFA的过程详细描述如下:(1)萤火虫数量和相对参数初始化,然后是人口分为男性组和女性组;(2)每个雄性萤火虫将随机选择另一个雌性萤火虫和更新它的位置在每个维度方程(8);(3)一般男性中心萤火虫集团是由历史实验由方程(9)。然后,进行深度学习数倍方程(10);(4)萤火虫一般中心将指导女性子群的优化过程。如果一般中心萤火虫是比女性雌性萤火虫应该和更新它的位置在每个维度方程(11);否则,雌性萤火虫变异根据方程(12);(5)混沌搜索实现在当前生成的最佳解决方案k由方程(候选解决方案15),以提高精确度,并且人口多样性;(6)这是检查是否满足停止条件。如果条件得到满足,停止搜索过程和输出的最佳解决方案。否则,返回步骤3的搜索过程。
基于上述分析,性别的焦点萤火虫算法的伪代码与深度学习(Gen-DLFA)算法进行了总结1。一些关键参数定义如下:maxGen max一代又一代的演进,N是人口规模,最能代表全球最好的萤火虫在每一代。
|
5。实证评估
这个实验的目的是评估Gen-DLFA的性能。一些基准测试程序和使用先进的萤火虫算法变异进行比较分析。特别,我们调查了以下研究问题:RQ1(有效性)。Gen-DLFA能否寻求目标解决结构性测试用例生成?的平均覆盖率是多少?表现得更好吗?RQ2(效率)。收敛速度是多少?需要多少计算资源为目标解决方案?什么程度的成本Gen-DLFA减少吗?RQ3(多样性)。有多少不同的目标解决方案的总优化过程中发现?
5.1。实验准备
5.1.1。测试对象
一些基准测试程序,被广泛应用于软件测试数据生成选择评估Gen-DLFA[的性能20.,34]。表2显示被测程序的细节。虽然项目的规模是有限的,他们的输入空间维度从2到8等等。每个程序测试下的分支数量范围从5到36。从表中看到,目标分支深层嵌套的路径有严格的条件,这代表了目标优化。关于搜索困难,这些优化目标确保实验的多样性和复杂性。
5.1.2中。实验装置
我们进行了一项实证研究与标准评估Gen-DLFA FA和其他三个足总变异。每个算法的参数如表所示3。为了公平,所有算法的人口规模被选为100年的最大代号码设置为7000。另外,每个独立实验重复30次,实验结果的平均值是用来减少偏差引起的随机性。放的输入数据编码为萤火虫的位置,而放的数量和范围的参数定义整个输入空间。所有基准测试程序用于比较实验用Java编写的,其中大部分可以在源代码中找到自由梁的35]。常见的测试环境下的实验研究:赢得10 pro 64位操作系统,Java Se开发工具包,Intellij IDEA,英特尔酷睿i7处理器,8 GB, LPDDR3记忆。
5.2。有效性
成功的覆盖率是衡量本文算法的有效性。信号目标路径覆盖,它可以计算出随着成功搜索除以总数量的搜索。在我们的实验中,报道意味着多少次算法可以找到目标的解决方案满足所选分支覆盖准则在重复30独立实现。总结了覆盖率结果表4。
从表4,整体平均覆盖FA和Gen-DLFA是95%。每个萤火虫吸引并转向其他光明的萤火虫在足总。这充分吸引模型给萤火虫更多学习的机会,确保充足的优化。拉法的总体平均覆盖率是74%,其中每个萤火虫被随机选择吸引萤火虫减少吸引力频率,然后加速进化过程。拉法虽然容易实现,其全局搜索能力和搜索精度相对较弱。每个项目的速度不稳定,从30%到100%不等。其他算法的平均速度是相似的,GDFA DLFA为80%和83%,分别采用深学习策略和性别组。Gen-DLFA优于比其他四个算法程序LineCover除外,这需要比其他人精度高。
5.3。效率
搜索的消费预算是用来测量算法的效率进行比较分析。对于自动构造测试用例生成,我们使用的平均收敛代和平均搜索时间(以ms)作为衡量指标。我们专注于整体平均世代和平均优化时间被成功的搜索,可以寻求目标的解决方案,满足所选的覆盖准则。表5给出了实验结果。
为了比较基准上的多个算法的搜索消费项目,我们计算的总平均值在表格的最后一行5,分别表示平均收敛代和运行时间。从结果中,我们可以看到标准FA找到合理的解决方案,至少平均1710代。然而,它消耗最40453 ms运行时在所有算法因为造成的很多景点完全吸引了模型。与标准的FA相比,拉法花更少的时间但更多代人寻求目标的解决方案。其总平均收敛代2335年平均运行时间是3475 ms。性能不稳定,因为依赖的随机初始化种群在某种程度上。2178代和17853年平均运行时,女士的表现提出Gen-DLFA DLFA和相似比GDFA一般。
作为一个典型的基准程序,三角形的源代码已广泛应用于自动测试数据生成的研究。其平均收敛代为等边三角形是导入和运行时性能措施评估各种算法。从表4,标准的FA女士花了22909代搜索目标的解决方案通过1468次,最计算资源消耗在所有算法。Gen-DLFA发现值得注意的是,最好的解决方案在6210年与1023代女士,在降低搜索成本取得可喜的成果。它显示了更健壮的性能比其他算法在大多数基准测试程序。
5.4。稳定
为了验证算法的性能,一些额外的实验,讨论了实现细节检查稳定性和观察性能波动与人口规模。
至于每个算法的性能在不同的实验中,几个项目从表进行选择2。一旦输入参数为每个项目的范围定义,他们一直在整个执行过程中相同的值。每个算法的收敛结果代收集的30倍执行如图2。看,平均收敛为三角形,一代又一代的Gen-DLFA RectOverlap, LineRect低于其他算法。而对于二次,平均收敛代Gen-DLFA和FA相似但低于DLFA GDFA。此外,收敛代Gen-DLFA与小波动稳定。
(一)
(b)
(c)
(d)
人口规模是算法性能的关键因素之一。三角形的程序,例如,收敛代在不同人口规模图所示3。从图可以看出,平均收敛代减少与人口规模的增加,当达到一定的人口规模趋于稳定。在大多数情况下,Gen-DLFA和足总可以找到目标解决方案减少收敛代。
5.5。多样性
积极的反馈策略采用许多metaheuristic算法可以加快收敛速度,但可能导致人口过早和低人口的多样性。研究人员提出各种方法来保持多样性和收敛性之间的平衡。更好的解决方案的多样性,具有较强的测试用例来检测缺陷能力在软件测试。
为简单起见,我们使用不同的解决方案的速度测量多样性,可以计算不同的值除以总成功的解决方案的研究。以典型的基准程序三角形,为例,详细的多样性的所有算法总结在图2。获得一个公平的分析,所有算法都使用相同的设置。每个算法独立运行很多次得到20目标的解决方案。可以看到从图4,标准的FA及其变异表现良好。所有算法的多样性可以提高参数的输入空间的增量。Gen-DLFA显示了更好的性能和达到不错的效果。
6。结论
一般来说,软件测试数据生成是极其艰苦的和昂贵的软件工程师的行业。作为一个非常活跃的分支搜索软件工程、一些典型metaheuristic算法及其变体已经被证明是一个有效的方法生成实际的测试数据。针对萤火虫算法的一些缺点,如过早收敛和搜索精度低,我们提出了性别与深度学习(Gen-DLFA)萤火虫算法生成现实的结构测试数据。最初,人口分为男性组和女性组。采用随机模型,吸引每一个雄性萤火虫所吸引另一个随机选择的雌性萤火虫,代表全局搜索能力,而雌性萤火虫一般中心实现本地搜索引导萤火虫构造通过某些一维深度学习的时期。因此,Gen-DLFA可以平衡勘探开发。此外,混沌搜索附近进行Gen-DLFA最好的解决方案来提高解决方案的多样性和准确性。比较结果表明,Gen-DLFA可以实现更好的性能的有效性、效率和多样性。该算法表现出较强的搜索能力和发现目标的解决方案在一个合理的计算成本。
作为进一步的研究,需要更多的研究在控制参数设置,人口多样性维护、稳定的萤火虫算法,等等。此外,大多数研究都集中在单目标优化,和这将是有用的关注多目标优化与当前metaheuristic合并算法。
数据可用性
研究相关数据由两部分组成:该算法的伪代码及其对应的基准程序测试下。Gen-DLFA数据的伪代码来支持本研究的调查结果(详细算法1)和基准程序测试下数据都包含在这篇文章(详细情况见表2)。
的利益冲突
作者宣称没有利益冲突有关的出版。
确认
这项工作得到了河南省科技项目(172102210592和172102210592)。