[发明专利]一种结构测试中的被测程序改造方法及其系统在审
申请号: | 201410564233.4 | 申请日: | 2014-10-21 |
公开(公告)号: | CN104317710A | 公开(公告)日: | 2015-01-28 |
发明(设计)人: | 宫云战;杨忆文;王雅文;黄俊飞;金大海 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 测试 中的 程序 改造 方法 及其 系统 | ||
技术领域
本发明涉及软件测试技术领域,尤其涉及一种结构测试中的被测程序改造方法及其系统。
背景技术
软件测试是发现软件故障,提高软件可靠性的主要手段,是保证软件质量的关键技术。软件测试方法主要分为白盒测试和黑盒测试,白盒测试又称为面向程序结构覆盖的测试,简称结构测试,主要用在单元测试中。这种测试方法根据程序的内部逻辑结构进行测试,测试人员依据程序内部逻辑结构的相关信息,设计测试用例,对程序的逻辑路径进行测试,来检查程序中每条路径是否都能按预定的要求正确的执行。在面向程序结构覆盖的测试中,通常使用测试覆盖准则来度量测试的充分性。
面向程序结构覆盖的测试方法能够精确地分析程序的行为,通过检查程序中不同位置的状态,确定实际的状态是否与预期的状态一致,但是由于被测函数单元通常不能直接单独执行,被测函数单元的路径多且复杂等原因,为完成一次单元测试,测试人员需要花费大量的时间构造执行本次测试所需要的驱动函数,桩函数等确保该单元函数能够独立执行,测试人员还需要人工分析路径的覆盖情况。
发明内容
本发明提供一种结构测试中的被测程序改造方法及其系统,通过改造被测函数单元,构造驱动函数,构造桩函数,构造探针函数,使被测程序可独立执行,大大提高了结构测试的自动化程度。
根据上述目的,本发明提供了一种结构测试中被测程序的改造方法,其特征在于,所述方法包括:
S1、根据被测程序的结构生成抽象语法树和控制流图,并得到所述被测程序的输入/输出函数信息。
S2、改造被测程序,并在所述被测程序中分别构造驱动函数、桩函数和探针函数;
S3、执行所述被测程序,得到所述探针函数的插桩返回信息,根据所述插桩返回信息和所述控制流图分析所述被测程序的路径覆盖情况。
其中,所述步骤S2具体包括:
S21、判断所述被测程序是否是主函数,是,则对所述被测程序重命名,然后执行步骤S22;否则直接执行步骤S22;
S22、对被测函数中的输入/输出函数进行变换,使输入函数中的参数作为所述被测程序的输入,并将输出函数的输出结果保存;
S23、将被测程序中对子函数的调用语句变换成桩函数,并对所述桩函数进行定义,构造成可运行的桩函数;
S24、将被测程序以探针函数进行插桩,并对所述探针函数进行定义,构造成可运行的探针函数;
S25、构造驱动函数。
其中,所述输入/输出函数信息包括:所述被测程序的形参名及其类型,所述被测程序的返回值类型;输入/输出函数的函数名,输入/输出函数中参数名及其类型。
其中,所述输入/输出函数包括:控制台I/O函数,文件I/O函数,网络I/O函数,数据库I/O函数。
根据本发明的另一个方面,提供一种结构测试中被测程序的改造系统,所述系统包括:
分析单元,用于根据被测程序的结构生成抽象语法树和控制流图,并得到所述被测程序的输入/输出函数信息;
改造单元,用于改造被测程序,并在所述被测程序中分别构造驱动函数、桩函数和探针函数;
执行单元,用于执行所述被测程序,得到所述探针函数的插桩返回信息,根据所述插桩返回信息和所述控制流图分析所述被测程序的路径覆盖情况。
本发明所公开一种结构测试中自动程序改造的方法及其系统,通过改造被测程序,构造驱动函数、桩函数、探针函数,使被测程序可独立执行,然后分析路径覆盖情况,从而大大提高了结构测试的自动化程度。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明的结构测试中被测程序的改造方法的流程图。
图2示出了本发明的结构测试中被测程序的改造方法的步骤S2的具体流程图。
图3示出了本发明的结构测试中被测程序的改造系统的结构框图。
图4示出了本发明的结构测试中被测程序的改造方法的具体实施例的被测程序的控制流图结构示意图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
图1示出了本发明的结构测试中被测程序的改造方法的流程图。
图2示出了本发明的结构测试中被测程序的改造方法的步骤S2的具体流程图。
参照图1,本发明的实施例的结构测试中被测程序的改造方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410564233.4/2.html,转载请声明来源钻瓜专利网。