【技术实现步骤摘要】
一种结合动态切片的软件多故障聚类定位方法及装置
[0001]本专利技术涉及软件故障定位
,特别涉及一种结合动态切片的软件多故障聚类定位方法及装置。
技术介绍
[0002]近年来,软件多故障定位已经在软件工程中成为一个活跃的领域,通过软件执行信息及执行结果对软件中故障位置或模块进行定位,可以预先对软件失败测试用例进行分类,再执行传统的基于程序谱的软件故障定位。这样,可以为软件测试人员、管理人员、可靠性设计人员等相关人员提供一定的指导,使其合理地分配相关的人力、资源,节约开发成本,提高软件开发效率。
[0003]软件故障定位在过去一直是一项人工作业,考虑到如今大型软件系统的规模与复杂程度,该任务是耗时、繁琐且昂贵的。即使通过软件测试用例失败或其他表现形式发现了软件中的错误,找到并修复它们依旧十分困难,很大一部分原因在于人工故障定位严重依赖与软件开发人员的经验、判断和直觉来识别出可能出现问题的代码并对其进行优先级排序。软件故障定位技术旨在利用程序信息和测试信息大体确定故障所在位置,帮助测试人员更好的定位故障位置,缩小 ...
【技术保护点】
【技术特征摘要】
1.一种结合动态切片的软件多故障聚类定位方法,其特征在于,所述方法包括以下步骤:S1,执行用于软件故障定位的测试用例集合,获得测试信息,并根据所述测试信息获得程序谱;S2、利用动态切片工具获取程序切片信息;S3、利用程序切片信息对程序谱中的程序语句进行筛选,获取子程序谱;S4、计算每个子程序谱中的程序语句的代码可疑度,基于所述代码可疑度对子程序谱中的程序语句进行排序,并用所述子程序谱中程序语句的可疑度排名表示测试用例;所述测试用例表示包括失败测试用例,及成功测试用例;S5、利用聚类算法对失败测试用例进行聚类,获取多个分类簇;S6、根据分类结果,再次计算每个分类簇中的程序语句的代码可疑度,按照新的代码可疑度排名从高到低进行筛查,直至筛查到故障语句,并完成故障修复。2.根据权利要求1所述的结合动态切片的软件多故障聚类定位方法,其特征在于,上述方法还包括采用expense分数对故障语句的定位效果进行评估。3.根据权利要求1所述的结合动态切片的软件多故障聚类定位方法,其特征在于,步骤S4中,计算每个子程序谱中的程序语句的代码可疑度,具体包括:利用4种故障定位特征算子来对程序中语句进行怀疑度赋值,构建怀疑度函数,得到每个子程序谱中的程序语句的代码可疑度,计算公式为:n
ef
(q)是指对于程序语句q,在测试用例集中,执行了程序语句q且测试结果与实际结果不一致的测试用例数量;n
nf
(q)是指对于程序语句q,在测试用例集中,没有执行程序语句q且测试结果与实际结果不一致的测试用例数量;n
ep
(q)是指对于程序语句q,在测试用例集中,执行了程序语句q且测试结果与实际结果一致的测试用例数量;n
np
(q)是指对于程序语句q,在测试用例集中,没有执行程序语句q且测试结果与实际结果一致的测试用例数量。4.根据权利要求1所述的结合动态切片的软件多故障聚类定位方法,其特征在于,步骤S5中,利用聚类算法对失败测试用例进行聚类,获取多个分类簇,具体包括:S51、计算任意两个失败测试用例之间的距离,所述距离即两个子程序谱中程序语句的可疑度排名之间的肯德尔距离其中,ω,σ分别代表两个失败测试用例,s
i
,s
j
分别代表子程序谱中第i,j行代码的可疑
度排名,N表示子程序谱中代码总行数,K'()表示K函数;S52、根据任意...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。