进阶

  构建步骤被充分优化

  构建过程可以对报告做分析,并记录关键指标的趋势,并进行改进。

  充分利用多台机器做单个构建任务。

  在全新的开发环境中签出项目,通过一个脚本即可构建完整的开发和测试环境并成功产出部署包。

  疯狂

  运行时间超过限制即失败。

  通过下面问题进一步了解团队的构建现状:

  如何管理编译依赖?

  如何管理模块版本依赖?

  编译的时间是多长?

  每个人的构建环境和方法是否一致?

  自动化构建的具体步骤?

  自动化构建失败的主要原因是什么?

  是否使用了Build Grid?如何用的?

  如何管理Grid中的各台机器?如何同步和更新环境?

  本地构建的内容?什么时候运行?要多长时间?

  使用那个CI平台?如何配置的?

  如何调整构建中包含的内容?

  4 测试维度

  在其它纬度中也有一些与测试相关的条目,可参考。

  入门:

  有部分自动化功能测试

  在项目后期集中测试

  利用缺陷跟踪系统管理缺陷

  仅有少量的单元测试,尚未发挥明显作用。

  新手:

  小工作单元包含手工测试。

  积累一定量的单元测试,团队已从中受益。

  构建时运行自动回归测试。

   有人工参与的提测过程。

  自动化功能测试具备一定数量并起到了一定保障作用。

  自动化功能测试全集频繁运行,不少于一次。

  中等:

  小工作单元包含自动化测试工作。

  不同层级的自动化测试发挥质量保障作用。

  静态代码检查及相关举措

  可以在构建中推荐提测版本

  自动化提测

  进阶:

  普遍的单元测试,发挥良好效果。

  自动化测试覆盖率较高,测试工作被有效分散在开发阶段。

  手工测试大部分属于探索性测试。

  疯狂:

  单元测试覆盖率。

  自动化测试提供信心十足的质量保证,构建成功后即自动部署。

  通过下面问题进一步了解团队的构建现状:

  有那些级别的测试,现状如何?

  提测流程是怎么样的?需要多长时间?有多少人工参与?

  集中的测试阶段占整个项目周期的比例?

  QA和RD的合作流程是怎么样的?

  有那些自动化测试,数量和质量分别如何?

  自动化测试一般是什么时候写的,谁维护,怎么管理和运行的?

  什么时间,如何做回归测试?

  自动化验收测试、性能测试以及安全性测试现状?

  应用了那些静态代码检查,怎么用的?

  单元测试的覆盖率如何?

  什么时机,做那些人工测试?

  如何选择对哪个构建做测试?

  5 部署及发布维度

  入门:

  有辅助脚本支持的手工部署

  依据文档的人工上线流程

  新手:

  完整的部署脚本支持

  向测试环境的标准化部署

  通过平台的半自动上线流程

  中等:

  选择指定的构建产出进行自动部署

  可以推荐某个构建为上线候选版本

  进阶:

  向生产环境中一键发布,一键回滚。

  向生产线部署后的自动化验证。