System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于程序路径的测试完备性检查方法、设备及存储介质技术_技高网
当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于程序路径的测试完备性检查方法、设备及存储介质技术

技术编号:40335900 阅读:10 留言:0更新日期:2024-02-09 14:25
本发明专利技术公开了一种基于程序路径的测试完备性检查方法、设备及存储介质。本发明专利技术利用结构化的程序路径信息可以形象地来描述实验室阶段或现实环境中未曾测试或始料未及的测试场景组合。通过统计未覆盖路径集合,定量化的给出了测试结果的反馈,并且可以很好的帮助测试设计人员或开发人员针对这些未曾覆盖的测试路径进行补足测试,从而更好地提高程序的鲁棒性。并且,在不更改程序源代码的情况下,实现了桩点信息输出的自动插桩处理。

【技术实现步骤摘要】

本专利技术涉及计算机软件测试分析,具体涉及一种基于程序路径的测试完备性检查方法、设备及存储介质


技术介绍

1、传统软件工程中,集成测试阶段大多利用事先定义好的软件需求来撰写测试用例,通过输入测试用例数据来验证软件的正确性以及用例的完备性。但是,在现实中一个较为复杂的程序,所面临的自然环境,操作者的知识水平等因素是复杂多变的。人为撰写的用例很多时候,存在着一定的局限性,并不能很好地考虑或覆盖这些复杂多变的影响测试的因素。

2、针对这种情况,本申请提出一种基于程序路径覆盖来检查测试用例完备性,通过静态程序路径同动态执行路径的比对,能够快速获得某些未覆盖的程序路径所对应的测试场景,从而很好的反馈测试用例设计人员补足对应的测试用例数据。利用计算机来处理庞大的程序数据,大大减少人为因素的局限性。


技术实现思路

1、本专利技术旨在提供一种结构化的方法,通过分析当前测试用例集执行被测对象程序后,计算得到未覆盖的路径集合数据,从而辅助测试人员(程序开发人员)更加便捷的察觉到某些未测试场景的存在,并进一步描述这些测试场景,补充完善测试用例集合,直至不再存在有未测试场景。

2、根据本专利技术的第一方面,提出了一种基于程序路径的测试完备性检查方法,包括如下步骤:

3、步骤(1),分析程序ast结构,创建相应的程序控制流程图;

4、步骤(2),基于步骤(1)中得到的程序控制流程图,裁剪压缩程序控制流程图数据;

5、步骤(3),遍历控制流程图中程序基本块,逐个插桩加入桩点数据;

6、步骤(4),输入测试用例数据集并执行步骤(3)已插桩处理后的测试对象程序;收集并暂存程序运行过程中的桩点数据流信息;

7、步骤(5),遍历步骤(2)中得到的程序控制流程图,计算分析静态程序路径;

8、步骤(6),还原步骤(4)中桩点数据流信息数据,结合步骤(2)中得到的程序控制流程图,得到动态执行路径;

9、步骤(7),利用步骤(5)中得到的静态程序路径以及步骤(6)中得到的动态流程图,计算出该测试用例集中未覆盖的程序路径。

10、根据本专利技术的第二方面,提出了一种基于程序路径的测试完备性检查设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述所述的基于程序路径的测试完备性检查方法。

11、根据本专利技术的第三方面,提出了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述所述的基于程序路径的测试完备性检查方法。

12、本专利技术有益效果:

13、采用本专利技术的方法,利用结构化的程序路径信息可以形象的来描述实验室阶段或现实环境中未曾测试或始料未及的测试场景组合。

14、通过统计未覆盖路径集合,定量化地给出了测试结果的反馈,并且可以很好的帮助测试设计人员或开发人员针对这些未曾覆盖的测试路径进行补足测试,从而更好地提高程序的鲁棒性。并且,在不更改程序源代码的情况下,实现了桩点信息输出的自动插桩处理。

本文档来自技高网...

【技术保护点】

1.一种基于程序路径的测试完备性检查方法,其特征在于包括如下步骤:

2.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(1)中,分析测试对象程序的AST结构,根据分支条件语句抽象化一个通用的控制流程图。

3.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(2)中,遍历步骤(1)中生成的程序控制流程图,合并单入单出的语句节点变为一个程序基本块节点;当遇到函数调用节点,则分裂该节点。

4.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(3)中,遍历步骤(2)中的每个程序基本块节点,在程序基本块节点所对应的入口位置加入桩点位置信息输出语句的回调处理,从而程序运行过程中产生一组具有时序性的桩点位置信息数据流。

5.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(4)中,编译生成测试对象可执行程序;利用事先准备的测试用例数据,执行测试;

6.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(5)中,从程序入口点开始,利用深度优先遍历程序控制流程图,计算得到静态程序路径;p>

7.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(6)中,还原步骤(4)中收集到的桩点数据流信息,利用步骤(2)中程序基本块和相应代码位置的映射关系,得到由桩点位置所对应的程序基本块组成的具有一定时序性的程序执行覆盖信息数据流;

8.一种基于程序路径的测试完备性检查设备,其特征在于包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序;其中,所述处理器执行所述程序时实现上述权利要求1至7任一所述的基于程序路径的测试完备性检查方法。

9.一种计算机可读存储介质,其特在于:所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至7任一所述基于程序路径的测试完备性检查方法。

...

【技术特征摘要】

1.一种基于程序路径的测试完备性检查方法,其特征在于包括如下步骤:

2.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(1)中,分析测试对象程序的ast结构,根据分支条件语句抽象化一个通用的控制流程图。

3.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(2)中,遍历步骤(1)中生成的程序控制流程图,合并单入单出的语句节点变为一个程序基本块节点;当遇到函数调用节点,则分裂该节点。

4.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(3)中,遍历步骤(2)中的每个程序基本块节点,在程序基本块节点所对应的入口位置加入桩点位置信息输出语句的回调处理,从而程序运行过程中产生一组具有时序性的桩点位置信息数据流。

5.根据权利要求1所述的测试完备性检查方法,其特征在于:在步骤(4)中,编译生成测试对象可执行程序;利用事先准备的测试用例数...

【专利技术属性】
技术研发人员:陈祥献许馨月吴建林于金玲
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1