[发明专利]确定代码覆盖率的方法、测试装置有效
申请号: | 200710032674.X | 申请日: | 2007-12-18 |
公开(公告)号: | CN101464829A | 公开(公告)日: | 2009-06-24 |
发明(设计)人: | 张康宗;王钊;戴赞洵 | 申请(专利权)人: | 珠海金山软件股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州华进联合专利商标代理有限公司 | 代理人: | 李双皓 |
地址: | 519015广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 代码 覆盖率 方法 测试 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及计算机程序测试中一种确定代码覆盖率的方法、测试装置。
背景技术
在计算机程序的测试过程中,代码覆盖率是评价测试活动覆盖产品代码的指标。代码覆盖率测试的目的是确认产品代码是否按预期工作。代码覆盖率可以看作是产品代码工作方式的说明文档,是产品代码质量的间接指标,其用于确定测试的有效性。代码覆盖率用于评价测试代码是否已经覆盖了产品代码所有的路径。不同的测试案例对代码覆盖率的要求不同,因此,在测试程序过程中一般需要检查程序的代码覆盖率。
为了确定代码覆盖率,现有技术主要使用以下两种技术方案:
第一种具体是:在程序运行的过程中,高频采样程序的运行状态,在测试结束后,根据采样结果统计代码覆盖率。
由于使用该技术方案对程序运行状态的采样会必然会忽略掉相当多的执行细节,采样不能反映程序执行的真实情况,因而采用该技术方案所获取的代码覆盖率只能是一个粗略统计,而不是真实的代码覆盖率。
第二种具体是,在测试之前,首先需要获取被测试程序的源代码,并对源代码和工程配置进行修改:在需要进行代码覆盖率统计的源代码上增加调试信息输出设置,在修改后,将经修改后的源代码重新编译生成被测试程序。测试过程中,程序内部根据在源代码内增加的调试信息,记录有哪些代码被执行过,从而在测试结束时根据记录统计被执行过的代码总量,从而获取代码覆盖率。
然而该技术方案的应用需要测试人员对被测试程序的源代码作修改,因此该技术方案不利于保持被测试程序的稳定性和安全性。
发明内容
本发明实施例提供了一种确定代码覆盖率的方法,采用该方法能够准确获取被测试程序的代码覆盖率,并且有利于保证被测试程序的稳定性。
本发明实施例还提供了一种测试装置,采用该装置能够准确获取被测试程序的代码覆盖率,并且有利于保证被测试程序的稳定性。
本发明实施例提供的一种确定代码覆盖率的方法,包括:
确定被测试程序的总代码量、所述被测试程序的基础地址、各代码行的相对虚拟地址;
根据所述基础地址、所述各代码行的相对虚拟地址,在所述各代码行内设置中断;
监测所述被测试程序执行过程中是否有中断发生,如果是,则标记所述中断所在的代码行;
监测所述被测试程序是否执行完毕,如果否,则返回所述监测是否有中断发生的步骤;如果是,则:
累计已标记的代码行以获取被执行的代码总量,根据所述被执行的代码总量、所述总代码量获取所述被测试程序的代码覆盖率。
本发明实施例提供的一种测试装置,包括:
参数确定单元,用于确定被测试程序的总代码量、所述被测试程序的基础地址、各代码行的相对虚拟地址;
中断设置单元,用于根据所述基础地址、各代码行的相对虚拟地址,在所述各代码行内设置中断;
中断监测单元,用于监测所述被测试程序执行过程中是否有中断发生;
标记中断操作单元,用于当所述中断监测单元监测到当前有中断发生时,标记所述中断所在的代码行;
结束监测单元,用于监测所述被测试程序是否执行完毕;
计算单元,用于当所述结束监测单元监测到所述被测试程序执行完毕时,累计已标记的各代码行以获取被执行的代码总量,并根据所述被执行的代码总量、以及所述总代码量,获取所述被测试程序的代码覆盖率。
由上看见,应用本发明实施例的技术方案,通过在对被测试程序进行测试时,在各代码行内设置中断形成断点,使得测试执行到各代码行的断点处便产生中断,如果有中断发生,则无疑的该中断所在的代码行无疑被执行,反之,该代码行被执行则肯定会有中断发生。在每次中断发生时均标记所述中断所在的代码行,在测试完毕后,根据标记可以找到真实被执行过的各代码行,从而累计已标记的代码行的总代码获取被执行的代码总量,最后再根据被测试程序的总代码量得到真实的代码覆盖率。
另外的,在本发明实施例的技术方案中,通过在各代码行内设置断点从而根据断点的发生确定具体被执行的代码行,而中断的设置只需要修改被测试程序的执行流程,而不需要对源程序文件本身作修改,即不需要修改被测试程序的源代码,该技术方案的应用相对于现有技术的第二种技术方案更有利于保证被测试程序及测试目标的稳定性。
另外的,应用本发明实施例的技术方案,测试人员还可以根据中断的发生,实时直观的获知代码执行的详细情况。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山软件股份有限公司,未经珠海金山软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710032674.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:立体光刻造型用树脂组合物
- 下一篇:一种用于照明节电的无级可调式电抗器