《Google的软件测试之道》(2)
第2章软件测试开发工程师
编写功能代码和编写测试代码在思维方式上有很大的不同。对于功能代码而言,思维模式是创建,重点考虑用户、使用场景和数据流程上;对于测试代码,主要思路是去破坏,写代码用以分离用户及其数据。
2.1 SET的工作
SET会参与到许多测试目标的构建中,并指出哪些地方需要小型测试。同时编写许多mock和fake工具,甚至编写中大型集成测试。
SET究竟是谁:测试是应用产品的另外一种功能,而SET就是这个功能的负责人。
面试SET的时候,在代码要求标准上与SWE的招聘要求是一样的,而且增加了——SET需要了解如何去测试他们编写的代码。
在项目概念阶段,测试人员不会参与进来,而项目一旦真正立项,需要测试人员参与。
SET如何审阅设计文档:
1)完整性
2)正确性
3)一致性
4)设计
5)接口与协议:是否对所使用的协议有清晰的定义
6)测试:可测试性如何
自动化计划:
常见的错误:试图在一个测试套件中自动化所有端到端的测试用例,在端到端的自动化测试上投入过度,常常会与产品的特定功能设计绑定在一起,这部分测试在整个产品稳定之前都不会特别有用。
端到端测试,英文是End to EndTesting。类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。
Google的方法:
首先,将容易出错的接口做隔离,针对它们创建mock和fake。
其次,构建一个轻量级的自动化框架,控制mock系统的创建和执行。
测试大小的定义:
小型测试:验证一个代码单元的功能。不需要外部依赖,外部服务需通过模拟或虚假实现(mock&fake)。(通常为“单元测试”)
中型测试:验证两个或多个模块应用之间的交互。鼓励使用模拟技术(mock)来解决外部服务的依赖问题。(通常称为“集成测试”)
大型测试:验证整个系统作为一个整体是如何工作的。依赖外部系统资源。(通常为“系统测试”或“端到端测试”)
Google的特殊规定:
20%的时间是Google的一种制度,每周可以拿出一天时间,或者一周工作时间的20%来做自己选择的项目。可以参加不同的项目,提升技能,激发和保持了工作热情。通常,Google不使用商业性工具,高度重视工具的文化,鼓励员工自己开发工具。
2.2 测试认证
从低到高分为1-5级。目的是提高开发人员进行测试的积极性。
P55,测试认证的分级
(使用访谈的方式介绍测试认证在Google中的发展过程)
初期开展比较难,寻找如下的开发团队:①对测试足够感兴趣;②没有太多冗余的代码;③在团队中有一个测试战神。
2.3 SET的招聘
一个优秀的SET候选人不应该被告知要去测试代码,这应该是SET自然要考虑的地方。
2.4 与工具开发工程师Ted Mao的访谈
创建Buganizer和Matrix产品,创建心得,对于开发测试工具的建议。
2.5 与Web Driver的创建者Simon Stewart的对话
介绍Selenium和WebDriver的由来和区别,以及以后的发展。