目前Android测试还是以黑盒测试为主的,白盒测试固然是好,但白盒测试的实现成本对于App的快速迭代和敏捷开发来说难度过高。
  造成Android白盒测试的困难有:
  Android系统本身的测试支持不够
  对测试人员的专业技术要求过高(而且我们团队测试同时支持iOS)
  需求开发和更改时,也会依赖测试排期
  那移动开发团队如何保证应用的质量呢?
  拿我工作过的腾讯和阿里的两个Android团队举例,产品用户量级都在百万级别以上,机器crash率在0.5%左右,算是国内的主流应用团队了。我们的团队里面依靠以下几个关键点来保证应用的质量:
  1.完整的需求评审流程
  需求评审
  方案评审
  设计评审
  测试用例评审
  2.完善的bug反馈系统
  3.crash日志收集上传
  4.oa系统:bug和需求流转(阿里的宙斯盾,腾讯的tapd)
  5.多样性的测试方式
  Monkey(阿里,腾讯都有)
  冒烟测试
  系统测试(黑盒,白盒)
  6.规范的发布流程
  产品体验
  内部体验
  分级灰度
  全量发布
  热修复发布
  前面提到的这么多策略,只有系统测试的时候可能用到白盒测试,所以白盒测试并不是Android质量保证的全部,知识其中一个部分。对于较大的团队白盒测试的重要性还是很高,因为良好的Android Unit测试用例可以解放部分测试人力,规范测试流程。同时也是测试人员技术含量的提现。
  其实,Android Unit测试对于更偏重于开发人员,很多的Android Unit测试都需要开发人员的参与,如果你要做Android白盒测试如下的建议可以酌情参考:
  1.使用良好的程序框架设计(MVP,MVVC)
  2.关键协议数据的JUnit测试用例(在阿里的时候是开发人员自己写)
  3.关键流程的单元测试(登录、支付、首页等)
  后,应用的质量不能依赖于测试人员(facebook据说是没有测试的),开发人员要养成良好的自测习惯,随时记录代码中可能出现的问题,因为只有开发人员清楚哪里可能出问题。应用的质量要靠整个团队的协作而不是互相依赖来保证。