Google软件测试之道

《Google软件测试之道》笔记

在Google,软件测试团队归属于一个被称为“工程生产力”的中心组织部门,这个部门的职责横跨开发测试人员使用工具的研发、产品发布和各种级别的测试,从单元级别的测试到探索性级别的测试。

Google是一家以创新和速度为基础的公司,快速地发布有用的代码(如果失败,也只有少数早期用户会失望)、迭代地增加早期用户希望使用的功能(最大化用户反馈)。

在整个公司,我们只有非常少的专职测试人员。

Google的测试团队并非雄兵百万,我们更像是小而精的特种部队。

测试人员的稀缺会导致测试资源变得非常昂贵,因此,我们的原则就是让这些稀缺且聪明的测试员工保持昂扬的斗志和充沛的精力。

在Google,写代码的开发人员也承担了质量的重任。质量从来就不仅仅是一些测试人员的问题。在Google,每个写代码的开发者本身就是测试者。

如果你是一名工程师,那么你同时也是一名测试人员。如果在你的职位头衔上有测试的字样,你的任务就是怎样使那些头衔上没有测试的人可以更好地去做测试。

质量不是被测试出来的。如果在最开始设计创建的时候就是错的,那它永远不会变成正确的。从最初的创建阶段就要做正确,否则将会陷入混乱的万丈深渊。

虽然质量不是被测出来的,但同样有证据可以表明,未经测试也不可能开发出有质量的软件。

停止开发与测试的隔离对立。开发和测试应该并肩齐驱。你需要在写完每一段代码后立刻测试这段代码。

测试不是独立隔离的活动,它本身就是开发过程的一部分。

还有谁能比实际写代码的人更适合做测试呢?还有谁能比实际写代码的人更适合去寻找bug呢?如果某个产品出了问题,第一个跳出来的肯定是导致这个问题发生的开发人员,而不是遗漏这个bug的测试人员。

开发人员自己要对自己写的代码负责,比专职的测试人员更适合做测试工作。

测试人员的存在是为了让开发人员的工作更有效率,并且很大一部分体现在避免因马虎粗心而导致的返工。