[发明专利]软件的测试方法和装置有效
申请号: | 201510516314.1 | 申请日: | 2015-08-20 |
公开(公告)号: | CN107038108B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 朱德飞 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 韩建伟;张永明 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 测试 方法 装置 | ||
1.一种无源码软件的测试方法,其特征在于,所述方法包括:
从所述无源码软件的程序数据库文件中获取所述无源码软件的函数信息列表,所述函数信息列表包括:所述无源码软件中的待测函数的函数地址;
根据每个所述待测函数的函数地址对每个所述待测函数设置处理函数,所述处理函数用于在测试过程中对每个所述待测函数被运行的次数进行统计,所述根据每个所述待测函数的函数地址对每个所述待测函数设置处理函数包括:将所述待测函数在所述函数地址上的原始指令替换成跳转指令,其中,所述跳转指令用于跳转到所述处理函数的函数地址;将所述原始指令放置在所述处理函数执行完之后的地址上,在放置在所述处理函数执行完之后的地址上的所述原始指令后,设置回跳指令,其中,所述回跳指令用于跳转到所述待测函数在所述函数地址上的原始指令之后的后续指令;
在对所述无源码软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数;
根据所述次数和所述无源码软件中所述待测函数的总数获取所述无源码软件的函数覆盖率,所述函数覆盖率用于指示所述无源码软件中被运行的待测函数的数量与所述待测函数的总数的比值;
其中,当所述无源码软件的函数覆盖率低于预定阈值时,调整测试用例重新对所述无源码软件进行测试。
2.根据权利要求1所述的方法,其特征在于,所述在对所述无源码软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数包括:
根据所述跳转指令从所述待测函数的所述函数地址跳转到所述处理函数的函数地址;
将所述待测函数使用到的寄存器入栈,以便对所述待测函数进行现场保护;
将所述处理函数的输入参数入栈,所述处理函数的输入参数用于指示当前测试的为所述待测函数;
调用所述处理函数获取所述待测函数被运行的次数;
将所述待测函数使用到的所述寄存器出栈,以便对所述待测函数进行现场恢复;
运行所述原始指令;
跳转到所述待测函数中位于所述原始指令之后的后续指令,以执行所述后续指令。
3.根据权利要求1所述的方法,其特征在于,根据所述次数和所述无源码软件中所述待测函数的总数获取所述无源码软件的函数覆盖率包括:
获取被运行的次数大于0的所述待测函数的个数N;
通过以下公式获取所述无源码软件的函数覆盖率P:P=N/Sum,其中,Sum表示所述无源码软件中所述待测函数的总数。
4.根据权利要求1所述的方法,其特征在于,在对所述无源码软件进行的所述测试过程中通过所述处理函数获取每个所述待测函数被运行的次数之后,还包括:
输出次数大于预定阈值的所述待测函数的函数名和对应的被运行的次数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510516314.1/1.html,转载请声明来源钻瓜专利网。