[发明专利]确定代码覆盖率的方法、测试装置有效
申请号: | 200710032674.X | 申请日: | 2007-12-18 |
公开(公告)号: | CN101464829A | 公开(公告)日: | 2009-06-24 |
发明(设计)人: | 张康宗;王钊;戴赞洵 | 申请(专利权)人: | 珠海金山软件股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州华进联合专利商标代理有限公司 | 代理人: | 李双皓 |
地址: | 519015广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 代码 覆盖率 方法 测试 装置 | ||
1.一种确定代码覆盖率的方法,其特征是,包括:
确定被测试程序的总代码量、所述被测试程序的基础地址、各代码行的相对虚拟地址;
根据所述基础地址、所述各代码行的相对虚拟地址,在所述各代码行内设置中断;
监测所述被测试程序执行过程中是否有中断发生,如果是,则标记所述中断所在的代码行;
监测所述被测试程序是否执行完毕,如果否,则返回所述监测是否有中断发生的步骤;如果是,则:
累计已标记的代码行以获取被执行的代码总量,根据所述被执行的代码总量、所述总代码量获取所述被测试程序的代码覆盖率。
2.根据权利要求1所述的方法,其特征是,确定所述总代码量、所述被测试程序的基础地址、各代码行的相对虚拟地址,具体是:
根据所述被测试程序的PE头信息,获取所述被测试程序的基础地址;
根据所述被测试程序的程序数据库文件,获取所述被测试程序的总代码量、所述各代码行的相对虚拟地址。
3.根据权利要求1所述的方法,其特征是,在所述各代码行内设置中断,具体是:在所述各代码行内写入中断标识。
4.根据权利要求1、2或3所述的方法,其特征是,在所述各代码行内设置中断,具体是:在所述各代码行的入口点设置所述中断。
5.根据权利要求4所述的方法,其特征是,在所述各代码行的入口点设置所述中断,包括:
根据程序数据库文件路径初始化符号句柄,使用所述符号句柄定位所述各代码行的虚拟地址,在所述各代码行的虚拟地址处设置所述各代码行的中断,其中所述各代码行的虚拟地址由所述基础地址、所述代码行的相对虚拟地址确定。
6.根据权利要求1、2或3所述的方法,其特征是,标记所述中断所在的代码行,具体包括:记录所述中断的相对虚拟地址。
7.根据权利要求1所述的方法,其特征是,所述方法进一步包括:
如果监测到有中断发生,则还记录所述中断所在的代码行的序号、和/或所述代码行的代码内容。
8.一种测试装置,其特征是,包括:
参数确定单元,用于确定被测试程序的总代码量、所述被测试程序的基础地址、各代码行的相对虚拟地址;
中断设置单元,用于根据所述基础地址、各代码行的相对虚拟地址,在所述各代码行内设置中断;
中断监测单元,用于监测所述被测试程序执行过程中是否有中断发生;
标记中断操作单元,用于当所述中断监测单元监测到当前有中断发生时,标记所述中断所在的代码行;
结束监测单元,用于监测所述被测试程序是否执行完毕;
计算单元,用于当所述结束监测单元监测到所述被测试程序执行完毕时,累计已标记的各代码行以获取被执行的代码总量,并根据所述被执行的代码总量、以及所述总代码量,获取所述被测试程序的代码覆盖率。
9.根据权利要求8所述的测试装置,其特征是,所述装置还包括:
PE文件存储单元,用于存储所述被测试程序的PE头信息;
程序数据库文件存储单元,用于存储所述被测试程序的程序数据库文件;
所述参数确定单元根据所述PE头信息,获取所述被测试程序的基础地址,根据所述被测试程序的程序数据库文件,获取所述被测试程序的总代码量、所述各代码行的相对虚拟地址。
10.根据权利要求8或9所述的测试装置,其特征是,所述装置还包括:
代码信息存储单元,用于当所述中断监测单元监测到当前有中断发生时,记录所述中断所在的代码行的序号、和/或代码行的代码内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山软件股份有限公司,未经珠海金山软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710032674.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:立体光刻造型用树脂组合物
- 下一篇:一种用于照明节电的无级可调式电抗器