预发布环境

      预发布环境一般用于上线前最后一次测试。一般的开发测试流程:开发--->开发人员自测--->测试人员测试--->业务人员测试--->投产上线。而在项目上线后,经过功能验证,可能会出现程序错误等问题,造成上线失败。因此,在上述流程中,增加了两部分:预发布环境测试和灰度发布,这里只谈预发布环境测试。

 

      预发布环境测试是在投产上线前真实或近似模拟线上环境的测试过程,具有和生产环境相同的环境配置、程序代码、甚至数据。其为了在正式上线前,结合当前正式环境的相关情况,形成的一套等价于或近似于正式环境的系统,基于该系统进行新功能的测试验证,以尽可能地测试相关功能,降低bug缺陷发生率。

 

需要注意的方面有:

1、环境配置

预发布环境的环境变量等配置须要和正式环境保持一致。

2、数据

预发布环境下的项目连接使用的数据库可以分为测试数据库和生产数据库。

1)使用生产数据库需要特别注意,尽量避免对表和数据的修改行为(该行为可能会造成数据污染、脏数据、表结构变化带来的问题);而对于新增表字段、表,这些行为所造成的影响是可控的。

2)使用测试数据库完全避免了对生产库的影响,但具有数据局限性。一般来说,生产上的数据分布比测试库更加丰富多样,即生产库中的数据更加全面,有助于系统功能的多条件、多情况的全面测试。

3)可以采取从生产上导出数据至一个临时库中,基于该库来完成预发布测试任务。这其中涉及两方面问题:数据保密和量。从生产库导出数据到临时库,会造成生产数据的保护降级(从生产环境到测试环境,数据的保密安全性降低),对此可以通过对敏感数据加密、替换等操作来解决;同时如果生产库中的数据量很大,完全导出不一定是一个好的办法,导出会花销占用一定的数据库机器资源,并且如果一个业务功能涉及多个数据库,这可能不是一个好的办法。

3、访问隔离

如果预发布使用的数据库是生产数据库,或者其所依赖其他系统来源于生产环境,那么需要对其访问做隔离。

1)入口隔离。只有相关测试人员才能访问进预发布环境,其余人访问正式环境。

2)数据隔离。预发布环境测试过程中对数据的操作不能影响正式库中的数据,即对于正式库已有数据只读不改,但可以新增测试数据(根据情况决定是否在测试完成后清除)。

在测试验证完成后,需要对中间件中的数据做必要的处理,如缓存。

4、外部系统

如果本系统功能依赖于外部系统,测试如何进行?可以根据本系统使用的数据库性质决定对接外部系统的哪个环境。如果连接的是生产库,那么外部系统就很有可能是正式环境下的,除非外部系统提供预发布支持(一般是不可能实现的);如果使用的是测试库,那么对接的外部系统就是测试环境下的。

 

posted @ 2023-06-29 15:19  朝云出岫  阅读(383)  评论(0)    收藏  举报