admin管理员组

文章数量:1530889

2024年3月14日发(作者:)

测试版本管理平台设计与应用

作者:冯文亮 等

来源:《中国金融电脑》 2018年第5期

随着金融科技时代的到来,为应对快速变化的市场及内外部用户需求,信息系统的变更速

度不断加快,测试中心实施的各类测试任务也相应增加, 对于测试的要求也越来越高。

通常测试中心根据开发部门提交的测试版本出具测试报告,但测试过程中的测试版本缺乏

有效管理,一直是测试实施过程中的“痛点”,存在问题如下:

(1)测试过程中,负责开发的项目组缺乏版本与结果的匹配意识,随意变更测试版本,测

试实施出现多次反复,降低了测试效率,难以保证测试进度,造成测试资源浪费。

(2)测试版本变更,无凭无据,无迹可寻,较难定位是版本变更还是网络、配置等环境因

素造成性能差异。

(3)测试结果因测试版本的差异而不同,一份测试报告出现多个版本杂糅的测试结果,降

低了测试报告的准确性。

一、测试版本管理平台的设计原理

借助开发测试版本管理平台,我们可以掌握测试版本变更的依据,做到版本变更可知悉,

有痕迹和可追溯,以及版本回退可验证,同时开发基于MD5 算法的跨平台版本变更检测工具,

开发测试版本统一存档、集中监控的测试版本管理平台。我们制定管理规则,以工具与平台结

合的技术手段为抓手,实施测试版本管理,有效地解决了上述问题。

通过研究发现,代码更新是通过将编译后的可执行代码覆盖之前部署的目录文件,版本若

有更新,对应目录下文件就会更新。基于MD5 算法的校验模型, 通过与前一次版本目录文件的

MD5 值比对,可验证测试版本是否变更。

1. MD5 简介

消息摘要算法第五版(Message Digest AlgorithmV5, MD5)是计算机安全领域广泛使用

的一种散列函数,用以提供消息的完整性保护。

MD5 典型应用是数据一致性验证,就是对一段信息(Message)产生信息摘要(Message-

Digest),以防止被篡改。MD5 将整个文件当作一个大文本信息,通过其不可逆的字符串变换

算法,产生了唯一的MD5 信息摘要。每个文件的MD5 值是不同的,如果任何人对文件做了任何

改动,其 MD5 值也对应地发生变化。

2. 基于MD5 算法的校验模型

基于MD5 算法的校验模型,是根据应用版本部署的目录进行递归查找,对目录内的所有文

件生成各个MD5 值,所有文件名都转换成UTF-8 编码,将文件路径信息和各个MD5 值都存入

一个哈希数组中。对整个哈希数组进行处理,首先对文件路径信息使用以ASCII顺序, 按照顺

序将文件路径信息和MD5 值以XML 的格式生成一个XML字符串,再对整个XML 字符串生成MD5

值,得到一个应用版本部署目录的MD5 值。版本中即使有一个字符的变化,其目录中部分文件

的MD5 值就会变化,文件路径信息和MD5 值生成一个XML 字符串也变化,最后得出的应用版

本部署目录的MD5 值就会相应变化,由此可获知版本进行了变更。

该校验模型支持UNIX/LINUX、WINDOWS 平台, 基于标准MD5 算法,校验算法过程中数据

编码统一为UTF-8 标准,校验算法校验过程中的排序遵循ASCII 标准。

3. 版本变更监控设计原理

(1) 测试版本管理平台定时向被测服务器发送前一个测试版本MD5 的请求。

(2) 被测服务器根据部署的基于算法的跨MD5 平台版本变更检测工具,实时计算当前测试

版本的MD5 值,并与请求发来的前一个MD5 值进行比对。同时将请求和返回的内容记录到被测

服务器MD5 监控日志中。如发现不同,就返回整体版本的MD5 值以及各文件明细MD5 值的XML

格式文件。

(3) 测试版本管理平台根据返回的各文件明细MD5值的XML 格式文件与前一个版本的XML

格式文件进行比对,在测试版本管理平台展示增、删、改的具体文件及路径,并发送邮件通知

测试经理。版本变更监控技术实现如图1 所示。

4. 版本存储及管理设计

平台使用AD 域认证策略验证系统用户的登录请求,即连接上海浦东发展银行域认证服务

器进行用户认证。根据域服务器返回的认证信息判断用户是否允许登录平台,域认证通过后跳

转至用户操作界面,由权限同步接口将用户在平台中的系统访问权限同步到FTP 中继服务器,

同步开通中继服务器上用户个人工作区。

用户通过 FTP 客户端工具,使用域用户的用户名和密码登录中继服务器的“应用系统 当

前用户名”指定目录下,上传版本文件至中继服务器。上传成功以后,在测试版本管理平台点

击“版本提交” ,平台从中继服务器获取已上传的版本文件,将其保存在平台数据库中,并生

成版本MD5 值及保存路径,可供后继版本追溯及版本回退。通常一个测试项目有初始化版本和

最后测试版本两个版本备案,中间过程的调优、问题修复等版本是否需要存储,由测试经理按

需决定。

平台对不同的用户根据角色和负责的系统,配置了不同的权限,用户只允许在系统授权范

围内完成符合自身权限的特定操作。用户角色主要分为测试经理和项目经理。项目经理一般为

“版本提交人”,登记测试版本基本信息,提交测试版本安装包,测试版本变更后的版本备案

