Google并没有实行,单元测试,接口测试,集成测试,系统测试,确认测试,验收测试等命名,而是使用小型测试,中型测试,大型测试这样的称谓。
小型测试覆盖较少量的代码,其他测试类型依次类推,google的三类工程师都会去执行其中的任何一种测试,规模越小自动化程度越高。
1. 小型测试-类似单元测试
- 小型测试一般来说都是自动化测试(但也并非一定是所有)
- 用于验证一个单独函数或者独立模块的功能是否按预期执行。
- 着重于,功能性问题,数据损坏,程序设计问题等方面的验证。
- 一般小型测试有SWE来实现,也有少量的SET参与,TE几乎不参与。
- 小型测试一般需要使用mock、fake
- TE虽然几乎不参与小型测试代码的编写,但是会参与运行这些测试,来诊断一些特定的错误。
2. 中型测试-类似接口测试
- 中型测试通常也是自动化测试
- 该测试一般会设计多个模块之间的交互
- 测试重点是验证“功能近邻区”之间的交互,以及彼此调用时候的功能是否正确
- SET驱动中型测试的实现和运行
- SWE也会深度参与,一起编码,调试,维护
- 运行失败,SWE会自觉的查看错误,分析原因
- TE会参与执行这些用例,或者手工验证不能自动化的部分
3. 大型测试-端到端的功能验证测试
- 涵盖三个或者三个以上的功能模块
- 使用真实的用户场景和实际用户数据
- 需要时间长
- 关注所有模块的集成,倾向于结果驱动
- 验证是否满足用户需求
- 三种角色都会参与到大型测试之中
- 通过探索式测试或者自动化测试完成
对于这三种测试类型,采取的自动化测试比例,所有能能够自动化,并不需要人的睿智和直觉去判断的,那就应该以自动化方式实现。其实谷歌也有大量的手工测试,但是努力将自动化已经做到,力争克服“人类智慧的最后一英寸”。