[发明专利]一种软件故障定位方法、装置、设备及可读存储介质有效
申请号: | 201811144869.8 | 申请日: | 2018-09-28 |
公开(公告)号: | CN109254924B | 公开(公告)日: | 2022-02-08 |
发明(设计)人: | 宋元章;赵宇;李洪雨;于涛 | 申请(专利权)人: | 中国科学院长春光学精密机械与物理研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 130033 吉林省长春市*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 故障 定位 方法 装置 设备 可读 存储 介质 | ||
本发明公开了一种软件故障定位方法,该方法在定位待测试程序中的故障语句的过程中,首先计算出了测试用例集合中的每个正确测试用例的疑似度,并根据所有正确测试用例的疑似度计算出了测试用例集合中的偶然性正确测试用例的个数;并且根据偶然性正确测试用例个数,分别调整每条语句对应的覆盖且成功的测试用例的个数和覆盖且失败的测试用例的个数,之后再采用Ochiai方法定位待测试程序中的故障语句,从而降低了语句的故障疑似值与真实值的差异,提高了待测试程序中的每条语句的故障判断的准确性,也提高了软件故障定位效率和技术人员的工作效率。相应地,本发明公开的一种软件故障定位装置、设备及可读存储介质,也同样具有上述技术效果。
技术领域
本发明涉及软件测试技术领域,更具体地说,涉及一种软件故障定位方法、装置、设备及可读存储介质。
背景技术
软件测试是利用测试工具按照测试方案和流程对产品的功能和性能进行测试的过程。为了跟踪定位软件故障,需要将待测试程序输入大量的测试用例,对于输出的执行结果进行分析处理,并优化待测试程序,从而确保开发的产品适合需求。
在现有技术中,用于测试程序的测试用例集合中的测试用例包括正确测试用例和错误测试用例,而正确测试用例中存在偶然性正确测试用例。已有研究表明,偶然性正确测试用例在测试用例集合中是普遍存在的,甚至会占到测试用例的90%以上。
偶然性正确测试用例指的是具有如下特点的用例:它的执行覆盖了程序的故障语句,但是程序的输出是正确的。根据PIE(Propagation Infection Execution)模型可知:若测试用例触发软件失效,则必须满足3个条件:
(1)测试用例执行到故障语句;
(2)故障语句的执行造成随后程序内部状态出错;
(3)错误的内部状态通过传播影响到程序的输出。
偶然正确性测试用例仅满足条件(1)和/或条件(2),不满足条件(3)。经分析可知,偶然性正确测试用例未导致程序错误输出的原因有以下两种:测试用例覆盖了故障语句,但是错误未被激活;测试用例覆盖了故障语句,错误被激活,但是因为以下情况的出现导致错误被体现到程序的输出:错误结果恰巧是在测试用例能够成功通过的区间;错误结果被后续的语句冲洗或掩盖。
目前在定位软件故障的过程中,未考虑到偶然性正确测试用例对定位结果的影响,因此现有的软件故障定位方法确定的语句的故障疑似值与真实值相比较小,从而影响故障定位的准确率和效率。且现有的软件故障定位方法仅考虑执行成功的测试用例和执行失败的测试用例对于故障定位的信息量不同,并考虑同一测试用例对不同语句的故障定位的有效信息量的不同。
因此,如何削弱偶然性正确测试用例对软件故障定位的消极影响,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种软件故障定位方法、装置、设备及可读存储介质,以削弱偶然性正确测试用例对软件故障定位的消极影响。
为实现上述目的,本发明实施例提供了如下技术方案:
一种软件故障定位方法,包括:
获取待测试程序和测试用例集合,并用测试用例集合中的每个测试用例测试待测试程序,获得每个测试用例对应的语句谱和执行结果;
根据获得的语句谱和执行结果,分别确定待测试程序中的每条语句对应的覆盖且成功的测试用例,覆盖且失败的测试用例、未覆盖且成功的测试用例和未覆盖且失败的测试用例;
确定测试用例集合中的每个正确测试用例的疑似度,并根据所有正确测试用例的疑似度计算测试用例集合中的偶然性正确测试用例的个数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院长春光学精密机械与物理研究所,未经中国科学院长春光学精密机械与物理研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811144869.8/2.html,转载请声明来源钻瓜专利网。