【效能提升】上线前漏了SQL脚本,漏加上某个配置项了?

背景

一个版本从开始开发到上线,可能经历10多天,甚至更
由于这个过程的时间较长,难免出现某些需要执行的SQL脚本、需要配置的配置项,到了上线前,却被遗漏了,最后导致出现线上问题才发现。

我们团队也出这种情况发生,我们想了个比较笨的办法,虽然笨,但终究还是有些作用。

开发人员提测前登记「除代码外的改动项」,由测试人员执行「除代码外的改动项」

之前:

  1. 开发人员开发完毕
  2. 开发人员完成好测试环境的所有配置,准备完善测试环境
  3. 请测试人员直接进入测试

现在:

  1. 开发人员完成代码开发,在开发过程中用「我们约定的文档」登记「除代码外的改动项」
  2. 提测前,请测试人员执行「除代码外的改动项」(这个动作有两个目的:1、避免开发人员直接执行配置,然后上线却遗漏了;2、「除代码外的改动项」通过测试人员执行,也属于验证「除代码外的改动项」有效性的一部分;)
  3. 然后,开发人员在测试环境对特性进行验证
  4. 提测给测试人员

「除代码外的改动项」一般有哪些?

  • SQL脚本,比如建表语句、添加字段语句、初始化数据语句(注意:如果是SQL,使用Flyway也可帮助我们避免遗漏脚本)
  • 配置中心的配置项,比如添加、修改、删除配置
  • 申请某些权限,比如调用某个第三方服务,而该第三方服务调用前需进行权限申请,申请的一系列都需要记录下来
  • 五八花门

我们运行中遇到的问题?

提测后,「除代码外的改动项」出现变更,会需要额外的沟通成本

比如:提测时,我登记了一条SQL,需要给T_USER表添加一个INT类型的字段AGE:

ALTER TABLE T_USER ADD COLUMN AGE INT;

提测后,测试人员测出若干个Bug,为了修复这些Bug,我需要将AGE这个字段修改为DATE类型的字段BIRTHDAY:

ALTER TABLE T_USER DROP COLUMN AGE;
ALTER TABLE T_USER ADD COLUMN BIRTHDAY DATE;

上述这些执行的过程,因为需要测试人员理解并执行,所以需要花一些沟通成本使其知悉。

posted @ 2021-10-12 23:29  nick_huang  阅读(82)  评论(0编辑  收藏  举报