[发明专利]针对局部模块的单元测试方法有效
申请号: | 200710129959.5 | 申请日: | 2007-07-20 |
公开(公告)号: | CN101075207A | 公开(公告)日: | 2007-11-21 |
发明(设计)人: | 王云峰 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京康信知识产权代理有限责任公司 | 代理人: | 尚志峰;吴孟秋 |
地址: | 518057广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 局部 模块 单元测试 方法 | ||
技术领域
本发明涉及单元测试技术领域,并且具体地,涉及一种针对局部模块的单元测试方法。
背景技术
单元测试是软件开发中质量保证的重要环节。单元测试包括以下几个过程:
(1)根据被测试模块设计相应的测试模块,测试模块包括测试逻辑和测试接口,测试逻辑需要构造被测试模块的环境变量,设计测试用例。测试接口是某一个测试的入口。
(2)修改被测试模块,使被测试模块可以引用测试模块中的桩函数,通常采用额外全局变量或者宏来判别是引用桩函数还是原来的功能函数。
(3)编译被测试模块和测试模块,生成可执行目标运行文件。
(4)运行目标可执行文件,启动测试模块。测试模块通过不同的环境变量组合(测试逻辑负责实现),完成对被测试模块的测试。
(5)发布最后版本时,去掉测试模块,修改被测试模块,去除不必要的针对测试的相关修改。重新编译生成可执行文件。
在处理(1)中构造测试用例时,必须引用被测试单元中的单元接口此单元才能被测试,通常的单元接口是全局的。当进行更详细的单元测试,需要对被测试单元中的局部模块进行测试时,测试模块无法引用被测试模块的局部接口,为了实现这个功能,一般的做法是将被测试模块的相关局部接口改为全局接口,或者将测试模块插入到被测试模块中,解决局部接口引用的问题。
上述做法存在以下缺点:(1)被测试模块被较大程度的修改,测试结果的可信性、准确性都受到一定程度影响;(2)被测试模块的局部接口被修改为全局接口,可能会引发符号冲突问题,引起编译问题;(3)被测试模块代码和测试代码混合在一起,给代码版本管理维护带来不便。
发明内容
考虑到现有技术中存在的上述问题而提出本发明,为此,本发明旨在提供一种针对局部模块的单元测试方案,其可以不对被测试模块进行较大程度的修改,同时无需改变被测试模块的局部接口,也无需将被测试模块代码和测试代码混合在一起。
根据本发明,提供了一种针对局部模块的单元测试方法。
该方法包括以下处理:设计测试模块及测试用例;调整被测试模块,实现被测试模块与测试模块的挂接;编译测试模块和被测试模块,生成目标执行文件,并对目标执行文件进行修改,以引用局部模块符号;运行测试用例;恢复对目标执行文件的修改,生成发布目标文件。
其中,对目标执行文件进行修改的处理包括:针对要引用的局部模块符号,在测试模块中声明对其引用。具体地,在测试模块中定义一个关联符号,关联符号的内容表示要引用的局部模块符号的位置。
另外,对目标执行文件进行修改的处理具体为:在完成测试模块与被测试模块的挂接后,搜索目标执行文件的符号表,将在测试模块中定义的关联符号的内容修改为要引用的局部模块符号的位置。其中,搜索目标执行文件的符号表的处理包括:找到目标执行文件的文件头,读取其中的段描述信息,获取符号表段在目标执行文件中的偏移及字符串段和数据段在目标执行文件中的位置。将在测试模块中定义的关联符号的内容修改为要引用的局部模块符号的位置的处理包括:判断查找到的带有特征类型的字符串为关联符号,获取关联符号在数据段中的位置,将关联符号的值修改为要引用的局部模块符号的指针。带有特征类型的字符串为以引用标识为前缀的字符串。
通过本发明,可以使一个模块应用其他模块的局部函数,满足对局部函数测试的需求,并且相比于传统单元测试方法,可以最大限度的减少对被测试模块的修改,减少被测试模块和测试模块的代码混杂,因此便于代码管理和维护。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明实施例的针对局部模块的单元测试方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
根据本发明实施例,提供了一种针对局部模块的单元测试方法。
如图1所示,根据本发明实施例的该方法包括以下处理:
步骤S102,设计测试模块及测试用例;
步骤S104,调整被测试模块,实现被测试模块与测试模块的挂接;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710129959.5/2.html,转载请声明来源钻瓜专利网。