以及测试报告发布后的版本结项。测试经理查看版本变更日志,按需通知版本提交人阶段性提

交版本备案。

二、测试版本管理平台的架构及主要功能

1. 逻辑架构

系统采用了典型的三层架构,即表现层、逻辑层及数据层。表现层主要是用户前端展示,

通过Web 页面方式展现。逻辑层包含业务逻辑实现。数据层是数据存储层,包含数据存储结构、

存取策略等。应用逻辑架构如图2 所示。

2. 物理架构

该平台主要由一台应用/ 数据库服务器和一台中继服务器组成。主要关联邮件服务器和域

认证服务器,用于接收版本变更邮件通知及域用户认证。服务器配置见表1。

物理架构如图3 所示。

3. 主要功能介绍

平台功能分为测试版本提交、测试版本查询、测试版本变更日志、测试版本变更统计、测

试项目监控配置、应用系统参数配置与系统管理功能模块。主要功能介绍如下:

(1)测试版本提交

测试版本提交人使用FTP 客户端工具登录中继服务器上传测试版本文件。测试版本文件主

要包括目标代码(编译后可执行代码)、脚本和配置文件等。上传版本后,登录测试版本管理

平台进行版本提交操作。不同系统的项目经理,根据权限设置,只能上传所负责系统的软件测

试版本。

测试版本提交与备案流程如图4 所示。

(2)测试版本查询

测试经理和项目经理可对已纳入测试版本管理的测试项目在测试过程中提交的各个版本进

行查询。测试版本主要有三个状态:提交中、已备案和已结项。所有已备案的测试版本可追溯

和回退。测试报告发布后,测试项目正式结束,版本状态为已结项,对版本变更的监控同步终

止。

(3)测试版本变更日志

平台在监控到版本文件发生变化后,触发通知邮件给测试经理。测试经理可登陆平台查看

此次变更日志,获知本次变更具体的内容,涉及哪些文件的增删和修改。测试版本变更日志如

图5 所示。

(4)测试版本变更统计

本功能仅对测试经理开放,用于查看被测项目按日变更频次,输入查询条件可查看被查项

目按时序排列的变更频次图、表,可用于度量软件质量,是软件质量稳定度趋势的直观反映。

测试版本变更统计如图6 所示。

(5)测试项目监控配置

本功能仅对测试经理开放,用于对测试项目版本监控设置开启/ 关闭,默认“开启”状态,

即测试版本变更后,测试经理会收到邮件通知。测试经理通过查询条件找到需要关闭/ 开启的

测试项目,根据需要,选择“关闭/ 开启”,即可生效。

三、测试版本管理平台的应用效能

测试版本管理平台自投入应用以来,结合版本变更检测工具,取得了较好的预期效果。项

目组因顾及有版本监控手段,对版本变更较之前更加谨慎。测试版本变更前,会主动告知将要

进行哪些变更。测试经理可及时掌握每次换版的情况,减少了对性能差异的探究以及频繁变更

导致的重复性测试。测试版本有效受控,测试结果可在备案版本上复现,版本可追溯。总结系

统效能有如下五点。

1. 建立了统一的测试版本管理平台

测试版本管理平台建立前,测试版本内容和过程不可追溯。通过建立统一的测试版本管理

平台,实现了测试版本的可追溯、版本变更的可记录、操作日志的可审查和版本质量的可评估。

2. 提供了基于Md5 算法的跨平台通用监控工具

通过对部署目录的监控及MD5 一致性校验,有效获知版本是否变更以及变更内容。

3. 实现了测试版本全生命周期管理

测试版本从首次提交备案到报告发布,全测试过程纳入管控,有力推进了测试版本交付质

量及变更过程规范化。

4. 提高了测试效率及测试报告准确性

版本变更检测工具与管理平台结合,测试版本变更及时掌握,减少因版本随意变更导致测

试反复和问题排查困难,提高测试效率。测试版本与结果完全匹配,提高了测试报告准确性。

5. 利旧加创新,投入产出高

平台主体框架继承投产版本交付管理平台,用户操作熟悉,创新了版本监控、版本变更日

志与版本变更统计,投入产出较高。

图1 版本变更监控技术实现

图2 应用逻辑架构

图3 物理架构示意

表1 服务器配置

图4 测试版本提交与备案流程

图5 测试版本变更日志

图6 测试版本变更统计

四、小结

投产版本交付管理平台是上海浦东发展银行在2014 年度人民银行组织的银行科技发展奖

评审中获三等奖的项目。测试版本管理平台是原有投产版本交付管理平台的创新项目,延续了

投产版本交付管理的架构体系,又针对测试过程的版本管理应用进行了改造,进行了版本监控、

版本比对、版本变更日志查询与变更统计的创新。平台全自主开发和设计,已实现性能测试项

目测试版本的全覆盖,后继拟扩展至系统测试、安全性测试等其他测试类型。

测试版本管理平台于2017 年7 月投入使用至今,涉及43 个应用系统,提交版本102 个,

监控版本变更1473 项。因与投产版本交付管理平台源于统一的应用架构,在与其对接上存在

先天的便利,可通过测试版本与投产版本一致性校验,实现开发、测试和投产的软件版本全周

期的管理,有效提升软件版本在测试阶段、投产阶段的交付质量,进一步避免版本管理问题导

致的投产风险。

本文标签: 版本测试变更平台管理