背景

简单的介绍背景,公司服务系统是流行的分布式架构。数据库之前经历了横、纵拆分表改造,这次决定把核心表迁移到分布式数据库(oceanBase)。服务与服务之间的调用就如同蜘蛛网一样错综复杂,如何保证这次优化上线后系统不出问题,是这次关键的任务。

团队前置的工作

  1. 切换方案评审
  2. 上线方案评审
  3. 测试范围评审
  4. 压测评审

下面主要介绍我这次梳理测试范围的思路

历史用例非常多,如果全量执行所有测试用例不仅耗时,而且未必能覆盖全面(有一些提供给第三方的接口可能测试不到)。功能回归远远不能证明这次测试的质量,以下是我这次梳理的一些思路

public Boolean removeCoursewareKeyByUserId(List<String> userIds) {
        try {
            List<String> keys = userIds.stream().map(it -> genUserCwCountCacheKeyV2(it, CoursewareState.AVAIL.getState())).collect(Collectors.toList()).stream().flatMap(List::stream).collect(Collectors.toList());
            keyManager.del(keys);
            return true;
        } catch (Exception e) {
            LOGGER.error("removeCoursewareKeyByUserId, userIds:{}", JSON.toJSONString(userIds));
            return false;
        }
    }

在做完以上的一些工作后,交付功能测试版本,后续的就是压测调优和线上回归的事情了。

如果大家有一些更好的测试方法和经验,希望可以分享出来一起讨论。


↙↙↙阅读原文可查看相关链接,并与作者交流