April 2, 2023
By: Kevin

项目检查清单

  1. 版本管理
  2. 系统文档以及项目搭建
  3. 系统的需求, 设计, 测试用例, bug修改有记录
  4. 自动代码检查
  5. 自动化测试
  6. 项目部署
  7. 项目时候有版本发布的管理流程

版本管理

  • 参与者在版本管理工具中有独立一致的名字
  • 参与者每次提交有明确的提交信息, 提交格式应该是[分类] 提交正文, 其中提交正文可以换行, 有详细描述, 可能的分类有:
    • [doc]: document, 文档, 提交正文为文档内容.
    • [cmt]: comment 代码注释, 提交正文为注释内容.
    • [feat]: feature, 新功能, 提交正文为为功能描述
    • [bug]: bug fix, 问题修复, 提交正文为bug的id,和修复内容, 对应的单元测试是否更新
    • [ref]: refactor 代码重构, 提交正文为重构的内容.
    • [ut]: unit test, 单元测试代码正文, 提交消息为单元测试描述.
    • [imp]: improvement, 小改进, 提交正文为改进内容.
    • [wip]: work in progress, 一个大的任务, 可以分成若干进行中的提交, 提交正文为wip的描述.
  • 参与者会使用检索提交记录, 以及每次提交的代码变动.
  • 参与者不提交无用文件, 项目中有配置合理的.gitignore文件, 个人不提交log, 第三方库, 个人配置, 编译临时/最终产物等.
  • 项目参与者掌握评审工作流.
  • 项目参与者掌握rebase工作流程.
  • 项目参与者掌握cherry pick工作流程.

系统文档以及项目搭建

  • 系统业务流程说明, 根据不同系统的情况.

    描述系统的主要业务流程以及组件, 帮助团队成员理解系统构成.

  • 10分钟内搭建一个开发环境, 说明过程完整且规范.

  • 充分自动化, 项目提供数一系列的方便工具, 举例说明:

    • 测试数据初始化方法.
    • 恢复用户现场的脚本.
  • 项目依赖环境和版本明确且固定.

  • 系统配置说明 说明系统的标注配置选项.

系统的需求, 设计, 测试用例, bug修改有记录

  • 使用系统化的管理工具管理

    比如bugzilla, jira, 禅道

  • 系统能够对问题闭环

    • 系统记录问题
    • 记录分析过程
    • 记录解决方法
    • 记录测试验证

自动代码检查

  • 是否有可以参考的代码规范
  • 是否有代码规范的自动化检查的脚本
  • 自动执行的结果通知相关项目人员
  • 检查项目的可配执行 通过配置可以对某些文件的某些配置开关

自动化测试

  • 有测试大纲, 描述了自动测试的覆盖范围.
  • 后台业务自动测试, 关键业务覆盖100%.
  • 前端自动测试, 能够执行前端业务测试.
  • 执行测试能够生成可检查的测试报告.
  • 和自动构建系统结合, 能够周期性执行的自动测试.
  • 测试积极维护,能够发现系统问题.

项目部署

  • 部署环境文档齐全.
  • 多环境使用的服务,数据库,域名等信息.
  • 访问地址,账号密码等.
  • 一个命令生成可以部署的产品
  • 如果是服务器部署的产品, 自动脚本化部署(安装)

项目时候有版本发布的管理流程

  • 发布的版本需要在代码库上对应TAG, 标记发布时候的commit号.
  • 发版要有发版记录(写到文档中).
  • 文档中说明发版说明新特性.
  • 文档中发版说明已知bug.
  • 发布的项目要有可以查到的版本号.
Tags: checklist