第4章 功能测试用例编写:核心功能点、异常路径、交互校验
4.1 适用场景
本章内容适用于以下测试阶段与场景:
- 原型功能验证阶段:原型设备首次集成后,需验证核心控制指令、数据采集与上报是否按设计实现。
- 异常鲁棒性评估:设备在弱网、断连、并发、非法输入等异常条件下的行为验证。
- 人机交互验收:用户界面(APP/Web/设备本地屏)与设备之间的反馈、状态同步、操作闭环校验。
- 回归测试:固件或应用版本迭代后,复用核心用例组快速确认关键路径无退化。
4.2 前置条件
- 原型硬件已装配并完成基础供电、配网(若需要),可正常连接测试环境。
- 测试工具链就绪:串口日志工具、MQTT/CoAP 客户端、HTTP API 调试器、信号干扰设备(如屏蔽箱、衰减器)。
- 功能需求文档(PRD/FS)、接口定义(API 文档 / 数据字典)已完成评审并归档。
- 测试环境(服务器/云端)已部署对应版本的业务服务,并开启调试日志。
- 测试用例管理平台(如 TestRail、Jira)中已创建本次测试周期,并关联需求基线。
4.3 操作步骤
本流程适用于单个功能点的用例编写,可按以下子步骤循环执行:
步骤1:分解核心功能点
- 提取需求文档中的功能描述,拆解为原子操作(如:打开阀门、读取温度、上报心跳)。
- 每个功能点抽象为 输入 → 处理 → 期望输出 的测试模型。
- 编写正向预期用例,覆盖正常参数范围、典型时序。
步骤2:设计异常路径
- 列出所有可能的异常输入:空值、超界、格式错误、重复请求、超时。
- 列出环境异常:弱网(丢包率 > 20%)、断连、多客户端同时控制、电源波动。
- 每项异常对应一条独立用例,明确预期错误码、日志、重试行为或降级状态。
步骤3:交互校验设计
- 绘制设备与用户 / 云端的交互时序图(参见下方 SVG)。
- 校验点包括:UI 状态与设备状态一致、操作反馈延迟 < 2 秒、异常时显示明确提示。
- 编写双向同步用例:如 APP 下发指令后,设备执行并回传 ACK,APP 更新控制按钮状态。
步骤4:用例结构化与归档
- 每一条用例包含:用例ID、所属功能模块、前置条件、测试步骤、输入数据、期望结果、实际结果、备注。
- 输出至测试用例管理平台,并关联需求基线。
4.4 输入输出物
| 类别 | 输入物 | 输出物 |
|---|---|---|
| 文档 | 功能需求说明书、接口文档、状态迁移图 | 功能测试用例库(Test Cases × Excel / 平台条目) |
| 数据 | 设备日志、云端调用记录、信号强度记录 | 已执行用例标记(Pass/Fail/Blocked) |
| 脚本/工具 | 测试框架配置、模拟器输入文件 | 自动化测试脚本(可选)、问题追踪工单 |
4.5 责任边界
- 测试工程师:负责用例编写、执行、缺陷提交、用例版本维护。
- 开发工程师:提供核心日志、配合异常场景复现、修复缺陷后重新提测。
- 产品经理/需求方:确认核心功能点分解的完整性,评审异常路径优先级。
- 项目管理者:确保测试环境、设备资源到位,协调回归进度。
4.6 记录材料
- 功能测试用例表(包含用例ID、模块、前置、步骤、数据、期望、结果)。
- 测试环境配置快照(网络拓扑、服务版本、固件版本)。
- 缺陷日志与截图/录屏(异常路径触发时的设备表现)。
- 交互校验核对清单(UI状态、响应时间、提示文案)。
4.7 异常处理
常见异常及其处理策略:
- 设备断连或无响应:先检查供电、网络媒介,再排除固件闪存。若为已知问题,标记为 Blocked 并记录环境信息。
- 云端返回非预期错误码:对比接口文档,若为文档缺失则更新文档;若为服务 Bug,提交工单并关联用例ID。
- UI状态与设备实际状态不一致:导出设备实时日志,核对控制命令ACK与状态上报时序,确认是延迟还是逻辑错误。
- 弱网下指令丢失:设计重试机制验证,用例应明确“丢包率 x% 下指令重试次数及最终结果”。
4.8 验收标准
- 覆盖度达标:每个核心功能点至少包含 1 条正向用例 + 3 条异常用例;交互校验用例覆盖所有状态变化路径。
- 用例可执行性:每一步操作描述清晰,输入数据精确,前置条件已验证。
- 结果可判定:期望结果定义明确(可通过日志、API响应、UI截图验证),无歧义。
- 版本对齐:用例库与当前固件/APP版本一致,已关联需求基线。
- 文档合规:输出物中所有记录材料已归档至指定平台,测试周期可追溯。
经验建议:先编写核心功能用例,再逐步添加异常与交互校验。每轮评审后,优先补齐“最常见用户操作路径”的异常覆盖,避免头重脚轻。