以下是《Google软件测试之道》第一章关于三种角色的职责分类 。
Google团队由SWE(软件开发工程师),SET(软件测试开发工程师),TE(测试工程师)组成。
Google的SWE(software engineer)是一个传统意义的开发角色,他们的工作是实现最终用户所使用的功能代码。SWE需要编写与测试代码,包括测试驱动的设计、单元测试、参与构建各种大小规模的测试等。
Google的SET(sofware engineer in test),也是一个开发角色。部分职责是在单元测试方面给予开发人员支持,另一部分职责是为开发人员提供测试框架,以方便他们编写中小型测试,用以进行更多质量相关的测试工作。SET是SWE在代库上的合作伙伴,与增加功能性代码或提高性能的代码的SWE相比,SET更加关注于质量的提升和测试覆盖率的增加。SET写代码的目的是通过这些代码的功能让SWE能够自己测试他们的功能。
Google的TE(test engineer),是一个与SET关系密切的角色,负责从用户的角度来思考质量方面各种问题。从开发角度来看,他们编写用户使用场景方面的自动化用例代码;从产品角度看,他们评估整体测试覆盖度,并验证其他工程师角色在测试方面合作的有效性。TE把用户放在第一位来思考,TE组织整体质量实践,分析解释测试运行结果 ,驱动测试执行,构建端到端的自动化测试。
SWE和SET在某种程度上来说已经做了足够多的模块测试与功能级别的测试,下一步要考虑的就是要验证这些可执行的代码与数据集成在一起之后,是否可以满足最终用户的需求。在这里,TE扮演着一个双重确认的角色 ,确认开发人员在测试方面的工作是到位。当明显的bug变少时,TE会把注意力转移到常见用户使用场景去,是否满足性能期望,在安全性、国际化和访问权限等方面是否满足用户的需求。与各方讨论基本设计带来的风险、功能逻辑复杂性和错误避免的方法。