[发明专利]应用检测方法及应用检测装置有效
申请号: | 201710082072.9 | 申请日: | 2017-02-15 |
公开(公告)号: | CN106844219B | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 蒋艳军;潘金赤;许丽娜;钟炜达;蓝贤赟;杨潼 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 黄威 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 检测 方法 装置 | ||
本发明提供一种应用测试方法,其包括:遍历测试应用的测试项目代码,获取测试项目代码中的每个子项目代码;将插桩函数文件拷贝到子项目代码的预设位置;通过插桩函数文件,遍历子项目代码中的所有函数文件;对函数文件进行语法分析,获取子项目代码中的每个函数文件的函数入口;在函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过插桩信息对测试应用的测试覆盖率进行反馈。本发明还提供一种应用测试装置,本发明通过在测试项目代码中设置插桩函数文件,实现了插桩函数的设置,从而有效的降低了插桩操作的工作量,且占用的存储空间以及网络资源均较小。
技术领域
本发明涉及应用检测领域,特别是涉及一种应用检测方法及应用检测装置。
背景技术
众测作为一种新兴的测试方法,可利用庞大的外网用户和丰富的机型,以弥补自动化测试的一些不足之处。但是由于参加众测任务的用户技能和提交反馈的质量相差较大,因此需要对用户提交反馈的有效性进行评价。
现有的应用测试方法会以应用测试时的代码测试覆盖率作为用户提交反馈的有效性的评价标准。当用户执行应用测试任务期间的代码测试覆盖率达到或超过预先设定的阈值,则判定用户提交的反馈有效。
计算用户执行应用测试期间的代码测试覆盖率需要对测试项目代码进行插桩操作,以此来判断哪些测试项目代码被执行到,哪些测试项目代码未被执行到。这里的插桩操作是指在保证原有测试项目代码的逻辑完整性的基础上在测试项目代码上插入一些进行信息采集的代码段,如信息采集语句等。
现有的代码插桩技术均需要手动对测试项目代码进行一定量的修改,以便生成插桩结果信息,因此插桩操作的工作量较大。且现有的代码插桩方案均是对所有的测试项目代码进行全量插桩,即只要应用程序在运行过程中,该应用程序就会不断输出插桩信息,从而导致插桩信息占用的存储空间较大且插桩信息的上报需要占用较多的网络资源。
发明内容
本发明实施例提供一种插桩操作的工作量、占用的存储空间以及网络资源均较小的应用检测方法及应用检测装置;以解决现有的应用检测方法及应用检测装置中的插桩操作的工作量较大、占用的存储空间较大以及占用的网络资源较大的技术问题。
本发明实施例提供一种应用测试方法,其包括:
遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码;
将插桩函数文件拷贝到所述子项目代码的预设位置;
通过所述插桩函数文件,遍历所述子项目代码中的所有函数文件;
对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口;以及
在所述函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过所述插桩信息对所述测试应用的测试覆盖率进行反馈。
本发明实施例还提供一种应用测试装置,其包括:
子项目代码获取模块,用于遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码;
插桩函数文件拷贝模块,用于将插桩函数文件拷贝到所述子项目代码的预设位置;
函数文件遍历模块,用于通过所述插桩函数文件,遍历所述子项目代码中的所有函数文件;
函数入口获取模块,用于对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口;以及
插桩函数设置模块,用于在所述函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过所述插桩信息对所述测试应用的测试覆盖率进行反馈。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710082072.9/2.html,转载请声明来源钻瓜专利网。