在理想情况下,一个完美的开发过程是怎么样的呢?测试先行,在一行代码没有真正编写之前,一个开发人员就应该去思考如何测试他即将编写的代码。
1.SET的职责
SET的部分职责是在单元测试方面给予开发人员支持,另外一部分是未开发人员提供测试框架,以便他们编写中小型测试,用以更多质量相关的测试工作。SET是100%的编码角色,它使测试人员尽早介入到开发流程中,不是通过测试计划的方式,而是参与设计和代码开发的方式。SET积极参与各种测试,使测试富有效率,包括手动和探索式测试,而这些测试后期会有其他工程师负责。
在产品开发过程中,开发编写产品代码并测试代码。SET编写测试框架,为开发编写测试代码提供帮助。SET的第一要务是可测试性,扮演质量顾问的角色,提供程序结构和代码风格的建议给开发,同时提供测试框架方面的建议,使得开发人员能够在这些框架的基础上自己写测试。作为开发人员,基本要求是代码审查能力。
对于人的思维方式而言,测试人员与开发人员在编写代码的是迥然不同的,开发人员重点看护功能代码,思维模式是创建,重点在考虑用户的使用场景和业务流程等;而测试人员编写代码的思路是如何去破坏这些功能代码。
2.测试与开发的流程
Google认为测试工作由整个团队负责而不仅仅是测试相关人员。Google有“百分之二十的贡献”称为业余项目,允许工程师每周投入一天的时间在日常工作以外的项目,用来试验和创新。Google有丰富的内部代码分享库,这些代码不允许修改。
在Google的产品项目初期,工程师只会投入