目前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据说是没有测试的),开发人员要养成良好的自测习惯,随时记录代码中可能出现的问题,因为只有开发人员最清楚哪里可能出问题。应用的质量要靠整个团队的协作而不是互相依赖来保证。