[发明专利]代码覆盖率的统计方法、装置和系统有效
申请号: | 201811173609.3 | 申请日: | 2018-10-09 |
公开(公告)号: | CN111026630B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 孙泽夺 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 褚敏;宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 覆盖率 统计 方法 装置 系统 | ||
本发明公开了一种代码覆盖率的统计方法、装置和系统。其中,该方法包括:解析接收到的数据包文件;如果数据包文件满足预设插桩条件,对数据包文件中的可执行文件设置函数统计代码;运行数据包文件,依据函数统计代码对数据包文件执行代码覆盖率统计,得到统计文件;依据函数统计代码中的触发条件判断是否将统计文件上传。本发明解决了由于现有技术在对代码覆盖率进行统计的过程中无法实现对上线的应用程序进行多用户的采样的技术问题。
技术领域
本发明涉及互联网技术应用领域,具体而言,涉及一种代码覆盖率的统计方法、装置和系统。
背景技术
代码覆盖率是衡量一个产品的代码质量好坏的重要标准,特别是对于大型项目,是需要多个团队协同开发完成。此时,对于代码覆盖率的统计就显得十分重要,如果有一套好的代码覆盖率统计工具,至少能够协助开发人员了解到:第一,应用发布后有效代码执行的比例;第二,哪些函数是热点函数,哪些函数是基本上不被调用;第三,函数调用频次已经耗时统计;而上述信息对于开发人员优化自身应用,缩减体积都有很大的参考价值,特别是对于大型项目有比较迫切的业务需求。
但是传统的android应用使用的代码覆盖率统计方案是基于先在jar包中插入指令,然后使用google提供的dx编译工具,将jar包编译成dex文件,从而达到实现代码覆盖率统计的目的。该方案却存在如下问题:第一,通过对jar包处理转为dex,过程繁琐,同时存在编译错误的风险;第二,jar插桩处理完成再转dex,导致体积过大;第三,jar包修改的模式由于没有依赖dex本身的常量池,在统计记录的时候会导致性能变慢。由于有以上的缺点,所以对于大型的应用,只能在测试阶段来使用,无法适用于应用程序上线进行多用户的采样。
针对上述由于现有技术在对代码覆盖率进行统计的过程中无法实现对上线的应用程序进行多用户的采样的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种代码覆盖率的统计方法、装置和系统,以至少解决由于现有技术在对代码覆盖率进行统计的过程中无法实现对上线的应用程序进行多用户的采样的技术问题。
根据本发明实施例的一个方面,提供了一种代码覆盖率的统计方法,包括:解析接收到的数据包文件;如果数据包文件满足预设插桩条件,对数据包文件中的可执行文件设置函数统计代码;运行数据包文件,依据函数统计代码对数据包文件执行代码覆盖率统计,得到统计文件;依据函数统计代码中的触发条件判断是否将统计文件上传。
可选的,预设插桩条件包括:判断数据包文件是否损坏;或,判断数据包文件是否合法。
可选的,在函数统计代码包括触发拦截统计代码、统计代码和插桩统计指令的情况下,对数据包文件中的可执行文件设置函数统计代码包括:在可执行文件中设置触发拦截统计代码,其中,触发拦截统计代码,用于拦截应用系统前后台页面切换逻辑的代码;依据触发拦截统计代码在可执行文件中设置统计代码和插桩统计指令,其中,统计代码,用于调用统计函数;以及;插桩统计指令,用于记录每个统计函数的调用次数;对设置后的可执行文件中的方法引用数进行修改,得到修改方法引用数的可执行文件;在修改方法引用数的可执行文件中添加初始统计文件,其中,初始统计文件用于记录数据包文件运行时各个函数调用的次数,并存储统计结果。
进一步地,可选的,在可执行文件中设置触发拦截统计代码之后,该方法还包括:设置统计时长,其中,统计时长,用于在单位时间区间内记录可执行文件中的函数调用次数。
可选的,依据触发拦截统计代码在可执行文件中设置统计代码和插桩统计指令包括:根据可执行文件中的方法引用数对应的函数,设置插桩统计指令;将设置有插桩统计指令的可执行文件中设置统计代码。
可选的,对设置后的可执行文件中的方法引用数进行修改,得到修改方法引用数的可执行文件包括:统计设置后可执行文件中的方法引用数;将统计后的方法引用数配置于插桩统计指令,得到修改方法引用数的可执行文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811173609.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:片材的粘接方法
- 下一篇:一种基于路面特征的车辆定位方法及在视觉定位中应用