一种单元测试中软件故障自动定位方法技术

技术编号:7843150 阅读:198 留言:0更新日期:2012-10-13 01:33
本发明专利技术提供了一种单元测试中软件故障自动定位方法,包括:A、采用一组满足覆盖需求的测试用例,执行被测程序,判断测试用例的执行结果是否和预期结果一致;B、根据各测试用例对应的执行路径,分析路径上的边信息,确定由路径上的边组成的可疑空间;C、统计可疑空间中每条边被通过和未通过的测试用例覆盖的次数,计算指定执行模式下,每条边的可疑度;D、由边的可疑度计算其相邻语句节点的可疑度;E、按照可疑度的大小对故障节点进行排序,并依次映射到被测程序中生成故障定位报告,辅助用户检查故障。采用本方法,能够降低语句分析的计算工作量,并且考虑到语句节点之间的逻辑关系,提高故障定位的效率。

【技术实现步骤摘要】

本方法涉及软件测试中的故障定位技术,尤其涉及,通过执行测试用例,根据执行结果与预期的测试结果是否一致,对软件中存在的故障进行自动定位。
技术介绍
软件故障是一种动态行为,出现软件故障时若无适当措施加以及时处理,便会产生软件失效。单元测试中尽可能早的发现和排除尽可能多的故障,便会减少和避免后期浪费太多的不值得的时间。目前关于软件故障定位技术的研究,大多是根据执行结果是否通过,以程序语句作为覆盖节点进行统计分析。当程序代码较多时,语句分析的计算量较大,造成大量时间耗 费,且未考虑故障的传播对定位的干扰,影响故障定位的准确率。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供,以克服现有软件故障定位方法中以语句节点为覆盖单位、计算量大而且没有考虑到语句节点之间的联系的缺陷,降低语句分析的计算工作量,并且考虑到语句节点之间的逻辑关系,提闻故障定位的效率。为达到上述目的,本专利技术的技术方案是这样实现的 ,该方法包括 A、采用一组满足覆盖需求的测试用例,执行被测程序,判断测试用例的执行结果是否和预期结果一致; B、根据各测试用例对应的执行路径,分析路径上的边信息,确定由路径上的边组成的可疑空间; C、统计可疑空间中各条边被通过和未通过的测试用例覆盖的次数,计算指定执行模式下,各条边的可疑度; D、由上述步骤得到的边的可疑度计算其相邻语句节点的可疑度; E、根据相邻语句节点的可疑度大小对故障节点进行排序,并依次映射到被测程序中生成故障定位报告,辅助用户检查故障。其中所述步骤A包括Al、基于两种执行模式进行故障定位,分别是全用例执行模式和部分用例执行模式; A2、采用全用例执行模式时,将一组测试用例全部执行,根据执行结果是否和预期一致,将用例划分为互不相容的两部分,即通过的测试用例和未通过的测试用例,并记录对应执行路径包含的边信息; A3、采用部分用例执行模式时,随机选择测试用例集合中的某个用例开始执行,判断执行结果是否和预期结果一致,直到有测试用例的执行结果和预期不一致时停止测试,将此时执行过的测试用例分为两部分,即前m个通过的测试用例和第m+1个未通过的测试用例,获取对应的执行路径; A4、执行结果包括如下内容函数具有返回值,记录其返回结果;关键的中间变量和全局变量,记录其返回值;含有文件操作时,记录生成的文件目录和内容信息;含有数据库操作时,记录生成的数据库目录和内容信息。所述步骤B包括 BI、可疑空间由指定执行模式下某些测试用例对应的执行路径包含的边组成,是判断故障发生的最大范围,取可疑空间的边进行后续步骤的可疑度计算,不同的执行模式,可疑空间则不同。其中,所述步骤BI进一步包括 Biu全用例执行模式下,所有未通过的测试用例对应的执行路径包含的边集合一定存 在故障,将此作为最大的可疑空间,用来进行该执行模式在后面步骤的可疑度计算; B12、部分用例执行模式下,第m+l个未通过的测试用例对应的执行路径一定存在故障,将此路径上的边集合作为该执行模式下的可疑空间; 所述步骤C包括 Cl、全用例执行模式下,遍历可疑空间,统计出覆盖了边ft.的测试用例的个数,结合通过和未通过的测试用例总个数,采用Tarantula方法对边计算可疑度,计算如下NcM)Nfsuspicious degree(g.) = —~—— 1 Nfigj) [ Nf Nv 其中:Nf为所有未通过的测试用例个数; N,为所有通过的测试用例个数; NeM为通过的测试用例中,其对应的执行路径包含了边@的用例个数; NeM)为未通过的测试用例中,其对应的执行路径包含了边@.的用例个数; C2、部分用例执行模式下,对步骤B12得到的可疑空间,即未通过的测试用例对应的执行路径上的边集合遍历,统计前m个通过的测试用例中,覆盖了指定边的用例个数,利用下面公式计算其可疑度 suspicious deg me (g.) = I - ■■■■■■■■■■■■■■■■■■■■■■■; '1 Nv 其中,e,为第m+i个测试用例对应的执行路径上的某条边; N,为所有通过的测试用例个数;本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种单元测试中软件故障自动定位方法,其特征在于,该方法包括 A、采用一组满足覆盖需求的测试用例,执行被测程序,判断测试用例的执行结果是否和预期结果一致; B、根据各测试用例对应的执行路径,分析路径上的边信息,确定由路径上的边组成的可疑空间; C、统计可疑空间中各条边被通过和未通过的测试用例覆盖的次数,计算指定执行模式下,各条边的可疑度; D、由上述步骤得到的边的可疑度计算其相邻语句节点的可疑度; E、根据相邻语句节点的可疑度大小对故障节点进行排序,并依次映射到被测程序中生成故障定位报告,辅助用户检查故障。2.根据权利要求I所述的单元测试中软件故障自动定位方法,其特征在于,所述步骤A包括 Al、基于两种执行模式进行故障定位,分别是全用例执行模式和部分用例执行模式; A2、采用全用例执行模式时,将一组测试用例全部执行,根据执行结果是否和预期一致,将用例划分为互不相容的两部分,即通过的测试用例和未通过的测试用例,并记录对应执行路径包含的边信息; A3、采用部分用例执行模式时,随机选择测试用例集合中的某个用例开始执行,判断执行结果是否和预期结果一致,直到有测试用例的执行结果和预期不一致时停止测试,将此时执行过的测试用例分为两部分,即前m个通过的测试用例和第m+1个未通过的测试用例,获取对应的执行路径; A4、执行结果包括如下内容函数具有返回值,记录其返回结果;关键的中间变量和全局变量,记录其返回值;含有文件操作时,记录生成的文件目录和内容信息;含有数据库操作时,记录生成的数据库目录和内容信息。3.根据权利要求I所述的单元测试中软件故障自动定位方法,其特征在于,所述步骤B包括 BI、可疑空间由指定执行模式下某些测试用例对应的执行路径包含的边组成,是判断故障发生的最大范围,取可疑空间的边进行后续步骤的可疑度计算,不同的执行模式...

【专利技术属性】
技术研发人员:王雅文宫云战韩春晓黄俊飞金大海唐容蔡敏
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

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

1