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