测试材料
本页汇集编写《MCS信息安全传输控制软件 测试报告》与《MCS信息安全传输控制软件 测试执行记录》两份 Word 交付文档所需的全部内容:文档格式规范、测试依据与要求、测试环境、测试进度,按 QXJ 真实功能编写的全套功能测试用例(42 个,13 类)、性能效率测试用例(3 个),以及自动化接口测试与兼容性测试等补充测试材料。格式规范参照权威第三方测试机构(北京市计算中心有限公司软件与系统测试实验室)出具的同类报告样板提炼;用例内容全部依据本项目《软件验收工作与技术总结》中的功能要求(FR_1_1 ~ FR_7_3)与性能指标(PR_1_1 ~ PR_2_3)编写。
使用说明
第五、六章中每个用例的"实际测试结果"列、第八章测试结果表中的"测试结果/评价结果"列均留空,待现场测试执行时填写;测试执行时须同步截图,按"图 1、图 2……"编号贴入《测试执行记录》对应用例的"测试过程记录"栏。
一、两份测试文档说明
1.1 《测试报告》
作用:向委托方(北京华云星地通科技有限公司)与最终用户(国家卫星气象中心)出具的结论性文档,证明被测软件的功能性与性能效率满足研制合同与 GB/T 25000.51-2016 的要求,是软件验收的必备交付物(文件编号 IIE-MCS-ISTCS-TR)。
本项目模板章节结构(按样板提炼):
| 序号 | 组成部分 | 字段 / 内容要求 |
|---|---|---|
| 0a | 封面 | 检测单位名称(两行)、文档名"测试报告"、项目名称、项目编号(IIE-MCS-ISTCS)、委托单位、检测单位、报告日期 |
| 0b | 声明 | 8 条固定声明条款(见 1.3 节,可照搬) |
| 0c | 信息系统测试基本信息表 | 项目名称、系统名称、版本号;被测单位(名称/地址/邮编/联系人姓名/职务/电话/邮箱);测试单位(同上字段);测试信息(样品接收日期、样品内容及数量、样品编号、测试开始/结束日期、测试依据);审核签发(编制人/审核人/批准人及各自日期) |
| 0d | 测试结论 | 两段式:① 委托关系、测试时间地点、测试依据、覆盖率与执行率要求;② 功能性结论(按真实功能逐条概述)+ 性能效率结论;落款单位与日期 |
| 1 | 简介 | 1.1 测试目标;1.2 测试依据;1.3 参考文档(测试大纲、需求规格说明等) |
| 2 | 测试标准 | 2.1 测试要求;2.2 测试过程(四阶段);2.3 人员组织(角色/人员/职责/技能表);2.4 缺陷级别定义(1~4 级表) |
| 3 | 测试环境 | 3.1 系统架构图;3.2 软硬件配置表(序号/名称/硬件配置/操作系统/软件配置) |
| 4 | 测试进度 | 阶段/任务/参与人员/开始时间/结束时间表 |
| 5 | 测试结果 | 5.1 功能性测试结果表(序号/测试项/测试内容/测试结果/评价结果/备注);5.2 性能效率测试结果表;末行"以下空白" |
1.2 《测试执行记录》
作用:测试过程的过程性证据文档,与《测试报告》配套交付。每个测试用例一张记录表,记录执行人、执行时间、每步实际结果与截图编号,是"测试用例执行率 100%"的直接证明。
本项目模板:每个用例一张表,字段清单如下(按样板提炼):
| 字段 | 填写说明 |
|---|---|
| 被测软件版本 | 如 V1.0 |
| 测试项 | 用例所属功能分类(如"设备注册与密钥交换") |
| 测试用例名称 | 简明动宾短语 |
| 测试用例标识 | 格式 GN_QXJ20260801_YL_<模块缩写><顺序号>,如 GN_QXJ20260801_YL_ZC01 |
| 测试内容 | 本条用例验证的功能点一句话描述 |
| 测试数据 | 本用例使用的输入数据;无则填"无" |
| 测试用例初始化 | 执行前必须就绪的状态(如"已启动 MCS 服务、设备已完成注册") |
| 前提与约束 | 网络、权限、账号等前置条件;无则填"无" |
| 终止条件 | 固定两段:正常终止条件(按正常测试步骤完成测试步骤);异常终止条件(被测软件功能实现错误 / 测试用例设计错误 / 操作错误 / 测试环境出现异常情况) |
| 测试步骤 | 子表:序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果(执行时填写,每步注明截图编号) |
| 通过准则 | 固定表述:"实际测试结果与期望测试结果一致" |
| 测试过程记录 | 执行时填截图编号清单:图 1 图 2 …… |
| 设计人员 / 设计时间 | 用例编写人与日期 |
| 测试人员 / 测试时间 | 执行人与日期 |
| 监督人员 / 监督时间 | 质量监督员与日期 |
| 未通过的测试步骤序号 / 缺陷标识 | 全部通过时填"------";有缺陷时填步骤号与缺陷库编号 |
| 测试结论 | 通过 / 未通过 |
1.3 《测试报告》声明条款模板(8 条,可照搬)
- 本报告是 MCS信息安全传输控制软件 的测试报告。
- 本报告测试结论的有效性建立在被测试单位提供相关证据的真实性基础之上。
- 本报告测试结论只对送检样品有效。
- 本报告中给出的测试结论仅对被测信息系统当时的状态有效。
- 本报告中给出的测试结论不能作为对信息系统内部的相关系统构成组件(或产品)的测试结论。
- 在任何情况下,若需引用本报告中的测试结果或结论都应保持其原有的意义,不得对相关内容擅自进行增加、修改和伪造或掩盖事实。
- 除全文复制外,未经实验室批准不得部分复制报告。
- 若对报告有异议,应于收到报告之日起十五日内向本测试机构提出,逾期不予受理。
二、测试依据与测试要求
2.1 测试依据
- GB/T 25000.51-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第 51 部分:就绪可用软件产品(RUSP)的质量要求和测试细则》
- 《MCS信息安全传输控制软件 测试大纲》
- 《MCS信息安全传输控制软件 需求规格说明》
- 研制合同及技术要求(功能要求 FR_1_1~FR_7_3、性能指标 PR_1_1~PR_2_3)
2.2 测试要求
- 测试需求覆盖率达到 100%(覆盖 FR_1_1 ~ FR_7_3 全部功能要求项)。
- 测试用例执行率达到 100%。
- 测试用例均进行充分测试。
2.3 测试过程(四阶段)
本次测试项目实施过程共分为测试准备、方案编制、现场测试、分析及报告编制四个阶段,测试双方之间的沟通与洽谈贯穿了整个测试过程。
- 测试准备阶段:召开项目启动会,明确工作任务与计划;对被测系统进行详细调研,掌握 MCS 服务器部署情况(DMZ 区观测需求申请服务、/api/v3/ 接口体系)、鸿蒙 NEXT Pad 客户端与 PCIE 密码卡的接入方式。
- 方案编制阶段:确定测试对象与测试指标,确定测试工具接入点(接口抓包点、密码卡性能测试接入点、压测工具部署点),编制《测试计划》与《测试用例》。
- 测试阶段:按照《测试计划》与《测试用例》完成各项测试工作,形成《测试执行记录》与《软件缺陷报告》。
- 分析与报告编制阶段:对测试结果进行梳理与分析,形成《软件测试报告》。
2.4 人员组织(模板)
| 角色 | 人员 | 职责 | 技能 |
|---|---|---|---|
| 项目负责人 | (待填) | 测试计划编制;协调实施项目计划中确定的活动;组织并确保团队工作;控制项目进度;与相关人员进行沟通;为其他人员提供支持。 | 熟悉测试管理知识或有测试管理经验,能够进行有效沟通。 |
| 审核员 | (待填) | 负责对测试执行结果进行审核 | 了解测试工作,可根据测试说明执行测试,并对测试结果进行简单归纳等。 |
| 测试员 | (待填,可多人) | 协助识别测试需求;协助制定测试用例;执行测试活动 | 了解测试工作,可根据测试说明执行测试,并对测试结果进行简单归纳等。 |
| 配置管理员 | (待填) | 负责执行项目的配置管理计划;负责项目执行过程中的配置活动的落实和管理;负责项目中配置活动的状态监控等。 | 熟悉配置管理程序,掌握配置管理工具的使用和维护。 |
| 质量监督员 | (待填) | 对测试过程、测试记录、测试结果进行监督。 | 熟悉测试流程,熟悉测试记录和测试结果的规范。 |
2.5 缺陷级别定义
| 严重级别 | 子项 | 概述 | 具体描述 |
|---|---|---|---|
| 1级:致命问题 | A-1 | 操作系统崩溃 | 运行软件系统后会导致操作系统崩溃(内存漏留严重或 CPU 占用 100%) |
| 1级:致命问题 | A-2 | 导致软件系统崩溃 | 因操作某项功能而导致软件系统自动崩溃或死机 |
| 1级:致命问题 | A-3 | 导致整个模块或软件系统不能使用 | 因操作某个功能,导致整个模块或软件系统不能使用 |
| 1级:致命问题 | A-4 | 信息丢失 | 数据库数据会丢失;打印出来的报告与其实内容不相符;出现串报告或串影像问题 |
| 1级:致命问题 | A-5 | 业务流错误 | 业务流程没达到设计要求;因业务流程中的某个功能没有实现而导致整个业务流程不能完整的实现 |
| 1级:致命问题 | A-6 | 核心功能不能使用 | 客户端核心功能无法使用或报错;服务端服务无法加载或启动,导致客户端无法使用 |
| 2级:严重问题 | B-1 | 重要数据计算错误 | 重要数据统计信息存在较大的差异;重要数据计算方法有错 |
| 2级:严重问题 | B-2 | 数据库发生错误 | 执行某一操作时会出现数据库死锁现象;数据库通讯错误 |
| 2级:严重问题 | B-3 | 系统不稳定 | 系统在操作主要功能中会出现偶发的报错;系统在使用过程中会出现闪退;查询、打开速度很慢,超过正常范围的 2 倍;操作某个功能有时无反应;系统在运行一段时间后会明显变慢,影响业务操作 |
| 2级:严重问题 | B-4 | 安全性问题 | 系统没有建立用户帐号,没有设置密码访问;数据库敏感内容没有加密(例如:密码等);同一份报告可同时多人编辑;客户端没有授权也可以正常登录 |
| 3级:一般问题 | C-1 | 一般功能未实现 | 一般的功能不能使用;一般的功能实现达不到用户需求 |
| 3级:一般问题 | C-2 | 无信息合法性检查 | 没有对输入的数据类型进行检验(如日期型文本框中输入字符型数据时没有弹出提示信息);输入框不允许为空,而用户输入为空时没有相应的提示信息;输入非法字符、输入的字符长度超出允许的长度范围时出错;输入超大、超小值溢出错误(数值型、日期型字段) |
| 3级:一般问题 | C-3 | 兼容性问题 | 业务系统对操作系统的兼容性不好;对于浏览器的兼容性不好;对于主流的数据库兼容性不好 |
| 3级:一般问题 | C-4 | 软件使用不便 | 输入或选择无法正常得到焦点;进行某项操作后,显示出的光标所在焦点与实际所在的焦点不一致;没有使用数据调用而导致用户重复输入量过多;进行某操作后返回,无法回到原来所在的位置;新增记录没有排在首行;不符合用户的操作习惯 |
| 3级:一般问题 | C-5 | 数据不能立即更新 | 界面中的统计数据没有及时更新;用户添加/修改/删除的数据没及时更新;按钮或选项状态(有效/无效)没有及时变更;界面数据刷新不正确 |
| 3级:一般问题 | C-6 | 删除操作无提示 | 对于关键性数据删除时没有给出提示;重要信息删除后不能恢复 |
| 4级:提示及建议问题 | D-1 | 界面显示错误 | 排版不规则;文字、图片不能完全显示或错误;打印排版、格式错误;不同分辨率下界面显示不正常 |
| 4级:提示及建议问题 | D-2 | 信息提示不清 | 信息提示不易理解、有歧义或不统一;提供给用户过多无用或过少的信息;当鼠标移到图片或按钮上时,无浮动的提示语;提示信息先后无序(针对嵌套提示框) |
| 4级:提示及建议问题 | D-3 | 界面不规范 | 界面风格、操作方式不统一(控件、文字、颜色等);标题不规范或各处信息描述不一致 |
| 4级:提示及建议问题 | D-4 | 界面文字错误 | 文字拼写错误;语法错误;标点符号错误或全、半角混杂等 |
| 4级:提示及建议问题 | D-5 | 界面操作性建议 | 对界面的优化建议;对操作方便性的建议 |
三、测试环境
3.1 系统架构
3.2 软硬件配置
| 序号 | 名称 | 硬件配置 | 操作系统 | 软件配置 |
|---|---|---|---|---|
| 1 | 被测系统服务器(MCS 服务器,客户提供) | 处理器:(按实际填写)内存:64G 硬盘:480G;内置 PCIE 密码卡 1 张 | Linux(CentOS 7 / 按实际填写) | MCS信息安全传输控制软件 V1.0(Django + gunicorn,/api/v3/)、MySQL 8、Redis 5、密码卡驱动及密码服务引擎 |
| 2 | 观测需求专用移动终端(客户提供) | 华为 MatePad(鸿蒙 NEXT),摄像头可用 | HarmonyOS NEXT | 风四C星安全浏览器 APP V1.0(设备密钥生成/存储、扫码、JSBridge 加解密) |
| 3 | 陪测服务器(灾备站 MCS,客户提供) | 处理器:(按实际填写)内存:64G 硬盘:480G | Linux(CentOS 7 / 按实际填写) | 灾备站 MCS 接收端服务 V1.0、MySQL 8 |
| 4 | 测试机 | 处理器:Intel i5 及以上 内存:16G 存储:500G | Windows 11 | 接口调试工具(Apifox/Postman)、压测工具(JMeter)、抓包工具(Wireshark)、密码算法性能测试工具、Todesk |
| 5 | PCIE 密码卡(备件,客户提供) | 标准 PCIE 接口密码卡,支持 SM2/SM3/SM4 | — | 遵循 GM/T 0018-2012《密码设备应用接口规范》 |
四、测试进度表(模板)
| 阶段 | 任务 | 参与人员 | 开始时间 | 结束时间 |
|---|---|---|---|---|
| 测试需求分析 | 编写测试需求分析说明书 | (待填) | 20260801 | 20260803 |
| 测试计划阶段 | 编写测试计划 | (待填) | 20260801 | 20260803 |
| 测试用例阶段 | 编写测试用例 | (待填) | 20260804 | 20260807 |
| 测试阶段 | 执行测试 | (待填) | 20260808 | 20260812 |
| 编写测试报告 | 编写测试报告 | (待填) | 20260813 | 20260814 |
五、功能测试用例全集
共 42 个功能测试用例,分 13 类,覆盖 FR_1_1 ~ FR_7_3 全部功能要求。用例标识格式:GN_QXJ20260801_YL_<模块缩写><顺序号>;模块缩写:ZC=设备注册与密钥交换、DL=身份认证登录、YH=用户管理、JS=角色管理、SB=设备管理、FK=访问控制策略、MY=密钥管理、RZ=日志管理、CS=传输加密、GC=观测需求传输、SY=图像水印、L0=L0 溯源篡改检测、ZB=主备站传输。
各用例公共字段(除特别注明外,每条用例均适用,Word 文档中须逐条展开填写):
- 被测软件版本:V1.0
- 前提与约束:无(特别注明者除外)
- 终止条件:正常终止条件——按正常测试步骤完成测试步骤;异常终止条件——被测软件功能实现错误 / 测试用例设计错误 / 操作错误 / 测试环境出现异常情况
- 通过准则:实际测试结果与期望测试结果一致
- 设计人员 / 测试人员 / 监督人员及对应时间:执行时填写
5.1 设备注册与密钥交换类(5 个)
用例 ZC01:服务器配置
| 字段 | 内容 |
|---|---|
| 测试项 | 设备注册与密钥交换 |
| 测试用例名称 | 服务器配置 |
| 测试用例标识 | GN_QXJ20260801_YL_ZC01 |
| 测试内容 | 测试 APP 首次启动时支持设置与新增 MCS 服务器连接信息 |
| 测试数据 | 服务器名称"北京主站 MCS";登录地址 https://mcs.example.cn/login;MCS 地址 https://mcs.example.cn;后台管理地址 https://mcs.example.cn/admin |
| 测试用例初始化 | 鸿蒙 Pad 已安装安全浏览器 APP,已开启相机、存储、网络权限;APP 首次启动,尚未配置服务器 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在 Pad 桌面点击风四C星客户端图标启动 APP,进入设备注册引导页 | 成功进入设备注册页面,页面展示"设置服务器""点我扫码导入服务器配置文件""点我导出文件"等入口 | |
| 2 | 点击"设置服务器"按钮,进入服务器配置页面 | 展示系统内置默认服务器配置,并提供手动新增入口 | |
| 3 | 点击新增,填写服务器名称、登录地址、MCS 地址、后台管理地址并保存 | 弹框提示保存成功,服务器列表中出现新增的"北京主站 MCS"记录 | |
| 4 | 在服务器列表中选中"北京主站 MCS"作为当前连接服务器 | 当前服务器切换成功,返回设备注册页后页面显示当前服务器标识 |
用例 ZC02:扫码导入服务器公钥
| 字段 | 内容 |
|---|---|
| 测试项 | 设备注册与密钥交换 |
| 测试用例名称 | 服务器公钥扫码导入 |
| 测试用例标识 | GN_QXJ20260801_YL_ZC02 |
| 测试内容 | 测试 APP 通过扫描服务器生成的二维码导入服务器配置信息及服务器公钥,并完成合法性校验 |
| 测试数据 | 服务器后台辅助注册页生成的服务器公钥二维码(含服务器 ID、API 地址、SM2 公钥、时间戳) |
| 测试用例初始化 | 已完成 ZC01 服务器配置;管理员已在服务器后台登录并打开辅助注册页面 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在服务器后台【辅助注册】页面查看"服务器信息"板块,确认展示服务器 ID、服务器名称、API 访问地址、加密算法 SM2、时间戳、服务器公钥内容 | 服务器信息板块完整展示上述字段,算法标识为 SM2 | |
| 2 | 在 Pad 设备注册页点击"点我扫码导入服务器配置文件"按钮 | APP 调用摄像头,进入二维码扫描界面 | |
| 3 | 对准服务器生成的二维码扫描 | APP 自动解析二维码内容,导入服务器配置信息及服务器公钥 | |
| 4 | 查看导入结果及校验提示 | 系统对导入数据进行合法性校验(时间戳有效性、公钥格式),校验通过后提示导入成功,完成服务器公钥初始化 | |
| 5 | 返回设备注册页,查看当前服务器的设备标识、服务器公钥等注册信息展示 | 页面正确展示已导入的服务器标识与服务器公钥摘要信息 |
用例 ZC03:客户端密钥生成与注册文件导出
| 字段 | 内容 |
|---|---|
| 测试项 | 设备注册与密钥交换 |
| 测试用例名称 | 客户端密钥生成与 .dat 注册文件导出 |
| 测试用例标识 | GN_QXJ20260801_YL_ZC03 |
| 测试内容 | 测试 APP 自动生成设备 SM2 密钥对与设备唯一标识,并导出包含设备身份与公钥的 .dat 注册文件 |
| 测试数据 | 无 |
| 测试用例初始化 | 已完成 ZC02 服务器公钥导入 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在设备注册页查看本机设备信息 | 页面展示 APP 自动提取的设备唯一标识(产品序列号)及密钥状态 | |
| 2 | 检查设备密钥对生成情况(签名密钥对、加密密钥对) | APP 已在鸿蒙系统加密目录中生成 SM2 签名密钥对与加密密钥对,私钥不可导出 | |
| 3 | 点击"点我导出文件"按钮 | 系统自动生成包含客户端设备身份、设备 ID、客户端公钥等注册信息的配置文件,并弹出文件保存窗口 | |
| 4 | 选择保存路径,完成 .dat 文件导出 | 导出成功,存储目录中可查看到 .dat 注册文件,文件内容包含设备 ID、公钥、时间戳等字段 |
用例 ZC04:上传注册文件完成设备注册
| 字段 | 内容 |
|---|---|
| 测试项 | 设备注册与密钥交换 |
| 测试用例名称 | 注册文件上传与设备注册 |
| 测试用例标识 | GN_QXJ20260801_YL_ZC04 |
| 测试内容 | 测试将 .dat 注册文件上传至服务器,由服务器完成设备身份注册及密钥交换,建立双向可信关联 |
| 测试数据 | ZC03 导出的 .dat 注册文件 |
| 测试用例初始化 | 已完成 ZC03;管理员已登录 MCS 后台管理页面 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 将 .dat 注册文件拷贝至测试机,在 MCS 后台管理页面上传该注册文件 | 后台成功读取并解析注册文件,展示文件中的设备 ID、客户端公钥等信息 | |
| 2 | 确认提交注册 | 服务器验证导出文件中的设备信息(设备 ID 合法性、公钥格式、时间戳),验证通过后完成设备身份注册 | |
| 3 | 在后台【设备管理】页面查看设备列表 | 设备列表中新增该 Pad 设备记录,设备状态为"激活",注册时间正确 | |
| 4 | 在 Pad 端重新进入设备注册页查看注册状态 | 页面提示设备注册/密钥交换已完成,密钥状态显示"有效";再次启动 APP 无需重复注册 |
用例 ZC05:管理员辅助注册(二维码方式)
| 字段 | 内容 |
|---|---|
| 测试项 | 设备注册与密钥交换 |
| 测试用例名称 | 管理员辅助注册 |
| 测试用例标识 | GN_QXJ20260801_YL_ZC05 |
| 测试内容 | 测试管理员通过辅助注册页生成携带设备信息的二维码,提交服务端完成设备注册与双向密钥认证 |
| 测试数据 | 未注册 Pad 1 台 |
| 测试用例初始化 | 管理员已登录 MCS 后台;待注册 Pad 已安装 APP 并完成服务器公钥导入 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 进入后台【辅助注册】页面,查看"本机密钥"板块 | 展示密钥类型、设备 ID、十进制时间戳和密钥状态,密钥状态显示为有效/待绑定 | |
| 2 | 查看"本机密钥二维码"板块,系统自动生成携带设备信息的 JSON 字符串与二维码 | 页面正确展示 JSON 字符串与二维码图片 | |
| 3 | 分别执行"复制 JSON""复制文本内容""下载二维码""刷新二维码"操作 | 四项操作均成功:剪贴板获得对应内容、二维码图片下载到本地、刷新后二维码更新时间戳 | |
| 4 | 将导出的设备注册信息(二维码/JSON)提交到服务端,服务器读取设备 ID 和时间戳完成设备注册 | 服务器完成设备注册和双向密钥认证,本机密钥状态更新为"有效",【设备管理】列表出现该设备 |
5.2 身份认证登录类(4 个)
用例 DL01:短信验证码获取
| 字段 | 内容 |
|---|---|
| 测试项 | 身份认证登录 |
| 测试用例名称 | 短信验证码获取 |
| 测试用例标识 | GN_QXJ20260801_YL_DL01 |
| 测试内容 | 测试登录页支持向服务端申请短信验证码(对应 FR_2_1 短信验证码鉴别技术) |
| 测试数据 | 已激活账号 testuser01,绑定手机号 138****0001 |
| 测试用例初始化 | 设备已完成注册;APP 处于登录页 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在登录页账号输入框填写 testuser01 | 账号输入正常 | |
| 2 | 点击验证码栏右侧"获取"按钮 | 客户端向服务端 /api/v3/ 验证码接口发起申请,按钮进入倒计时状态,倒计时期间不可重复点击 | |
| 3 | 查看绑定手机接收短信情况 | 绑定手机号收到服务端下发的短信验证码,验证码为规定位数的随机数字 | |
| 4 | 不填写账号直接点击"获取"按钮 | 系统提示需先填写账号,不发送验证码 |
用例 DL02:口令 + 短信验证码正常登录(多因子认证 + SM2 签名 + token 签发)
| 字段 | 内容 |
|---|---|
| 测试项 | 身份认证登录 |
| 测试用例名称 | 多因子正常登录 |
| 测试用例标识 | GN_QXJ20260801_YL_DL02 |
| 测试内容 | 测试账号 + 口令 + 短信验证码三要素登录全流程:设备签名(SM2)、口令加密保护、服务端验签与身份验证、token(access + refresh)签发、会话密钥协商 |
| 测试数据 | 已激活账号 testuser01 及正确口令;DL01 获取的有效验证码 |
| 测试用例初始化 | 设备已完成注册且状态为激活;已在登录页获取有效验证码;测试机开启抓包 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在登录页填写账号、短信验证码、口令,点击提交 | 客户端自动获取设备唯一标识 ID、当前时间戳 T、随机数 rand1,用设备签名私钥完成 SM2 签名 sign(ID,T,rand1),并用设备加密私钥对口令加密保护后提交 | |
| 2 | 服务端接收登录请求并校验 | 服务端依次验证时间戳有效性、通过设备公钥完成 SM2 验签(验证设备身份)、解密口令、校验用户名 + 口令 + 验证码三要素,全部通过 | |
| 3 | 查看服务端下发的登录响应 | 服务端生成并返回 token(access token + refresh token)及服务端密钥材料(加密后的 rand1/rand2 与服务端签名) | |
| 4 | 客户端处理响应 | 客户端存储 token,验签并解密出 rand2,通过 HKDF(ID,rand1,rand2) 派生本次会话密钥,页面提示登录成功并跳转系统首页,首页展示当前登录用户 | |
| 5 | 查看抓包数据 | 传输过程中口令为密态,登录请求与响应均不含明文口令与明文会话密钥 |
用例 DL03:登录失败处理(错误口令 / 错误验证码)
| 字段 | 内容 |
|---|---|
| 测试项 | 身份认证登录 |
| 测试用例名称 | 登录失败处理 |
| 测试用例标识 | GN_QXJ20260801_YL_DL03 |
| 测试内容 | 测试口令错误、验证码错误时系统拒绝登录并给出对应提示;多次错误后账号自动冻结(对应 FR_3_4) |
| 测试数据 | 已激活账号 testuser02 及错误口令、过期/错误验证码 |
| 测试用例初始化 | 设备已注册;APP 处于登录页 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 填写正确账号、正确验证码、错误口令,提交登录 | 登录失败,页面提示口令错误,不签发 token,停留在登录页 | |
| 2 | 填写正确账号、错误验证码、正确口令,提交登录 | 登录失败,页面提示验证码错误或失效 | |
| 3 | 使用错误口令连续登录,直至达到系统设定的错误次数阈值 | 达到阈值后账号被自动冻结,再次登录时提示账号已冻结 | |
| 4 | 管理员在后台【用户管理】页面查看该账号状态 | 账号状态显示为"冻结",可由管理员执行激活恢复 |
用例 DL04:未注册设备与未登录访问控制(重定向)
| 字段 | 内容 |
|---|---|
| 测试项 | 身份认证登录 |
| 测试用例名称 | 未授权访问重定向 |
| 测试用例标识 | GN_QXJ20260801_YL_DL04 |
| 测试内容 | 测试无 token 或 token 失效时访问 MCS 业务页面被 HTTP 302 重定向至鉴权登录页;未注册设备无法通过认证 |
| 测试数据 | 未注册 Pad 1 台(或已注册 Pad 清除 token) |
| 测试用例初始化 | MCS 服务正常运行;测试机开启抓包 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在已注册 Pad 上清除本地 token 后,直接访问 MCS 业务页面地址 | MCS 后台校验无 token,反馈 HTTP 302,浏览器自动重定向至鉴权系统登录认证页 | |
| 2 | 使用已过期的 token 访问 MCS 业务页面 | token 验证接口判定失效,同样返回 302 重定向至登录页 | |
| 3 | 在未注册 Pad 上访问 MCS 并尝试登录 | 设备验签不通过,认证失败,提示设备未注册/不被信任,无法进入系统 | |
| 4 | 查看抓包数据确认重定向流程 | 抓包可见 302 状态码及 location 字段指向鉴权系统地址,敏感页面未返回业务数据 |
5.3 用户管理类(4 个)
用例 YH01:新增用户
| 字段 | 内容 |
|---|---|
| 测试项 | 用户管理 |
| 测试用例名称 | 新增用户 |
| 测试用例标识 | GN_QXJ20260801_YL_YH01 |
| 测试内容 | 测试管理员创建系统登录账号(对应 FR_3_1、FR_3_2) |
| 测试数据 | 用户名 newuser01、真实姓名"测试员甲"、邮箱 newuser01@test.cn、手机号 139****0002、用户等级"普通用户"、初始口令 |
| 测试用例初始化 | 管理员已登录后台,进入【用户管理】页面 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【用户管理】页面点击添加按钮,填写用户名、真实姓名、邮箱、手机号、用户等级、初始口令后提交 | 弹框提示用户创建成功 | |
| 2 | 在用户列表(列表表格视图)查看新增记录 | 列表新增 newuser01 记录,字段包含用户名、真实姓名、绑定邮箱、手机号码、用户级别、账号状态、最后登录时间 | |
| 3 | 在数据库中核查该用户口令存储形态 | 口令以加密(杂凑)形态存储,无明文口令 | |
| 4 | 使用新账号在 Pad 端登录 | 新账号可正常完成登录,权限与其用户等级匹配 |
用例 YH02:修改用户信息
| 字段 | 内容 |
|---|---|
| 测试项 | 用户管理 |
| 测试用例名称 | 修改用户信息 |
| 测试用例标识 | GN_QXJ20260801_YL_YH02 |
| 测试内容 | 测试管理员修改用户资料、调整用户等级(对应 FR_3_1) |
| 测试数据 | 将 newuser01 的手机号修改为 139****0003,用户等级由"普通用户"调整为"高级用户" |
| 测试用例初始化 | 管理员已登录后台;用户 newuser01 已存在 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【用户管理】卡片详情视图左侧列表选中 newuser01 | 页面右侧展示该账号的基本信息(用户 ID、用户名、真实姓名、邮箱、手机号、用户等级)与状态信息(启用状态、状态描述、账号到期时间) | |
| 2 | 点击编辑按钮,修改手机号与用户等级后保存 | 弹框提示修改成功 | |
| 3 | 重新查看该用户详情与用户列表 | 详情与列表中的手机号、用户级别均为修改后的内容 |
用例 YH03:用户注销与删除
| 字段 | 内容 |
|---|---|
| 测试项 | 用户管理 |
| 测试用例名称 | 用户注销与删除 |
| 测试用例标识 | GN_QXJ20260801_YL_YH03 |
| 测试内容 | 测试管理员注销/删除账号,注销后账号无法登录(对应 FR_3_2) |
| 测试数据 | 待注销账号 newuser01 |
| 测试用例初始化 | 管理员已登录后台;newuser01 存在且为激活状态 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【用户管理】页面选中 newuser01,点击删除/注销按钮 | 系统弹出二次确认提示 | |
| 2 | 确认删除 | 弹框提示注销成功,用户列表中不再显示该账号(或状态置为"禁用/已注销") | |
| 3 | 使用该账号在 Pad 端尝试登录 | 登录失败,提示账号不存在或已注销 |
用例 YH04:用户状态管理与批量操作
| 字段 | 内容 |
|---|---|
| 测试项 | 用户管理 |
| 测试用例名称 | 用户状态管理与批量操作 |
| 测试用例标识 | GN_QXJ20260801_YL_YH04 |
| 测试内容 | 测试用户激活、冻结、禁用状态调整及管理员批量激活、注销、禁用操作(对应 FR_3_4、FR_3_5) |
| 测试数据 | 测试账号 batch01~batch05 |
| 测试用例初始化 | 管理员已登录后台;batch01~batch05 已创建 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 选中 batch01,将其状态调整为"冻结" | 状态修改成功;使用 batch01 登录被拒绝并提示账号已冻结 | |
| 2 | 将 batch01 恢复为"激活" | 状态恢复成功,batch01 可正常登录 | |
| 3 | 在列表表格视图勾选 batch02~batch05,执行批量禁用 | 4 个账号状态批量变更为"禁用",列表状态列同步更新 | |
| 4 | 勾选 batch02~batch05,执行批量激活 | 4 个账号状态批量恢复为"激活",均可正常登录 |
5.4 角色管理类(3 个)
用例 JS01:新增角色
| 字段 | 内容 |
|---|---|
| 测试项 | 角色管理 |
| 测试用例名称 | 新增角色 |
| 测试用例标识 | GN_QXJ20260801_YL_JS01 |
| 测试内容 | 测试新建自定义角色并设定权限范围(对应 FR_2_2、FR_3_3) |
| 测试数据 | 角色名称"观测审核员"、功能描述、权限范围(观测需求申请查看+审核) |
| 测试用例初始化 | 管理员已登录后台,进入【角色管理】页面 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【角色管理】页面点击添加按钮,填写角色名称、功能描述,勾选权限范围后保存 | 弹框提示角色创建成功 | |
| 2 | 在卡片详情视图左侧角色列表查看 | 列表中出现"观测审核员"条目及权限简介 | |
| 3 | 选中该角色查看右侧详情 | 详情包含角色名称、功能描述、权限范围、关联用户、可访问区域、时间限制、创建时间 | |
| 4 | 切换至列表表格视图 | 表格字段包含角色名称、描述内容、关联用户、关联区域、时间限制、创建时间和操作按钮 |
用例 JS02:编辑角色与绑定用户
| 字段 | 内容 |
|---|---|
| 测试项 | 角色管理 |
| 测试用例名称 | 编辑角色与绑定用户 |
| 测试用例标识 | GN_QXJ20260801_YL_JS02 |
| 测试内容 | 测试修改角色权限、绑定用户、限定访问区域与登录时段(对应 FR_2_2、FR_2_4) |
| 测试数据 | 角色"观测审核员";绑定用户 testuser01;关联区域"北京主站区域";关联时间段"工作日 9:00-18:00" |
| 测试用例初始化 | JS01 已完成;区域与时间段已预先配置(见 FK01、FK03) |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 选中"观测审核员"角色,点击编辑,修改权限范围并保存 | 弹框提示修改成功,详情中权限范围更新 | |
| 2 | 在角色编辑中绑定用户 testuser01 | 绑定成功,角色详情"关联用户"中出现 testuser01 | |
| 3 | 为角色限定可访问区域"北京主站区域"、登录时段"工作日 9:00-18:00" | 设置成功,详情中"可访问区域""时间限制"同步展示 | |
| 4 | 使用 testuser01 登录系统,核查其可用功能 | testuser01 仅可使用其角色权限范围内的功能,越权功能入口不可见或访问被拒 |
用例 JS03:删除角色
| 字段 | 内容 |
|---|---|
| 测试项 | 角色管理 |
| 测试用例名称 | 删除角色 |
| 测试用例标识 | GN_QXJ20260801_YL_JS03 |
| 测试内容 | 测试删除自定义角色及其对关联用户的影响 |
| 测试数据 | 角色"观测审核员"(已解除用户绑定) |
| 测试用例初始化 | 管理员已登录后台;角色存在且无绑定用户 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 选中"观测审核员"角色,点击删除按钮 | 系统弹出二次确认提示 | |
| 2 | 确认删除 | 弹框提示删除成功,角色列表中不再显示该角色 | |
| 3 | 尝试删除系统内置"管理员"角色 | 系统拒绝删除内置角色并给出提示 |
5.5 设备管理类(4 个)
用例 SB01:设备信息查看
| 字段 | 内容 |
|---|---|
| 测试项 | 设备管理 |
| 测试用例名称 | 设备信息查看 |
| 测试用例标识 | GN_QXJ20260801_YL_SB01 |
| 测试内容 | 测试管理员查看全部已注册设备信息(卡片/列表两种视图)(对应 FR_4_1) |
| 测试数据 | 无 |
| 测试用例初始化 | 管理员已登录后台;至少有 2 台已完成注册的设备 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 进入【设备管理】页面(卡片详情视图),查看左侧设备列表 | 列表展示所有已完成注册的设备名称及激活状态 | |
| 2 | 选中一条设备条目,查看右侧详细资料 | 右侧展示该设备的基本信息与网络信息两大模块,参数完整 | |
| 3 | 点击视图切换按钮切换为列表表格视图 | 以表格批量展示全部注册设备,字段包含设备唯一标识、设备名称、设备类型、重要程度、设备状态、注册时间及操作选项 | |
| 4 | 使用页面底部分页控件切换页码 | 分页正常,可查看更多设备条目,数据无重复无遗漏 |
用例 SB02:编辑设备信息
| 字段 | 内容 |
|---|---|
| 测试项 | 设备管理 |
| 测试用例名称 | 编辑设备信息 |
| 测试用例标识 | GN_QXJ20260801_YL_SB02 |
| 测试内容 | 测试管理员修改设备备注与重要等级(对应 FR_4_1) |
| 测试数据 | 备注"外场试验用机";重要等级"重要" |
| 测试用例初始化 | 管理员已登录后台;目标设备已注册 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【设备管理】页面选中目标设备,点击编辑按钮 | 弹出编辑框,展示当前设备备注与重要等级 | |
| 2 | 修改备注为"外场试验用机"、重要等级为"重要",保存 | 弹框提示修改成功 | |
| 3 | 重新查看设备详情与列表 | 设备备注与重要等级均更新为修改后内容 |
用例 SB03:手动新增设备
| 字段 | 内容 |
|---|---|
| 测试项 | 设备管理 |
| 测试用例名称 | 手动新增设备 |
| 测试用例标识 | GN_QXJ20260801_YL_SB03 |
| 测试内容 | 测试管理员手动新增设备信息(对应 FR_4_1、FR_4_2 管理员注册设备) |
| 测试数据 | 设备唯一标识(产品序列号)SN20260801001、设备名称"测试 Pad-03"、设备类型"观测需求专用终端"、资产责任人"测试员乙"、联系方式 |
| 测试用例初始化 | 管理员已登录后台【设备管理】页面 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 点击添加设备按钮,填写设备唯一标识、设备名称、设备类型、资产责任人、联系方式后提交 | 弹框提示设备添加成功 | |
| 2 | 在设备列表查看新增记录 | 列表新增"测试 Pad-03"记录,注册时间正确,状态为初始状态 | |
| 3 | 使用相同设备唯一标识再次新增 | 系统提示设备唯一标识重复,拒绝重复录入 |
用例 SB04:设备解绑与状态管理
| 字段 | 内容 |
|---|---|
| 测试项 | 设备管理 |
| 测试用例名称 | 设备解绑与状态管理 |
| 测试用例标识 | GN_QXJ20260801_YL_SB04 |
| 测试内容 | 测试管理员删除(解绑)设备及设备激活、挂失、禁用等状态调整(对应 FR_4_2) |
| 测试数据 | 已注册设备"测试 Pad-03" |
| 测试用例初始化 | 管理员已登录后台;"测试 Pad-03"存在 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 选中"测试 Pad-03",将其状态调整为"挂失" | 状态修改成功,列表状态列更新为"挂失" | |
| 2 | 使用该设备访问 MCS 系统 | 访问被拒绝,提示设备状态不可用 | |
| 3 | 将设备状态恢复为"激活" | 状态恢复成功,设备可正常接入 | |
| 4 | 选中该设备点击删除按钮并确认 | 弹框提示删除成功,设备完成解绑,设备列表不再显示该设备;该设备再次访问系统被按未注册设备处理 |
5.6 访问控制策略类(5 个)
用例 FK01:区域范围新增(地图划定)
| 字段 | 内容 |
|---|---|
| 测试项 | 访问控制策略 |
| 测试用例名称 | 区域范围新增 |
| 测试用例标识 | GN_QXJ20260801_YL_FK01 |
| 测试内容 | 测试管理员基于地图划定地理区域(对应 FR_2_3 指定地理位置接入访问) |
| 测试数据 | 区域名称"北京主站区域";中心点经纬度(116.30, 39.98);允许半径 5000 米;坐标系 GCJ-02 |
| 测试用例初始化 | 管理员已登录后台,进入【区域范围管理】页面(地图卡片视图) |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 点击添加按钮,进入区域编辑,页面中间加载高德地图 | 地图加载正常,提供开始编辑、结束编辑、放大、缩小按钮 | |
| 2 | 点击开始编辑,在地图上选定中心点并调整覆盖半径为 5000 米,填写区域名称与位置描述后保存 | 地图上以圆形范围可视化展示划定区域,弹框提示保存成功 | |
| 3 | 选中该区域查看右侧完整信息 | 展示基本信息、坐标信息、时间信息,包含地点名称、位置描述、经纬度、坐标系、允许半径 | |
| 4 | 切换至列表表格视图 | 表格依次展示区域名称、位置描述、经度、纬度、坐标系、允许半径、创建时间及操作选项 |
用例 FK02:区域范围编辑与删除
| 字段 | 内容 |
|---|---|
| 测试项 | 访问控制策略 |
| 测试用例名称 | 区域范围编辑与删除 |
| 测试用例标识 | GN_QXJ20260801_YL_FK02 |
| 测试内容 | 测试修改区域参数(位置、半径)及废除区域 |
| 测试数据 | 将"北京主站区域"允许半径由 5000 米修改为 3000 米 |
| 测试用例初始化 | FK01 已完成 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 选中"北京主站区域",点击编辑,在地图上调整区域位置和覆盖半径为 3000 米,保存 | 弹框提示修改成功,地图圆形范围同步缩小,右侧信息栏允许半径更新为 3000 米 | |
| 2 | 再次点击编辑,直接修改经纬度数值后保存 | 修改成功,地图定位随新坐标更新 | |
| 3 | 点击删除按钮并确认废除该区域 | 弹框提示删除成功,区域列表不再显示该区域 |
用例 FK03:时间段策略配置
| 字段 | 内容 |
|---|---|
| 测试项 | 访问控制策略 |
| 测试用例名称 | 时间段策略配置 |
| 测试用例标识 | GN_QXJ20260801_YL_FK03 |
| 测试内容 | 测试新建与维护时间段策略(对应 FR_2_3 特定时间段内访问) |
| 测试数据 | 时间段名称"工作时间";每日 09:00-18:00;每周星期一至星期五生效 |
| 测试用例初始化 | 管理员已登录后台,进入【时间段管理】页面 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 点击添加按钮,填写时间段名称、描述,设置启用状态为启用 | 基本信息保存成功 | |
| 2 | 设置每日起止时间 09:00-18:00,勾选星期一至星期五为生效日,保存 | 时段划分保存成功,页面下方正确展示具体时段配置 | |
| 3 | 点击添加时间段,新增第二条时段(如周六 10:00-12:00) | 第二条时间区间新增成功,与第一条并存展示 | |
| 4 | 单独删除第二条时段配置 | 第二条时段删除成功,第一条不受影响 | |
| 5 | 切换至列表表格视图 | 表格统一展示全部时间段配置及启用状态 |
用例 FK04:角色-地点关联与区域内/外登录验证
| 字段 | 内容 |
|---|---|
| 测试项 | 访问控制策略 |
| 测试用例名称 | 地理位置访问控制 |
| 测试用例标识 | GN_QXJ20260801_YL_FK04 |
| 测试内容 | 测试访问控制策略中角色与区域关联后,仅允许划定地理范围内登录(对应 FR_2_3、FR_2_4) |
| 测试数据 | 角色"区域受限角色"关联区域"北京主站区域"(半径 3000 米);测试账号 areauser01 绑定该角色 |
| 测试用例初始化 | FK01/FK02 区域已配置;访问控制策略管理页完成角色-地点关联;Pad 可上报/模拟定位 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【访问控制策略管理】页面"角色地点关联"标签页,将"区域受限角色"与"北京主站区域"关联并保存 | 关联成功,策略列表展示角色-地点绑定关系 | |
| 2 | 将 Pad 定位在区域范围内(如主站园区),使用 areauser01 登录 | 位置校验通过,登录成功 | |
| 3 | 将 Pad 定位模拟至区域范围外(如异地坐标),使用 areauser01 登录 | 位置校验不通过,登录被拒绝,提示当前位置不在允许接入范围 | |
| 4 | 在【日志】页面查看上述两次登录记录 | 两次访问均留痕,区域外登录失败记录安全级别为中等级 |
用例 FK05:角色-时间关联与时段外登录验证
| 字段 | 内容 |
|---|---|
| 测试项 | 访问控制策略 |
| 测试用例名称 | 时间段访问控制 |
| 测试用例标识 | GN_QXJ20260801_YL_FK05 |
| 测试内容 | 测试访问控制策略中角色与时间段关联后,仅允许设定时段内登录(对应 FR_2_3、FR_2_4) |
| 测试数据 | 角色"时段受限角色"关联时间段"工作时间"(工作日 09:00-18:00);测试账号 timeuser01 绑定该角色 |
| 测试用例初始化 | FK03 时间段已配置;访问控制策略管理页完成角色-时间关联与角色-用户关联 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在【访问控制策略管理】"角色时间关联"标签页,将"时段受限角色"与"工作时间"关联;"角色用户关联"标签页绑定 timeuser01 | 两项关联均保存成功 | |
| 2 | 在允许时段内(工作日 10:00)使用 timeuser01 登录 | 时间校验通过,登录成功 | |
| 3 | 在允许时段外(工作日 20:00 或周末)使用 timeuser01 登录 | 时间校验不通过,登录被拒绝,提示当前时段不允许访问 | |
| 4 | 在【日志】页面查看上述登录记录 | 时段外登录失败留痕,操作用户、访问 IP、操作结果、安全级别字段完整 |
5.7 密钥管理类(3 个)
用例 MY01:密钥生成(国密算法)
| 字段 | 内容 |
|---|---|
| 测试项 | 密钥管理 |
| 测试用例名称 | 密钥生成 |
| 测试用例标识 | GN_QXJ20260801_YL_MY01 |
| 测试内容 | 测试系统采用 SM2/SM4 等国密算法生成密钥,接口标准化(对应 FR_5_1、FR_1_6) |
| 测试数据 | 无 |
| 测试用例初始化 | MCS 服务器运行正常,PCIE 密码卡驱动加载成功;Pad 已安装 APP |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 触发 Pad 端设备密钥对生成(注册流程或重新生成) | 成功生成 SM2 签名密钥对与加密密钥对,密钥长度 256 位,符合 GM/T 0003 | |
| 2 | 通过服务器端密钥管理接口生成 SM4 会话密钥/工作密钥 | 密钥生成成功,随机性满足要求,重复生成无重复密钥 | |
| 3 | 核查密钥生成调用链路 | 密钥运算经由密码卡/密码服务引擎完成,接口符合 GM/T 0018-2012 规范,可与 MCS 系统集成 |
用例 MY02:密钥安全存储
| 字段 | 内容 |
|---|---|
| 测试项 | 密钥管理 |
| 测试用例名称 | 密钥安全存储 |
| 测试用例标识 | GN_QXJ20260801_YL_MY02 |
| 测试内容 | 测试设备私钥与会话密钥的安全存储机制(对应 FR_5_2) |
| 测试数据 | 无 |
| 测试用例初始化 | 设备已完成注册并完成一次登录(会话密钥已派生) |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在 Pad 端检查设备私钥存储位置 | 设备私钥存储于鸿蒙系统加密目录(用户级加密区),APP 沙箱外不可访问 | |
| 2 | 尝试通过文件管理/调试手段导出设备私钥 | 私钥不可导出,无法被非法获取 | |
| 3 | 检查会话密钥存储 | 协商出的会话密钥存储于操作系统系统加密目录,网页侧(Webview)不持久化敏感数据 | |
| 4 | 卸载并重装 APP 后检查密钥状态 | 原密钥被清除,需重新执行设备注册流程 |
用例 MY03:三级密钥体系与密钥分发/撤销
| 字段 | 内容 |
|---|---|
| 测试项 | 密钥管理 |
| 测试用例名称 | 三级密钥体系与密钥分发撤销 |
| 测试用例标识 | GN_QXJ20260801_YL_MY03 |
| 测试内容 | 测试系统主密钥、设备密钥、会话密钥三级体系及密钥安全分发与撤销(对应 FR_5_3、FR_5_4、FR_5_5) |
| 测试数据 | 无 |
| 测试用例初始化 | MCS 服务器与已注册 Pad 均在线 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 核查系统密钥层级 | 系统具备系统主密钥(保护密钥材料)、设备密钥(注册期建立)、会话密钥(登录期派生)三级体系,层级保护关系正确 | |
| 2 | 执行一次完整登录,核查会话密钥分发过程 | 会话密钥经密钥交换协议(加密传输 rand1/rand2)分发,传输全程无明文密钥,双方派生结果一致 | |
| 3 | 管理员在后台撤销某设备密钥(或删除设备) | 撤销生效,该设备无法再通过身份认证,继续使用旧密钥材料的请求被拒绝 | |
| 4 | 重新注册该设备并登录 | 建立全新设备密钥与会话密钥,业务恢复正常 |
5.8 日志管理类(2 个)
用例 RZ01:日志查看与筛选
| 字段 | 内容 |
|---|---|
| 测试项 | 日志管理 |
| 测试用例名称 | 日志查看与筛选 |
| 测试用例标识 | GN_QXJ20260801_YL_RZ01 |
| 测试内容 | 测试安全日志的列表展示与多条件过滤检索 |
| 测试数据 | 测试前执行若干成功/失败操作(登录、密钥查询、策略配置)以产生日志 |
| 测试用例初始化 | 管理员已登录后台;系统已产生多种类型日志 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 进入【日志】页面,查看日志表格 | 表格依次包含 ID、策略/事件名称、日志类型、操作用户、访问 IP 地址、操作结果、安全级别、创建时间字段 | |
| 2 | 使用"日志类型"下拉框过滤 | 列表仅展示所选类型的日志记录 | |
| 3 | 使用"操作结果"下拉框筛选"失败" | 列表仅展示失败记录 | |
| 4 | 使用"安全级别"下拉框筛选"高" | 列表仅展示高等级事件(如重要密钥查询行为) | |
| 5 | 在右上角搜索框输入关键词检索 | 返回匹配关键词的日志记录,检索结果正确 |
用例 RZ02:日志记录完整性审计
| 字段 | 内容 |
|---|---|
| 测试项 | 日志管理 |
| 测试用例名称 | 日志记录完整性审计 |
| 测试用例标识 | GN_QXJ20260801_YL_RZ02 |
| 测试内容 | 测试关键安全事件(登录成功/失败、越权访问、密钥操作、策略变更)均完整留痕且级别划分正确 |
| 测试数据 | 无 |
| 测试用例初始化 | 管理员已登录后台 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 执行一次成功登录、一次口令错误登录 | 日志页新增两条登录日志,操作结果分别为成功、失败;失败记录安全级别为中 | |
| 2 | 执行一次密钥信息查询操作 | 日志页新增高安全级别日志,记录操作用户与时间 | |
| 3 | 执行一次时间段配置查询/常规查询操作 | 日志页新增信息级别日志 | |
| 4 | 执行一次策略变更(如编辑区域) | 日志页新增策略变更日志,事件名称、操作用户、创建时间准确 | |
| 5 | 核查日志防篡改性:普通用户尝试删除日志 | 普通用户无日志删除入口/权限,日志记录不可被非授权删除 |
5.9 传输加密类(3 个)
用例 CS01:MCS 业务数据 SM4-GCM 加密传输
| 字段 | 内容 |
|---|---|
| 测试项 | 传输加密 |
| 测试用例名称 | 业务数据加密传输 |
| 测试用例标识 | GN_QXJ20260801_YL_CS01 |
| 测试内容 | 测试 Pad 与 DMZ 区 MCS 服务之间业务数据采用 SM4-GCM 加密传输(对应 FR_1_1) |
| 测试数据 | 登录后发起的任意业务请求(如用户信息查询) |
| 测试用例初始化 | 设备已注册并完成登录(会话密钥已建立);测试机开启抓包 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 登录成功后,在 Pad 端发起业务数据请求 | 网页端经 JSBridge 调用 ArkTS 加解密接口,使用会话密钥对请求数据完成 SM4-GCM 加密后发出,请求携带 token | |
| 2 | 查看抓包数据 | 链路上传输的请求与响应报文体均为密文,无法读取明文业务内容 | |
| 3 | 服务端处理请求 | 服务端使用相同会话密钥解密成功,业务处理正常,响应同样以密文返回 | |
| 4 | Pad 端接收响应并展示 | 客户端解密成功,网页层正常展示明文业务数据 |
用例 CS02:传输数据完整性保护与篡改检测
| 字段 | 内容 |
|---|---|
| 测试项 | 传输加密 |
| 测试用例名称 | 完整性保护与篡改检测 |
| 测试用例标识 | GN_QXJ20260801_YL_CS02 |
| 测试内容 | 测试通过消息认证码(GCM 认证标签)/数字签名确保传输数据完整性(对应 FR_1_2) |
| 测试数据 | 正常业务报文 1 份;篡改后报文 1 份(修改密文 1 字节) |
| 测试用例初始化 | 已完成登录;测试机部署报文篡改工具(中间人代理) |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 正常发起业务请求,服务端完成完整性校验 | GCM 认证标签校验通过,请求被正常受理 | |
| 2 | 在中间人代理中篡改密文报文任意 1 字节后转发 | 服务端完整性校验失败,拒绝处理该报文并返回错误,不产生脏数据 | |
| 3 | 篡改认证标签后转发 | 校验失败,报文被丢弃 | |
| 4 | 查看服务端日志 | 篡改事件留痕,记录来源、时间与失败原因 |
用例 CS03:商用密码算法合规性核查
| 字段 | 内容 |
|---|---|
| 测试项 | 传输加密 |
| 测试用例名称 | 国密算法合规性 |
| 测试用例标识 | GN_QXJ20260801_YL_CS03 |
| 测试内容 | 核查系统全链路采用 SM2/SM3/SM4 国密算法(对应 FR_1_6) |
| 测试数据 | 无 |
| 测试用例初始化 | 系统正常运行;具备算法配置与日志检查权限 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 核查设备注册与登录认证环节算法 | 密钥协商、签名验签采用 SM2(符合 GM/T 0003),辅助注册页服务器信息板块标注加密算法 SM2 | |
| 2 | 核查数据加密环节算法 | 业务数据加密采用 SM4(GCM 模式,符合 GM/T 0002),未使用 DES/AES-ECB 等不合规算法或模式 | |
| 3 | 核查完整性/口令保护环节算法 | 杂凑运算采用 SM3(符合 GM/T 0004),口令等敏感信息以 SM3 杂凑存储 | |
| 4 | 核查密码设备接口 | 密码卡调用符合 GM/T 0018-2012《密码设备应用接口规范》 |
5.10 观测需求传输类(2 个)
用例 GC01:观测需求申请加密提交与回复
| 字段 | 内容 |
|---|---|
| 测试项 | 观测需求传输 |
| 测试用例名称 | 观测需求申请加密传输 |
| 测试用例标识 | GN_QXJ20260801_YL_GC01 |
| 测试内容 | 测试合法用户使用注册且激活的设备提交观测需求申请并接收加密回复(对应 FR_1_1、FR_1_3、FR_4_2) |
| 测试数据 | 观测需求申请单 1 份(观测目标、时段、频次等字段) |
| 测试用例初始化 | 设备已注册激活;用户已登录且具备观测需求申请权限 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在 Pad 端进入观测需求申请页面,填写申请单并提交 | 申请信息使用会话密钥加密后经安全通道提交至 DMZ 区观测需求申请服务,携带有效 token | |
| 2 | 服务端接收并处理申请 | token 验证与设备状态校验通过,服务端解密成功并受理申请 | |
| 3 | 查看服务端返回的申请回复 | 回复信息加密返回,Pad 端解密展示回复内容(受理状态/需求编号) | |
| 4 | 抓包核查传输过程 | 申请与回复报文全程密文,无明文泄露 |
用例 GC02:非法设备访问观测需求服务被拒
| 字段 | 内容 |
|---|---|
| 测试项 | 观测需求传输 |
| 测试用例名称 | 非法设备访问拦截 |
| 测试用例标识 | GN_QXJ20260801_YL_GC02 |
| 测试内容 | 测试合法用户使用未注册/已禁用设备无法访问观测需求申请服务(对应 FR_4_2) |
| 测试数据 | 未注册 Pad 1 台;已禁用设备 1 台 |
| 测试用例初始化 | MCS 服务正常;准备两类非法设备 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在未注册 Pad 上安装 APP 并直接访问观测需求申请服务地址 | 设备身份鉴别失败,被重定向至鉴权流程且无法通过,服务数据不返回 | |
| 2 | 将已注册设备在后台置为"禁用",用合法账号在该设备上登录并申请观测需求 | 设备状态校验不通过,登录/申请被拒绝并提示设备已禁用 | |
| 3 | 查看服务端日志 | 两类非法访问均留痕,记录设备标识、访问时间与拒绝原因 |
5.11 图像水印类(3 个)
用例 SY01:图片水印嵌入(JPG)
| 字段 | 内容 |
|---|---|
| 测试项 | 图像水印 |
| 测试用例名称 | 水印嵌入 |
| 测试用例标识 | GN_QXJ20260801_YL_SY01 |
| 测试内容 | 测试根据版权标识、图片生成时间生成水印并以不可见方式嵌入 JPG 卫星图片(对应 FR_6_1、FR_6_3) |
| 测试数据 | 风云四号 C 星 JPG 格式卫星图片若干张;版权标识"国家气象中心" |
| 测试用例初始化 | 管理员已登录水印模块;图片已按日期归集 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 进入【水印模块】气象卫星水印图片列表页面 | 页面按日期归集展示图片合集,表格包含日期、图片数量、操作三列 | |
| 2 | 点击某行"查看当日图片"按钮,进入当天图片详情页 | 当日卫星图片正常预览 | |
| 3 | 选择图片执行"批量嵌入水印"操作 | 系统根据版权标识、图片生成时间生成水印信息并以不可见方式嵌入,处理后图片视觉上与原图无明显差异 | |
| 4 | 执行批量下载,获取嵌入水印后的图片 | 图片下载成功,文件可正常打开 |
用例 SY02:图片水印提取与检测
| 字段 | 内容 |
|---|---|
| 测试项 | 图像水印 |
| 测试用例名称 | 水印提取与检测 |
| 测试用例标识 | GN_QXJ20260801_YL_SY02 |
| 测试内容 | 测试对嵌入水印的准确提取与水印检测工具(对应 FR_6_2) |
| 测试数据 | SY01 嵌入水印的 JPG 图片;未嵌入水印的对照图片 |
| 测试用例初始化 | SY01 已完成 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在水印模块点击"水印工具"按钮,上传已嵌入水印的图片 | 工具检出图片包含水印 | |
| 2 | 执行水印提取 | 准确提取出水印信息,内容包含版权标识"国家气象中心"与图片生成时间,与嵌入时信息一致 | |
| 3 | 上传未嵌入水印的对照图片进行检测 | 工具提示图片不含水印信息,无误报 |
用例 SY03:PNG 格式兼容与接口库核查
| 字段 | 内容 |
|---|---|
| 测试项 | 图像水印 |
| 测试用例名称 | 多格式兼容与接口库 |
| 测试用例标识 | GN_QXJ20260801_YL_SY03 |
| 测试内容 | 测试水印嵌入/提取兼容 PNG 格式,接口库支持 Linux 并提供 C 和 Python 接口(对应 FR_6_3、FR_6_4) |
| 测试数据 | PNG 格式卫星图片若干张 |
| 测试用例初始化 | 测试机可访问部署于 Linux 的水印接口库 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 对 PNG 图片执行水印嵌入与提取(页面或接口调用) | PNG 图片水印嵌入、提取均成功,提取信息与嵌入信息一致 | |
| 2 | 在 Linux 环境调用水印 C 接口库执行嵌入/提取 | C 接口调用成功,返回结果正确 | |
| 3 | 在 Linux 环境调用水印 Python 接口库执行嵌入/提取 | Python 接口调用成功,返回结果正确,与 C 接口结果一致 |
5.12 L0 数据溯源及篡改检测类(2 个)
用例 L001:L0 数据封装(唯一标识生成)
| 字段 | 内容 |
|---|---|
| 测试项 | L0 溯源篡改检测 |
| 测试用例名称 | L0 数据封装 |
| 测试用例标识 | GN_QXJ20260801_YL_L001 |
| 测试内容 | 测试 L0 数据封装接口为传输 L0 数据的系统生成唯一标识信息(对应 FR_7_1) |
| 测试数据 | L0 数据文件 1 份 |
| 测试用例初始化 | L0 数据溯源及篡改检测接口库已在 Linux 环境部署 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 调用 L0 数据封装接口(C 接口),传入 L0 数据文件 | 接口为数据生成唯一标识信息并完成封装,输出封装后数据 | |
| 2 | 对同一数据再次封装 | 两次封装均成功,标识信息与数据来源绑定,封装过程不破坏原数据内容 | |
| 3 | 调用 Python 接口执行同样封装 | Python 接口封装成功,与 C 接口行为一致(对应 FR_7_3) |
用例 L002:L0 数据解封装与篡改检测
| 字段 | 内容 |
|---|---|
| 测试项 | L0 溯源篡改检测 |
| 测试用例名称 | L0 数据解封装与篡改检测 |
| 测试用例标识 | GN_QXJ20260801_YL_L002 |
| 测试内容 | 测试 L0 数据解封装接口逆运算提取唯一标识、验证来源真实性,并检测数据篡改(对应 FR_7_2) |
| 测试数据 | L001 封装后的 L0 数据;篡改后的封装数据(修改数据区 1 字节) |
| 测试用例初始化 | L001 已完成 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 调用 L0 数据解封装接口,传入正常封装数据 | 接口成功逆运算提取系统唯一标识信息,验证数据来源真实可靠,还原数据与原始 L0 数据一致 | |
| 2 | 传入篡改后的封装数据 | 解封装校验失败,接口报告数据被篡改/来源不可信 | |
| 3 | 传入未封装/伪造数据 | 接口拒绝处理并返回明确错误,不误判为可信数据 |
5.13 主备站传输类(2 个)
用例 ZB01:主站→灾备站重要信息加密传输
| 字段 | 内容 |
|---|---|
| 测试项 | 主备站传输 |
| 测试用例名称 | 主备站加密传输 |
| 测试用例标识 | GN_QXJ20260801_YL_ZB01 |
| 测试内容 | 测试北京主站 MCS 与乌兰察布灾备站 MCS 之间任务时间表、调度令、公共配置参数的端到端加密传输(对应 FR_1_1) |
| 测试数据 | 任务时间表 1 份、调度令 1 份、公共配置参数 1 份 |
| 测试用例初始化 | 主站与灾备站 MCS 服务均正常运行,主备加密通道已建立;测试机开启抓包 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 在主站触发任务时间表向灾备站的传输 | 数据经端到端加密通道发出,灾备站成功接收并解密,内容完整一致 | |
| 2 | 触发调度令传输 | 灾备站成功接收,调度令字段无丢失无错乱 | |
| 3 | 触发公共配置参数传输 | 灾备站成功接收并生效,参数值与主站一致 | |
| 4 | 查看主备站间链路抓包数据 | 传输报文全程密文,无明文任务时间表/调度令内容泄露 |
用例 ZB02:主备站传输完整性与异常处理
| 字段 | 内容 |
|---|---|
| 测试项 | 主备站传输 |
| 测试用例名称 | 主备站传输完整性校验 |
| 测试用例标识 | GN_QXJ20260801_YL_ZB02 |
| 测试内容 | 测试主备站传输的完整性保护(MAC/数字签名)与传输中断异常处理(对应 FR_1_2) |
| 测试数据 | 任务时间表 1 份 |
| 测试用例初始化 | ZB01 已完成;具备链路篡改与中断模拟条件 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 正常传输任务时间表,灾备站完成完整性校验 | MAC/签名校验通过,数据落库 | |
| 2 | 在链路上篡改报文后转发 | 灾备站完整性校验失败,拒绝接收并告警,不写入脏数据 | |
| 3 | 传输过程中模拟链路中断后恢复 | 系统具备重传/续传或失败告警机制,恢复后可重新完成完整传输,主备两侧数据最终一致 | |
| 4 | 查看主站与灾备站日志 | 正常、篡改、中断事件均留痕,记录时间与处置结果 |
六、性能效率测试用例(3 个)
性能指标依据技术要求 PR 表:SM2 签名 ≥2000 次/s、SM2 验签 ≥1000 次/s(PR_2_2);SM4 ECB 加解密 ≥7Gbps(PR_1_2);SM3 杂凑 ≥1.5Gbps(PR_1_1)。各用例公共字段同第五章(被测软件版本 V1.0,通过准则为"实际测试结果与期望测试结果一致")。
用例 XN01:SM2 签名/验签性能
| 字段 | 内容 |
|---|---|
| 测试项 | 性能效率——SM2 签名/验签性能 |
| 测试用例名称 | SM2 签名验签性能测试 |
| 测试用例标识 | XN_QXJ20260801_YL_XN01 |
| 测试内容 | 测试用户身份认证所采用的 SM2 签名 ≥2000 次/s、SM2 验签 ≥1000 次/s(对应 PR_2_2) |
| 测试数据 | 固定长度测试报文(如 1KB);SM2 测试密钥对 |
| 测试用例初始化 | MCS 服务器空载;密码卡驱动正常;性能测试工具部署于测试机并经万兆/千兆网接入 |
| 前提与约束 | 测试期间服务器不承载其他业务 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 使用性能测试工具调用密码服务引擎 SM2 签名接口,持续施压 60s,统计每秒成功签名次数 | SM2 签名速率 ≥2000 次/s,无失败、无异常报错 | |
| 2 | 调用 SM2 验签接口,持续施压 60s,统计每秒成功验签次数 | SM2 验签速率 ≥1000 次/s,无失败 | |
| 3 | 记录测试过程 CPU、内存占用 | 服务器资源占用处于正常范围,无内存泄漏迹象 |
用例 XN02:SM4/SM3 算法吞吐性能
| 字段 | 内容 |
|---|---|
| 测试项 | 性能效率——SM4 加解密 / SM3 杂凑吞吐 |
| 测试用例名称 | SM4/SM3 算法吞吐测试 |
| 测试用例标识 | XN_QXJ20260801_YL_XN02 |
| 测试内容 | 测试 SM4 ECB 加解密速率 ≥7Gbps(PR_1_2)、SM3 杂凑速率 ≥1.5Gbps(PR_1_1) |
| 测试数据 | 大文件数据源(≥10GB 连续数据流) |
| 测试用例初始化 | 密码卡就绪;吞吐测试工具部署于被测服务器本机(消除网络瓶颈) |
| 前提与约束 | 测试期间服务器不承载其他业务 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 调用密码卡 SM4 ECB 加密接口,对连续数据流加密,统计吞吐率 | SM4 ECB 加密吞吐 ≥7Gbps | |
| 2 | 调用 SM4 ECB 解密接口,统计解密吞吐率 | SM4 ECB 解密吞吐 ≥7Gbps,加解密结果一致 | |
| 3 | 调用 SM3 杂凑接口,对连续数据流计算杂凑,统计吞吐率 | SM3 杂凑吞吐 ≥1.5Gbps | |
| 4 | 核查 SM4-GCM 业务加密模式下的实际业务吞吐 | GCM 模式吞吐满足 MCS 业务峰值传输需求,业务无积压 |
用例 XN03:并发登录与密钥协商处理能力
| 字段 | 内容 |
|---|---|
| 测试项 | 性能效率——并发登录/密钥协商 |
| 测试用例名称 | 并发登录与密钥协商测试 |
| 测试用例标识 | XN_QXJ20260801_YL_XN03 |
| 测试内容 | 测试鉴权及策略管理子系统在并发场景下的多因子认证与四步 SM2 密钥协商处理能力 |
| 测试数据 | 预置测试账号 200 个(并发用户 100) |
| 测试用例初始化 | 200 个账号已创建并激活,分属不同已注册(模拟)设备;JMeter 压测脚本就绪,模拟完整登录报文(签名+加密口令+验证码绕测开关) |
| 前提与约束 | 压测环境开启验证码测试旁路;测试后清除测试账号与日志 |
| 序号 | 输入及操作说明 | 期望测试结果 | 实际测试结果 |
|---|---|---|---|
| 1 | 以 100 并发用户同时发起登录+密钥协商请求,持续 10 分钟 | 登录成功率 ≥99%,token 正常签发,会话密钥协商全部成功 | |
| 2 | 统计响应时间 | 平均响应时间 ≤2s,95% 响应时间 ≤3s | |
| 3 | 压测期间发起正常业务请求 | 已登录会话业务访问正常,SM4-GCM 加解密无失败 | |
| 4 | 监控服务器 CPU、内存、Redis 与 MySQL 连接数 | 资源占用正常,无连接泄漏,压测结束后资源回落 |
七、补充测试类型(自动化测试与兼容性测试)
第五章功能用例与第六章性能用例构成验收测试主体。为提升回归效率、覆盖多终端环境,建议将以下两类补充测试纳入测试执行范围,测试结果可作为《测试报告》"其他测试说明"附章记录。
7.1 自动化接口测试
测试目标:以 drf-spectacular 生成的 OpenAPI Schema 为契约,对 /api/v3/ 接口建立可重复执行的自动化回归集,在版本迭代、部署更新后快速验证接口可用性,避免手工重复执行。
测试范围与分层:
| 层次 | 测试内容 | 典型检查点 |
|---|---|---|
| 契约层 | 导出 OpenAPI Schema 并做结构校验 | Schema 可正常生成;路径、方法、必填字段与设计一致 |
| 接口层 | 对管理类接口逐个发起单接口请求 | 状态码(200/201/400/401/403/404)、字段类型、分页/过滤/排序、权限拒绝 |
| 场景层 | 串联完整业务链路 | 登录 → 设备注册 → 角色/策略配置 → 加密业务访问 → 退出登录,token 失效与黑名单生效 |
工具与运行方式:使用 Python 自带 pytest 配合 DRF 提供的 APIClient(无需启动真实 HTTP 服务,可在后端仓库内直接运行);Schema 通过管理命令离线导出,不依赖开发模式开关。
# 导出当前代码的 OpenAPI Schema(契约基线)
python manage.py spectacular --file schema.yaml
# 执行全部自动化用例(pytest 发现 tests/ 目录下 test_*.py)
pytest tests/ -v2
3
4
5
自动化用例编写样例(以登录与权限校验为例,可直接放入后端仓库 tests/test_api_smoke.py):
import pytest
from rest_framework.test import APIClient
@pytest.fixture
def api():
return APIClient()
@pytest.mark.django_db
def test_login_returns_token(api, create_user):
# 正常登录:期望 200 且返回 token 字段
resp = api.post(
"/api/v3/user/login/",
{"username": "admin", "password": "Nsp123456!"},
format="json",
)
assert resp.status_code == 200
assert "token" in resp.data
@pytest.mark.django_db
def test_admin_api_rejects_anonymous(api):
# 未登录访问管理接口:期望 401/403,且不泄露数据
resp = api.get("/api/v3/admin/users/")
assert resp.status_code in (401, 403)2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
自动化测试结果记录表(模板):
| 序号 | 自动化测试项 | 覆盖接口/场景 | 用例数 | 通过数 | 失败数 | 结论 |
|---|---|---|---|---|---|---|
| 1 | 契约层 Schema 校验 | 全量 79 个内部 REST 操作 | ||||
| 2 | 认证与验证码接口 | 登录、短信、当前用户 | ||||
| 3 | 管理类 CRUD 接口 | 用户/设备/角色/围栏/时间规则/公钥/日志 | ||||
| 4 | 端到端业务场景 | 登录 → 加密业务 → 退出 → 黑名单 |
持续集成建议:将上述命令纳入 CI 流水线,代码提交后自动执行;契约层 Schema 随版本归档,版本间 Schema diff 可作为接口变更评审依据。
7.2 兼容性测试
测试目标:验证系统管理页面与业务加密通道在主流浏览器、多分辨率及鸿蒙终端环境下功能正常、布局不错位。
测试范围与用例:
| 用例标识 | 测试项 | 测试环境/方法 | 通过标准 |
|---|---|---|---|
| JR01 | 桌面浏览器兼容 | Chrome、Edge、Firefox 最新大版本及其前一版本,访问全部管理页面 | 页面加载、表单提交、弹窗、分页、日期/地图组件功能正常,控制台无阻断性报错 |
| JR02 | 屏幕分辨率适配 | 1920×1080、1366×768 两档分辨率 | 无横向滚动条、表格与表单不溢出、图标不错位 |
| JR03 | 鸿蒙 Pad 终端适配 | 华为 MatePad(ArkWeb 内核)横屏访问,含 /m/* 移动端 UI | 布局适配横屏;JSBridge 6 个方法可用;加密登录与业务访问正常 |
| JR04 | Pad 摄像头与存储能力 | 在真机执行扫码导入、注册文件导出、图片下载 | 权限申请后功能正常,文件可正确保存与读取 |
| JR05 | 弱网与高延迟链路 | 模拟 300 ms 延迟、5% 丢包环境执行登录与业务请求 | 握手/登录可在超时时间内完成或给出明确失败提示,无卡死;失败后可重试 |
| JR06 | TLS 与证书兼容 | 各浏览器与 APP 访问自签名/CA 证书站点 | 证书链校验通过;更换证书后按 2.4 节同步 APP 信任 CA |
兼容性测试结果记录表(模板):
| 测试环境 | 版本 | 测试页面/功能 | 发现问题 | 缺陷级别 | 处置情况 | 结论 |
|---|---|---|---|---|---|---|
| Chrome | (待填) | 全量管理页面 | ||||
| Edge | (待填) | 全量管理页面 | ||||
| Firefox | (待填) | 全量管理页面 | ||||
| MatePad ArkWeb | (待填) | 移动端 UI + JSBridge |
说明:兼容性测试发现的缺陷按 2.5 节缺陷级别定义分级、按四阶段流程闭环管理;1、2 级缺陷须修复并回归通过后方可交付。
八、测试结论与报告模板
8.1 《测试报告》5.1 功能性测试结果表(模板)
执行完成后按实际结果填写"测试结果""评价结果"两列;下表"测试项/测试内容"已与第五章 42 个用例一一对应。
| 序号 | 测试项 | 测试内容 | 测试结果 | 评价结果 | 备注 |
|---|---|---|---|---|---|
| 1 | 设备注册与密钥交换 | 系统支持设置与新增 MCS 服务器连接信息 | (待填) | (待填) | 无 |
| 2 | 系统支持扫码导入服务器公钥并完成合法性校验 | 无 | |||
| 3 | 系统支持自动生成设备 SM2 密钥对与设备标识并导出 .dat 注册文件 | 无 | |||
| 4 | 系统支持上传注册文件完成设备身份注册与密钥交换 | 无 | |||
| 5 | 系统支持管理员辅助注册(二维码/JSON 方式) | 无 | |||
| 6 | 身份认证登录 | 系统支持短信验证码申请与下发 | 无 | ||
| 7 | 系统支持账号+口令+短信验证码多因子登录,完成 SM2 签名验证并签发 token(access+refresh) | 无 | |||
| 8 | 系统对错误口令/错误验证码拒绝登录,多次错误自动冻结账号 | 无 | |||
| 9 | 系统对无 token/失效 token 访问重定向至鉴权页,未注册设备无法通过认证 | 无 | |||
| 10 | 用户管理 | 系统支持管理员新增用户,口令加密存储 | 无 | ||
| 11 | 系统支持修改用户信息与用户等级 | 无 | |||
| 12 | 系统支持注销/删除用户,注销后无法登录 | 无 | |||
| 13 | 系统支持用户激活/冻结/禁用状态管理及批量激活、注销、禁用 | 无 | |||
| 14 | 角色管理 | 系统支持新增自定义角色并设定权限范围 | 无 | ||
| 15 | 系统支持编辑角色权限、绑定用户、限定访问区域与登录时段 | 无 | |||
| 16 | 系统支持删除自定义角色,内置角色禁止删除 | 无 | |||
| 17 | 设备管理 | 系统支持卡片/列表两种视图查看设备信息及分页 | 无 | ||
| 18 | 系统支持编辑设备备注与重要等级 | 无 | |||
| 19 | 系统支持手动新增设备,设备唯一标识查重 | 无 | |||
| 20 | 系统支持设备解绑及激活/挂失/禁用状态管理,非法设备访问被拒 | 无 | |||
| 21 | 访问控制策略 | 系统支持基于地图划定圆形地理区域 | 无 | ||
| 22 | 系统支持编辑、删除区域范围 | 无 | |||
| 23 | 系统支持时间段策略配置(每日起止时间、每周生效日、多时段) | 无 | |||
| 24 | 系统支持角色-地点关联,仅允许划定地理范围内登录 | 无 | |||
| 25 | 系统支持角色-时间关联,仅允许设定时段内登录 | 无 | |||
| 26 | 密钥管理 | 系统支持国密算法密钥生成,接口符合 GM/T 0018-2012 | 无 | ||
| 27 | 系统采用鸿蒙用户级加密区安全存储设备私钥与会话密钥 | 无 | |||
| 28 | 系统支持主密钥/设备密钥/会话密钥三级体系及密钥分发与撤销 | 无 | |||
| 29 | 日志管理 | 系统支持日志列表展示与类型/结果/级别多条件筛选及关键词搜索 | 无 | ||
| 30 | 系统关键安全事件完整留痕,级别划分正确,日志防非授权删除 | 无 | |||
| 31 | 传输加密 | 系统支持 Pad 与 MCS 间业务数据 SM4-GCM 加密传输 | 无 | ||
| 32 | 系统支持传输完整性保护与篡改检测(GCM 认证标签/签名) | 无 | |||
| 33 | 系统全链路采用 SM2/SM3/SM4 国密算法 | 无 | |||
| 34 | 观测需求传输 | 系统支持观测需求申请加密提交与加密回复 | 无 | ||
| 35 | 系统拦截未注册/已禁用设备访问观测需求服务 | 无 | |||
| 36 | 图像水印 | 系统支持按版权标识与生成时间生成水印并不可见嵌入 JPG 图片 | 无 | ||
| 37 | 系统支持水印准确提取与水印检测工具 | 无 | |||
| 38 | 系统水印接口兼容 PNG 格式,提供 Linux 下 C 和 Python 接口库 | 无 | |||
| 39 | L0 溯源篡改检测 | 系统支持 L0 数据封装生成唯一标识(C/Python 接口) | 无 | ||
| 40 | 系统支持 L0 数据解封装提取标识并检测篡改 | 无 | |||
| 41 | 主备站传输 | 系统支持主站与灾备站间任务时间表、调度令、公共配置参数端到端加密传输 | 无 | ||
| 42 | 系统支持主备站传输完整性校验与中断异常处理 | 无 |
8.2 《测试报告》5.2 性能效率测试结果表(模板)
| 序号 | 测试项 | 测试内容 | 测试结果 | 评价结果 | 备注 |
|---|---|---|---|---|---|
| 1 | SM2 签名/验签性能 | SM2 签名 ≥2000 次/s,SM2 验签 ≥1000 次/s | (待填:实测签名 ____ 次/s,验签 ____ 次/s) | (待填) | 无 |
| 2 | SM4/SM3 算法吞吐 | SM4 ECB 加解密 ≥7Gbps;SM3 杂凑 ≥1.5Gbps | (待填:实测 SM4 加密 ____ Gbps,解密 ____ Gbps,SM3 ____ Gbps) | (待填) | 无 |
| 3 | 并发登录与密钥协商 | 100 并发登录成功率 ≥99%,平均响应 ≤2s | (待填:成功率 ____%,平均响应 ____ s) | (待填) | 无 |
以下空白
8.3 《测试报告》测试结论(两段式范文,按 QXJ 改写)
(检测单位名称)受(委托单位名称)委托,于 20XX 年 XX 月 XX 日至 20XX 年 XX 月 XX 日期间,在(测试地点),对 MCS信息安全传输控制软件(项目编号:IIE-MCS-ISTCS)进行测试。
本次测试以《GB/T 25000.51-2016 系统与软件工程 系统与软件质量要求和评价(SQuaRE)第 51 部分:就绪可用软件产品(RUSP)的质量要求和测试细则》为依据对功能性、性能效率开展测试工作。要求测试需求覆盖率达到 100%,测试用例执行率达到 100%,所有测试用例均进行充分测试。
通过测试和分析,各方面的测试结果如下:
1. 功能性
被测系统支持设备注册与密钥交换,包括服务器配置、扫码导入服务器公钥、客户端 SM2 密钥对生成与 .dat 注册文件导出、注册文件上传完成设备注册、管理员辅助注册。系统支持身份认证登录,包括短信验证码获取,账号+口令+短信验证码多因子认证,登录过程采用 SM2 签名与验签完成设备身份鉴别,认证通过后签发 token(access token + refresh token)并协商会话密钥;对错误口令、错误验证码拒绝登录,多次输入错误口令自动冻结账号;对无 token 或 token 失效的访问以 HTTP 302 重定向至鉴权系统。系统支持用户管理,包括用户新增、修改、注销,用户激活/冻结/禁用状态管理及批量激活、注销、禁用操作,用户口令加密存储。系统支持角色管理,包括角色新增、编辑、删除及角色与用户绑定。系统支持设备管理,包括设备信息查看(卡片详情视图与列表表格视图)、编辑、手动新增与解绑,支持设备激活、挂失、禁用等状态管理,未注册或已禁用设备无法访问系统。系统支持访问控制策略管理,包括基于地图划定地理区域的区域范围管理、时间段管理,以及角色-地点、角色-时间、角色-用户关联,实现仅在划定地理范围内和设定时段内允许登录的精细化访问控制。系统支持密钥管理,采用符合国家密码法规和标准规定的商用密码算法生成密钥,采用鸿蒙用户级加密区机制安全存储密钥,支持系统主密钥、设备密钥、会话密钥三级密钥体系及密钥的安全分发与撤销。系统支持日志管理,可依据日志类型、操作结果、安全级别对安全日志进行过滤检索,关键安全事件完整留痕。系统支持 MCS 业务数据采用 SM4-GCM 加密传输及传输完整性保护,篡改报文可被检测并拒绝。系统支持观测需求申请经安全通道加密提交与回复,合法用户使用注册且激活的设备方可获取观测需求申请服务。系统支持图像水印功能,可根据国家气象中心版权标识、图片生成时间等信息生成水印并以不可见方式嵌入 JPG、PNG 格式卫星图片,支持水印的准确提取与检测,水印接口库支持 Linux 操作系统并提供 C 和 Python 接口。系统支持 L0 数据溯源及篡改检测,可为传输 L0 数据的系统生成唯一标识信息并进行逆运算提取,保障 L0 数据来源的可靠性,篡改数据可被检出。系统支持主站(北京)与灾备站(乌兰察布)之间任务时间表、调度令、公共配置参数等重要信息的端到端加密传输与完整性校验。
详见本报告:"5.1 功能性测试结果"。
2. 性能效率
针对算法性能与并发处理能力开展性能效率测试,系统 SM2 签名速率达到(待填)次/s、SM2 验签速率达到(待填)次/s;SM4 ECB 加解密速率达到(待填)Gbps、SM3 杂凑速率达到(待填)Gbps;在 100 并发用户场景下登录成功率达到(待填)%,平均响应时间(待填)s,满足技术指标要求。
详见本报告:"5.2 性能效率测试结果"。
(检测单位名称) 20XX 年 XX 月 XX 日
附:用例与功能要求覆盖对照表
| 功能要求 | 覆盖用例 |
|---|---|
| FR_1_1 数据加密传输 | CS01、GC01、ZB01 |
| FR_1_2 数据完整性保护 | CS02、ZB02 |
| FR_1_3 密钥协商与交换 | ZC02、ZC03、ZC04、DL02、XN03 |
| FR_1_6 商用密码算法 | CS03、MY01 |
| FR_2_1 用户身份认证 | DL01、DL02、DL03 |
| FR_2_2 权限管理 | JS01、JS02 |
| FR_2_3 访问控制 | FK01、FK03、FK04、FK05、DL04 |
| FR_2_4 策略制定与更新 | FK02、FK03、JS02 |
| FR_3_1 用户信息管理 | YH01、YH02 |
| FR_3_2 用户注册与注销 | YH01、YH03 |
| FR_3_3 用户角色管理 | JS01、JS02、JS03 |
| FR_3_4 用户状态管理 | DL03、YH04 |
| FR_3_5 批量操作 | YH04 |
| FR_4_1 设备信息管理 | SB01、SB02、SB03 |
| FR_4_2 设备注册与状态管理 | ZC01~ZC05、SB04、GC02 |
| FR_4_3 批量操作 | YH04(用户侧)、SB04 |
| FR_5_1 密钥生成 | MY01 |
| FR_5_2 密钥安全存储 | MY02 |
| FR_5_3 密钥分发 | MY03 |
| FR_5_4 密钥更新与撤销 | MY03 |
| FR_5_5 三级密钥体系 | MY03 |
| FR_6_1 水印嵌入 | SY01 |
| FR_6_2 水印提取 | SY02 |
| FR_6_3 气象数据格式 | SY01、SY03 |
| FR_6_4 接口操作系统和语言 | SY03 |
| FR_7_1 L0 数据封装 | L001 |
| FR_7_2 L0 数据解封装 | L002 |
| FR_7_3 接口操作系统和语言 | L001、L002 |
| PR_1_1 SM3 性能 | XN02 |
| PR_1_2 SM4 性能 | XN02 |
| PR_2_2 SM2 签名/验签性能 | XN01 |