一种基于蚁群算法的软件缺陷定位方法及装置制造方法及图纸

技术编号:24995569 阅读:43 留言:0更新日期:2020-07-24 17:58
本发明专利技术提供一种基于蚁群算法的软件缺陷定位方法及装置,属于软件测试技术领域。该方法包括:构建蚁群搜索图;初始化蚁群搜索图中所有路径的信息素浓度;构造用于揭示缺陷分布能力的适应度函数;将M只蚂蚁置于所述蚁群搜索图的第一层的其中一个节点位置处进行搜索,搜索完成后形成M条长度为N的路径,根据M条路径的适应度值选取当前最优路径集;选取满足迭代终止条件时的最优路径集作为最终最优路径集;统计最终最优路径集中各最优路径中的可执行语句出现的次数,选取次数大于设定次数的可执行语句作为缺陷语句。本发明专利技术采用蚁群算法,将软件缺陷定位问题转换为基于搜索的求最优解问题,进而求得缺陷程序中的缺陷语句位置,缺陷定位效果较好。

【技术实现步骤摘要】
一种基于蚁群算法的软件缺陷定位方法及装置
本专利技术涉及一种基于蚁群算法的软件缺陷定位方法及装置,属于软件测试

技术介绍
随着软件复杂性的增加,软件中包含的缺陷类型和缺陷所在位置呈现多样化,使得缺陷定位环境变得愈加复杂,这给多缺陷定位技术的研究带来了很大的困难。针对软件多缺陷定位问题,一般的处理方法为:根据测试数据的执行结果将缺陷程序划分为不同部分,随后通过开发人员人工检查代码,手动确定缺陷位置,该方法不仅消耗大量时间,而且需要花费较多的人力。为了解决上述问题,公告号为CN104317707B的专利技术专利文件,公开了一种基于程序结构影响感知的软件错误定位方法,该方法基于可疑度函数,计算每条语句的可疑度值,然后根据可疑度值从大到小对语句进行排序,根据此顺序对程序语句逐条排查,定位程序中的错误。在实际使用该方法过程中,发现软件错误定位效果较差。
技术实现思路
本专利技术的目的是提供一种基于蚁群算法的软件缺陷定位方法及装置,用以解决现有技术中的软件错误定位方法的定位效果差的问题。为实现上述目的,本专利技本文档来自技高网...

【技术保护点】
1.一种基于蚁群算法的软件缺陷定位方法,其特征在于,包括以下步骤:/n构建蚁群搜索图,该蚁群搜索图包括N层,N等于缺陷程序的可执行语句数,每层设置有两个节点,一个节点表示执行对应的可执行语句,另一个节点表示不执行对应的可执行语句,且每一层中的每个节点与该层下一层中的每个节点均连通;/n初始化蚁群搜索图中所有路径的信息素浓度;/n构造用于揭示缺陷分布能力的适应度函数;/n将M只蚂蚁置于所述蚁群搜索图的第一层的其中一个节点位置处,进行搜索,根据当前节点与下一层两个节点之间的信息素浓度,选择信息素浓度较高的路径对应的节点,在移动之后通过调整局部信息素挥发系数来更新该路径上的信息素浓度,在M只蚂蚁完成...

【技术特征摘要】
1.一种基于蚁群算法的软件缺陷定位方法,其特征在于,包括以下步骤:
构建蚁群搜索图,该蚁群搜索图包括N层,N等于缺陷程序的可执行语句数,每层设置有两个节点,一个节点表示执行对应的可执行语句,另一个节点表示不执行对应的可执行语句,且每一层中的每个节点与该层下一层中的每个节点均连通;
初始化蚁群搜索图中所有路径的信息素浓度;
构造用于揭示缺陷分布能力的适应度函数;
将M只蚂蚁置于所述蚁群搜索图的第一层的其中一个节点位置处,进行搜索,根据当前节点与下一层两个节点之间的信息素浓度,选择信息素浓度较高的路径对应的节点,在移动之后通过调整局部信息素挥发系数来更新该路径上的信息素浓度,在M只蚂蚁完成对所有层的搜索之后,形成M条长度为N的路径,利用所述适应度函数分别计算这M条路径的适应度值,并根据M条路径的适应度值选取当前最优路径集;判断是否满足迭代终止条件,若不满足迭代终止条件,则通过调整全局信息素挥发系数来更新当前最优路径集中各最优路径上的信息素浓度,并进行下一轮的搜索,直至满足迭代终止条件,得到最终最优路径集;其中,所述满足迭代终止条件为达到设定的迭代次数;
统计最终最优路径集中各最优路径中的可执行语句出现的次数,选取次数大于设定次数的可执行语句作为缺陷语句。


2.根据权利要求1所述的基于蚁群算法的软件缺陷定位方法,其特征在于,所述适应度函数FitOchiai(C)为:FitOchiai(C)=σ(C)×(Tf×(σ(C)+ψ(C)))-1/2,其中,C代表路径,Tf代表失败测试数据的数量,σ(C)代表路径C与失败测试数据执行轨迹的重合度,ψ(C)代表路径C与成功测试数据执行轨迹的重合度。


3.根据权利要求1所述的基于蚁群算法的软件缺陷定位方法,其特征在于,所述在移动之后通过调整局部信息素挥发系数来更新该路径上的信息素浓度,对应的信息素浓度更新公式为:τ(Vk,Vk+1)=ατ(Vk,Vk+1)+(1-α)τ0,其中,τ(Vk,Vk+1)为路径(k,k+1)上的信息素浓度,α为局部信息素挥发系数,τ0为路径初始信息素浓度。


4.根据权利要求1所述的基于蚁群算法的软件缺陷定位方法,其特征在于,所述通过调整全局信息素挥发系数来更新当前最优路径集中各最优路径上的信息素浓度,对应的信息素浓度更新公式为:τ(Vk,Vk+1)=ρτ(Vk,Vk+1)+(1-ρ)Δτ(Vk,Vk+1),其中,τ(Vk,Vk+1)为路径(k,k+1)上的信息素浓度,ρ为全局信息素挥发系数,Δτ(Vk,Vk+1)为路径(k,k+1)上信息素浓度的增量,Δτ(Vk,Vk+1)=1/Hopt,Hopt为当前最优路径的适应度值。


5.根据权利要求1所述的基于蚁群算法的软件缺陷定位方法,其特征在于,在不满足迭代终止条件时,若连续设定轮次得到的最优路径集中各最优路径的适应度值均没有增大,则降低局部信息素挥发系数和全局信息素挥发系数,并重新进行下一轮搜索。


6.一种基于蚁群算法的软...

【专利技术属性】
技术研发人员:曹鹤玲邓淼磊王宪勇苗建雨费选靳小波宋炯炯薛正元许德刚赵玉娟杨静徐振强
申请(专利权)人:河南工业大学
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1