徐文锦杨晓慧朱少民编译
英文原文由Google软件工程师FergusHenderson于年1月31日所写,文章末尾原文链接。
4测试(Testing)
单元测试是Google公司非常提倡和广泛采用的工程实践。产品线上所有的代码都要求进行单元测试,如果新添加的源文件没有进行相应的测试,代码审核工具将会将它们突显出来。代码评审者通常要求:任何增加了新功能的变更都应该添加新的测试来覆盖这项新功能。Mocking框架很受欢迎,在此框架下仍允许对于重量级库函数有依赖的代码进行轻量级单元测试的构建。
集成测试和回归测试也得到了广泛的应用。
正如上文“预提交检验”中提到的,测试自动被视作代码审核和提交流程中的一部分。
Google也有自动化工具来度量测试覆盖率,其结果作为可选层(anoptionallayer),与源代码浏览器(窗口)集成在一起。
在Google,部署之前的压力测试也是必备礼仪(derigueur),要求团队通过图表显示在各种输入请求(负载压力)下系统的关键指标,如延迟和错误率。
[译者注:欲全面了解Google的软件测试,请参考JamesWhittaker等《Google软件测试之道》]
[译者注:补充一张照片,显示测试通过的绿灯]
5缺陷跟踪(Bugtracking)
谷歌使用一个命名为Buganizer的缺陷(Bug)跟踪系统来跟踪问题:Bug、特性请求、客户问题和流程(如产品发布或缺陷清理流程)。Bug按层次化的组件/模块进行分类,每一组件会有一个默认的受让人(assignee,即将bug分配给这人)和邮件抄送列表。当发送变更的源代码供审核,系统会自动提示工程师,将变更与特定问题联系起来。