数据升级测试是确保在系统升级或版本更新过程中数据的完整性、一致性和兼容性的重要环节。在遇到版本迭代时,如果存在数据升级情况,我们在后端服务提测后要先进行版本升级文档的测试和数据升级测试,来确保服务升级过程正确性、可靠性及历史版本数据不受到新版本的影响。
服务版本升级的方式:
停服升级
停服升级就是在一段时间内功能不可用,在这段时间里,系统进行维护升级,比如游戏停服更新,等待服务升级迭代完成我们才可以进入游戏。这种升级方式并不适合大多数的业务场景,比如微信业务,是用户不可接受的,所以平滑升级就是非常必要的方式。
优点:数据库不需要满足版本兼容。
缺点:会导致线上客户端存在一定的不可用时长。
平滑升级
允许系统在不中断服务或尽量减少服务中断时间的情况下,从旧版本升级到新版本。与停服升级不同,平滑升级旨在保持系统的可用性,让用户在升级过程中能够持续地访问和使用系统的大部分功能。比如对于依赖在线服务获取收入的企业,如电商平台、在线广告平台等,停服升级可能会导致交易中断,进而造成收入损失。平滑升级能够保持交易的正常进行,确保企业的收入流不会因为升级而出现断层。
前置:需要满足数据库版本的向上兼容和向下兼容。
优点:不影响历史数据,不停服,不存在不可用时长。
介入时机:
如果存在数据升级情况,后端服务提测后冒烟测试之前,进行版本升级&数据升级测试。
前置工作:
了解数据变动内容和影响范围,进行针对性测试。
准备好旧版本的被测服务和旧版本数据库的测试环境。
准备一定量的旧版本测试数据。
数据备份:在启动升级之前,务必对当前运行的服务及其相关数据进行全面备份。这包括数据库数据、配置文件、日志文件等。备份的目的在于,若升级过程中出现意外情况,能够迅速恢复到升级前的状态,最大限度减少业务中断和数据损失。
测试流程:
用例编写及评审:编写数据升级测试策略和具体的测试用例,并进行评审。
环境搭建:前置准备好服务器搭建上一个版本的被测项目。
旧测试数据:围绕测试用例构建历史数据。(用例前置)
验证升级流程的正确性:根据开发提供的部署文档完成服务升级。(文档正确性)
用例执行:验证历史数据是否能够向下兼容。包括旧数据的更新、删除、查询操作的用例,确保在新数据库使用旧数据时这些操作能够正常执行且结果正确。
冒烟测试:主流程校验。
新测试数据:构建新版本的业务数据。(用例前置)
回滚策略校验。(文档正确性)
用例执行:验证新版本业务数据是否能够向上兼容,能在旧版本数据库中正常运行。例如,若在升级过程中对数据库表添加了新的字段,回滚后旧版本数据库应能忽略该新字段或在不影响其正常功能的情况下处理数据。
评论区