之前研究了如果使用Uiautomator 2.0来自动化模拟人的手动测试,来检测程序的基本功能是否完整。然而,根据经验来检测功能,是人为设定哪些功能是我们需要关注的,认为设定的真的测试完整了吗?这个测试究竟对程序验证到了什么程度?这就需要代码覆盖率来完成。
首先,人为设定哪些需要检测是可行的,也是可信的。程序是程序员设计的,这个程序有什么目的,需要完成什么功能,程序员是知道的,所以我们可以针对这些功能进行一一检查,确保功能正常。
然而,幸运的是,android还提供了一种机制,可以在我们具备了自动化检测的基础上,对代码的覆盖率进行检测,其原理是统计代码的总方法的个数,然后在自动化检测过程中,使用到的方法的个数,使用个数/总个数,就是测试覆盖率。
而且测试覆盖率的方法很简单,完全可以在设计完自动化测试之后,随手测一次。
这个方案有一个假设,当功能正确的时候,其涉及到的方法就是我们希望其运行的方法。也就是,一个行为调用了一系列方法,只有这一系列方法都没有错误,这个行为才能成功完成。
我们相信这个假设的正确性,那么我们就可以选择以此为假设的官方组件,比如mockito或jacoco
我们在已有Uiautomator的测试基础上,可以比较简单的完