[发明专利]软件多故障的定位方法、装置、电子设备以及存储介质有效
| 申请号: | 201910592760.9 | 申请日: | 2019-07-03 |
| 公开(公告)号: | CN110362484B | 公开(公告)日: | 2022-03-01 |
| 发明(设计)人: | 杨顺昆;张宇涵;曾福萍 | 申请(专利权)人: | 北京航空航天大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
| 代理公司: | 苏州携智汇佳专利代理事务所(普通合伙) 32278 | 代理人: | 温明霞 |
| 地址: | 100191 北京市海淀区学院*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软件 故障 定位 方法 装置 电子设备 以及 存储 介质 | ||
本发明公开了一种软件多故障的定位方法、装置、电子设备以及存储介质,其中方法包括:将每一失败测试按比例与所有成功测试均衡组合,从而放大失败测试用例的特征,便于挖掘被测程序中不同故障与每一失败测试用例之间的关联;实现了能够自动确定聚类数量以及聚类中心点的改进K‑medoids算法,能够自动识别被测程序中所含故障数量并将指向同一故障的失败测试用例划分为一类,对每一类失败测试用例分别进行统计、计算得到多个可疑度排名;不仅能够同时定位多个故障,而且定位准确度相比于传统单故障定位方法也得到了提升。
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件多故障的定位方法、装置、电子设备以及存储介质。
背景技术
随着软件种类和规模的不断增加,如何保证软件的安全性、可靠性成为一个至关重要的课题。除了人们日常生活中使用的软件,还有很多软件被用于医学,航空航天和核能等行业的许多关键系统。在软件开发过程中,无论花费多少精力,最终的软件产品仍然可能包含一个或多个潜在的缺陷。要修复这些缺陷,程序员面临的最大的难题就是如何快速找到这些缺陷的准确位置。因此,需要通过用于进行软件故障定位的技术方案,帮助程序员尽快地定位到存在缺陷的代码。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种软件多故障的定位方法、装置、电子设备以及存储介质。
根据本发明的一个方面,提供一种软件多故障的定位方法,包括:步骤一,获取对于软件的测试用例并自动执行测试,获得测试信息;步骤二,基于所述测试信息获得程序谱;其中,所述程序谱中包括:测试成功的测试用例、测试失败的测试用例、以及测试成功的测试用例、测试失败的测试用例分别对应的代码执行和覆盖信息;步骤三,根据所述程序谱对测试失败的测试用例与所有测试成功的测试用例进行组合处理,获得多个子程序谱;步骤四,针对每一个子程序谱,计算此子程序谱中每个代码段的代码可疑度,并基于所述代码可疑度对此子程序谱中的全部代码段进行排序,用以生成与多个子程序谱相对应的多个代码可疑度排名;步骤五,运用K-medoids聚类算法对多个代码可疑度排名进行聚类分析,生成测试用例聚类结果;步骤六,根据所述程序谱并基于所述测试用例聚类结果生成与多个软件故障一一对应的多个新的子程序谱;步骤七,针对每一个新的子程序谱,计算此新的子程序谱中每个代码段的代码可疑度,并基于代码可疑度对此新的子程序谱中的全部代码段进行排序,基于排序对代码段进行缺陷修复;在进行缺陷修复后,重复执行步骤一至七,直至确定全部的对于软件的测试用例都执行成功。
可选地,所述根据所述程序谱对测试失败的测试用例与所有测试成功的测试用例进行组合处理,获得多个子程序谱包括:将所述程序谱中每一个失败的测试用例的多个复制与所有成功的测试用例进行均衡组合,生成多个子程序谱。
可选地,所述计算此子程序谱中每个代码段的代码可疑度包括:计算第i个代码段的代码可疑度
Suspicious(si)=NCF(si)*/(NUF(si)+NCS(si));
其中,NCF(si)表示子程序谱中覆盖代码段si并且失败的测试用例数,NUF(si)表示子程序谱中未覆盖代码si并且失败的测试用例数,NCS(si)表示子程序谱中覆盖代码si并且成功的测试用例数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910592760.9/2.html,转载请声明来源钻瓜专利网。





