随着互联网行业的发展,用户对软件的品质要求也越来越高,且软件的更新迭代速度也越来越快,这里有些项目就得提到白盒测试了。
本文就过去3年我们在白盒测试上积攒的一些经验给大家坐下简单的分享,主要从以下6个方面展开:
什么是白盒测试
为什么要做白盒测试
哪些项目适合白盒测试
什么时候做白盒测试
谁来做白盒测试
如何建立白盒测试体系
1.什么是白盒测试
简介
白盒测试即在了解到代码的基础上进行测试,包括但不限于单元测试、接口测试、代码静态检查等等。
传统的白盒测试
主要指全面了解程序内部逻辑结构、对所有逻辑路径进行测试,方法上主要单元测试。但这一做法成本极高,需要超过1:1的测试开发比。
我们的白盒测试
核心思想就是:
从代码技术导向变为用户需求导向,即在了解代码实现逻辑的基础上,从用户需求的角度充分设计测试用例。
当然一些基础底层函数,比如字符串查找等还是只能从代码出发去做传统的白盒测试覆盖,不过这部分比例我们尽可能降低。
2.为什么要做白盒测试
提升工程效率
虽然白盒测试前期的成本很高,但是在完成基础建设后效率提升是非常显著的,我们团队从2016年底开始白盒测试以来,平均每个版本的测试人力成本下降了71.44%。
加强质量覆盖
对于一些逻辑复杂的模块,单纯的黑盒测试很难覆盖到各种场景。我们团队从2016年底开始白盒测试以来,平均每个版本的线上事故下降了97%。
3.哪些项目适合白盒测试
逻辑复杂且UI少
首先如果逻辑很简单,单测也就没有太大的必要了;其次如果很多UI强相关,比如各种Android App的UI展示模块,这块涉及到更多的是UI展现、兼容性测试等等,单测无法很好的覆盖。
长期维护
这个就不用多说了,刚刚也提到了单测的前期投入成本巨大,且收益很少,我们项目的单测也是开展一年多后才出现效率的明显提升。不是长期维护的项目很难收回成本。
4.什么时候做白盒测试
尽早开展
众所周知软件开发模型中,问题发现的越晚成本越高。所以这里也是建议尽早开展,我们目前的项目流程中,要求在开发提测前就完成70%的单元、接口测试用例,以保证功能主路径没问题。
5.谁来做白盒测试
研发主导
这里最理想的模式是由研发同学来完成,Google等走在业界前沿的公司已经做到了这点。
目前我们是要求开发同学负责70%的主路径测试,且项目进度紧张时,测试同学会协助完成。可惜从规范这个流程开始,还没有遇到过项目进度不紧张的时候。