[发明专利]一种获取代码覆盖率的方法及装置在审
申请号: | 201210308060.0 | 申请日: | 2012-08-27 |
公开(公告)号: | CN103631707A | 公开(公告)日: | 2014-03-12 |
发明(设计)人: | 丁如敏;皮凯 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 代码 覆盖率 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种获取代码覆盖率的方法及装置。
背景技术
代码覆盖率反映测试用例对被测软件覆盖程度的重要指标,是用来度量测试完整性的一个参考值,其值等于测试运行到的代码除以总的代码。通过代码覆盖率数据,可以评估测试是否充分。
目前,在被测试的应用程序(Application,APP)的工程基础上建立测试工程,其中在测试工程的基础上添加EMMA或者类似的代码覆盖率统计工具,然后在测试工程中编写大量自动化测试用例。当按照测试计划运行编写的大量测试用例后,就可以获得当前代码覆盖率。
发明人发现现有技术中至少存在如下问题:由于现有安卓android平台的功能主要由手动测试保证,无法获取手动测试代码覆盖率;另外,由于获取代码覆盖率时需要写大量的自动化测试用例,耗费大量的人力物力。
发明内容
本发明的实施例提供一种获取代码覆盖率的方法及装置,可以获取手动测试的代码覆盖率,并且避免耗费大量的人力物力。
一方面,本发明的实施例提供一种获取代码覆盖率的方法,包括:
获取在被测试的应用程序APP的第一代码中添加获取代码覆盖率的代码后的第二代码,并将编译所述第二代码过程中记录的所述第一代码的信息生成第一文件;
接收到测试指令后运行测试用例,并将运行所述测试用例过程中记录的所述第一代码的代码执行信息生成第二文件;
根据所述第一文件和所述第二文件,以及获取代码覆盖率的代码文件,获取所述第一代码的代码覆盖率。
在本发明的另一实施例中,在所述获取所述第一代码的代码覆盖率之后,还包括:获取通过分析未被覆盖到的第一代码后编写的新测试用例;接收到测试指令后运行所述新测试用例,并根据获取所述第一代码的代码覆盖率的方法,获取所述第一代码的累积的代码覆盖率。
在本发明的另一实施例中,所述获取所述第一代码的代码覆盖率包括:接收执行第一目录中文件的命令;根据置于所述第一目录中的所述第一文件和所述第二文件,以及获取代码覆盖率的代码文件,执行所述命令,获取所述第一代码的代码覆盖率。
在本发明的另一实施例中,所述获取在被测试的应用程序APP的第一代码中添加获取代码覆盖率的代码后的第二代码包括:
接收在被测试的APP的第一代码中注销或者退出时调用到的函数中添加的获取代码覆盖率的代码,获取由所述第一代码和所述获取代码覆盖率的代码构成的第二代码;或者,
接收在被测试的APP的第一代码中由于点击获取代码覆盖率的按钮或者菜单触发的函数中添加的获取代码覆盖率的代码,获取由所述第一代码和所述获取代码覆盖率的代码构成的第二代码。
在本发明的另一实施例中,所述第一代码的信息包括代码的版本信息、包、类方法和代码所在行的信息。
在本发明的另一实施例中,所述接收到测试指令后运行测试用例,并将运行所述测试用例过程中记录的所述第一代码的代码执行信息生成第二文件包括:
接收到测试指令后运行测试用例,并记录运行所述测试用例过程中执行过的所述第一代码的代码执行信息,保存在内存中;
当APP注销或者退出时,调用所述获取代码覆盖率的代码,并将保存在内存中的所述代码执行信息保存在第二文件中,删除所述内存中的所述代码执行信息。
另一方面,本发明实施例提供一种获取代码覆盖率的装置,包括:
代码获取单元,用于获取在被测试的应用程序APP的第一代码中添加获取代码覆盖率的代码后的第二代码;
生成文件单元,用于将编译所述第二代码过程中记录的所述第一代码的信息生成第一文件;
执行单元,用于接收到测试指令后运行测试用例;
所述生成文件单元还用于,将运行所述测试用例过程中记录的所述第一代码的代码执行信息生成第二文件;
代码覆盖率获取单元,用于根据所述第一文件和所述第二文件,以及获取代码覆盖率的代码文件,获取所述第一代码的代码覆盖率。
在本发明的另一实施例中,所述装置还包括:
测试用例获取单元,用于获取通过分析未被覆盖到的第一代码后编写的新测试用例;
所述执行单元,用于接收到测试指令后运行所述新测试用例,并由所述生成文件单元和所述代码覆盖率获取单元操作,获取所述第一代码的累积的代码覆盖率。
在本发明的另一实施例中,所述代码覆盖率获取单元包括:
接收命令模块,用于接收执行第一目录中文件的命令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210308060.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据存储方法和系统
- 下一篇:虚拟键盘提供方法和装置