发布于:2021-03-01 15:49:07
1
1170
0
导读
高德地图开放平台产品不断迭代,代码逻辑越来越复杂,现有的测试流程不能保证完全覆盖所有业务代码,测试不到的代码及分支,会存在一定的风险。为了保证测试全面覆盖,需要引入代码覆盖率做为测试指标,需要对SDK代码进行染色,测试结束后可生成代码覆盖率报告,作为发版前的一项重要卡点指标。本文小结了Android端代码染色原理及技术实践。
相关阅读:iOS代码染色原理及技术实践
JaCoCo工具
JaCoCo有以下优点:
支持Ant和Gradle打包方式,可以自由切换。
支持离线模式,更贴合SDK的使用场景。
JaCoCo文档比较全面,还在持续维护,有问题便于解决。
JaCoCo主要是通过ASM技术对Java字节码进行处理和插桩,ASM和Java字节码技术不是本文重点,感兴趣的朋友可以自行了解。下面重点介绍JaCoCo的插桩原理。
由于Java字节码是线性的指令序列,所以JaCoCo主要是利用ASM处理字节码,在需要的地方插入一些特殊代码。
我们通过Test1方法观察一下JaCoCo做的处理。
作者介绍