谷歌软件测试之道
“Google 的 SWE 就是功能开发人员,负责客户使用的功能模块开发。他们编写功能代码及这些功能的单元测试代码。 Google的SET就是测试开发人员,部分职责是在单元测试方面给予开发人员支持,另外一部分职责是为开发人员提供测试框架,以方便他们编写中小型测试,用以进行更多质量相关的测试工作。 Google的TE就是用户开发人员,负责从用户的角度来思考质量方面各种问题。从开发的角度来看,他们编写用户使用场景方面的自动化用例代码;从产品的角度看,他们评估整体测试覆盖度,并验证其他工程师角色在测试方面合作的有效性。这不是乌托邦,这就是Google实践之路上最好的尝试,前进的道路上充满了不可预料且无路可退。”
“SWE一般仅在自己的模块领域里提供最优方案,但如果从整个产品的角度来看,视野会显得略微狭窄。一个好的SET正好可以弥补这一点,不仅要具有更宽广的整体产品视野,而且在产品的整个生命周期里对产品及功能特性做充分理解,”
“SET 在团队中有一个巨大的优势,就是拥有产品方面最广阔的视野。一个好的SET会把非常专业的广阔视野转化成影响力,在开发人员所编写的代码上产生深远的影响力。通常来说,代码复用和模块交互方面的设计会由SET来做,而不是SWE。后面会着重介绍SET在项目的初期阶段是如何发挥作用的。”
“为了能够尽早地开始做集成测试,SET针对各个模块的依赖提供了mock或fake的实现。虽然功能模块代码还没有实现,集成测试的代码就已经可以开始编写了。在这个时候,如果集成测试代码可以运行起来,那将会更有价值。另外,在任何阶段,集成测试总是依赖 mock 和 fake。因为有了它们,一些依赖服务的期望错误场景和条件异常,会比较容易产生。”
“在产品开发过程中,SWE和SET紧密地工作在一起。SWE编写产品代码并测试这些代码。SET 编写测试框架,为 SWE 编写测试代码方面提供帮助。另外,SET 也做一些维护工作。质量责任由SWE和SET共同承担。”
|