[发明专利]获取代码覆盖信息的方法及装置有效
申请号: | 201410447155.X | 申请日: | 2014-09-03 |
公开(公告)号: | CN104199773B | 公开(公告)日: | 2017-08-25 |
发明(设计)人: | 丁如敏;沈东雄 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司44202 | 代理人: | 郝传鑫 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 代码 覆盖 信息 方法 装置 | ||
技术领域
本发明涉及软件测试技术领域,特别是涉及一种获取代码覆盖信息的方法及装置。
背景技术
在现有的软件测试技术中,通常需要统计测试过程中的代码覆盖信息,其描述的是测试过程中被执行的待测软件的源代码数量、位置以及占整体源代码的比例等参数。
现有的获取代码覆盖信息方法通常运行多个单元测试样例代码,然后在软件测试结束后统计待测软件在内存中的读写地址,从而统计待测软件中被执行的代码数量和位置,生成包含代码覆盖信息的报表。
然而,由于待测软件并非正式发布的软件产品,自身本就可能存在较多bug,因此,在遇到执行单元测试样例代码出现错误导致待测软件崩溃(crash)中止执行时,则无法生成代码覆盖报告,需要测试人员在代码修改后重复执行测试流程,才能生成完整的代码覆盖报告,导致测试的效率较低。
发明内容
基于此,有必要提供一种能够提高测试效率的获取代码覆盖信息的方法。
一种获取代码覆盖信息的方法,包括:
加载待测源代码或二进制文件对其添加插桩标记;
接收代码覆盖信息生成指令;
统计与所述代码覆盖信息生成指令对应的插桩标记,提取相应的代码覆盖信息;
将提取的代码覆盖信息整合写入相应的代码覆盖报表。
此外,还有必要提供一种能够提高测试效率的获取代码覆盖信息的装置。
一种获取代码覆盖信息的装置,包括:
代码插桩模块,用于加载待测源代码或二进制文件对其添加插桩标记;
指令接收模块,用于接收代码覆盖信息生成指令;
插桩统计模块,用于统计与所述代码覆盖信息生成指令对应的插桩标记,提取相应的代码覆盖信息;
报告生成模块,用于将提取的代码覆盖信息整合写入相应的代码覆盖报表。
上述获取代码覆盖信息的方法及装置中,只要在测试过程中接收到任意方式触发的代码覆盖信息生成指令(用户输入、定时触发、结束触发等方式)即获取已测试过程涉及的代码覆盖信息,并以整合的方式写入代码覆盖报表存储。使得在待测程序出现崩溃时,能够避免部分重复的测试过程,从而提高测试效率。
附图说明
图1为一个实施例中获取代码覆盖信息的方法的流程图;
图2为一个接收输入设备输入的代码覆盖信息生成指令的应用场景中获取代码覆盖信息的过程示意图;
图3为一个通过定时器生成代码覆盖信息生成指令的应用场景中获取代码覆盖信息的过程示意图;
图4为一个通过检测测试流程结束来生成代码覆盖信息生成指令的应用场景中获取代码覆盖信息的过程示意图;
图5为一个实施例中获取代码覆盖信息的装置的结构示意图;
图6为另一个实施例中获取代码覆盖信息的装置的结构示意图。
具体实施方式
代码覆盖(code coverage)信息是软件测试中的一种度量,描述程序中源代码被测试的比例、位置和程度,所得比例也称为代码覆盖率。例如,若某段代码在测试过程中的代码覆盖率为80%,则表示该测试过程中该段代码的80%被调用执行了,即对80%的程序语句完成了测试,但还有20%的代码由于测试时输入的测试样本不够全面,导致某些条件分支下的程序语句没有被执行,或者某些函数没有被调用。现有技术中的包含代码覆盖信息的报表中还可包含具体的程序语句执行情况,在文件中将执行过的程序语句均显示出来,方便测试人员查看。
而在现有的软件测试中,测试人员先编写多个单元测试样例代码文件,通常先在源代码中添加插桩标记。插桩标记即为一段用于统计的代码,例如,当代码被调用时,向内存中特定的区域写入被调用的函数的内存地址等信息(即缓存该信息)。开始测试后,添加了插桩标记的源代码即被加载到内存中编译执行或解释执行,然后测试人员执行多个预先定义的单元测试样例代码,在执行完所有单元测试样例代码后,统计前述内存中特定的区域中写入的内存地址,生成相应的代码覆盖信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410447155.X/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置