Android 单元测试(一)

95 阅读2分钟

关于测试的一些基础知识

测试对于研发来说是很常见的,我们开发完一个功能后,需要自己测试完成后,才能发布给专门的测试人员进行测试,那么我们自己一般会怎么测试呢?作为一个有着多年Android开发经验的人来说,我感到很惭愧,虽然很早就知道单元测试,但是一直没有运用到项目中。实际开发过程,依然使用原始的手工测试来验证自己所做的功能。为了能够在研发的路上走的再远点,我决定对单元测试,进行一次全面的学习,并逐步运用到项目中。

言归正传,那么测试有哪些分类呢?

按测试的目标或者内容来区分,主要有以下三项:

  1. 功能测试
  2. 非功能性的,比如性能,安全性,以及兼容性
  3. 无障碍测试

按测试的范围,颗粒度来区分,主要有以下三项:

  1. 单元测试,比如:一个方法,一个类
  2. 端到端测试
  3. 中型测试,比如多个模块的测试

从Android的角度来说,有以下两种:

  1. 插桩测试
  2. 本地测试

插桩测试的英文翻译是:Instrumented Test,我比较好奇的是,它为什么叫插桩测试,它主要是干什么的?首先对于这个插桩测试,简单来说,就是运行在Android设备或者模拟器上进行测试的一种方式,它可以访问到Android系统相关的框架,比如系统API,UI组件,数据库等。之所以叫插桩测试,是因为在进行插桩测试时,Android提供的Instrumention 机制会将我们的测试代码插入到app的运行流程中,这样就可以监控和控制app的行为,比如断言某个UI元素是否存在。当然这个具体的实现原理是比较复杂的,需要做进一步的研究。

那本地测试,理解起来就容易一些了,就是我们自己的开发工具就可以做,就不依赖于设备这些了,它相对来说要小一些,比如对一些方法函数的测试

当然从不同的维度来说,还有很多其他分类,比如按执行方式,有自动化测试和手动测试两种。虽然这些概念很基础,但是我觉得是很重要的,可以帮助我们更好的理解和运用这些测试方法。