一
《Google 软件测试之道》是 2013 年出版的,书中记录的也都是截止当时的 Google 软件测试的现状,如果和国内目前的情况相比较的话,Google 不仅仅是走在了前列,而且是远远看不到边的前列。
我在上篇文章中有提到 Google 当时对于测试团队的定位,已经是上升到「工程生产力」部门的高度了,而对应的,随着团队职责的不断演化,团队成员的职责也进行了对应的转变。
Google 测试团队的职级汇报关系是:TE(Test Engineer,测试工程师) 和 SET(Software Engineer in Test,软件测试开发工程师) -> 测试工程经理 -> 测试总监 -> 高级总监 -> CEO。
今天我把书中提到的两个最主要的角色 SET 和 TE,分别提取了他们具体的工作职责,希望藉此可以作为我们努力的目标。
二
SET 的部分职责是在单元测试方面给予开发人员支持,另一部分职责是为开发人员提供测试框架,以方便他们编写中小型测试,用以进行更多质量相关的测试工作。
SET 是 100% 的编码角色,作为测试的开发工程师和功能的开发工程师处于同等的地位。
一个好的 SET 具有宽广的整体产品视野,而且在产品的整个生命周期里对产品及功能特性都有充分的理解。
一个好的 SET 在项目早期参与项目时,会协助项目形成良好的文档、不错的可测试性、运行稳定的自动化测试、清晰的代码提交流程。
通常来说,代码复用和模块交互方面的设计会由 SET 来做,而不是 SWE(Software Engineer)。
SET 在审阅设计文档时,预期要关注的要点有:完整性、正确性、一致性、设计、接口与协议、测试。
SET 是第一个实现所有接口和协议的人,SET 针对各个模块的依赖提供了 mock 或 fake 的实现。
SET 的第一要务是可测试性,SET 需要提供程序结构和代码风格方面的建议给开发人员,这样开发人员可以更好地做单元测试,同时提供测试框架方面的建议,让开发人员可以在这些框架基础上自己写测试。
SET的面试,重点在考察