Files
abox-mgr/docs/testing/release-lan-hardware-validation.md
T

90 lines
4.7 KiB
Markdown

# 正式版局域网硬件验收
## 目的与边界
本协议验证签名 Release APK 在已授权 ABox 局域网中的完整产品路径。本地体验和测试 Fake 不能替代真实硬件验收。
报告不得包含密码、Token、原始厂商响应、红外码值、完整网关地址或完整硬件标识。设备和 profile 使用脱敏别名。
## 执行前检查
- 记录 App 版本、versionCode、Git 提交和 APK 签名摘要;
- 确认测试网络、账号、网关和实体设备均已授权;
- 确认 Android 通知权限和系统省电策略;
- 准备实际名称分别为 `智能插座`、`温湿度传感器` 和 `红外控制器` 的设备,或在 App 中改成网关当前名称;
- 清楚标记哪些步骤是界面验证、网关响应验证和实体设备响应验证。
## 验收流程
### 1. 安装、启动与登录
1. 覆盖安装或全新安装 Release APK,确认启动不闪退。
2. 使用无效凭据登录,确认停留在登录页并显示本地化错误。
3. 使用授权凭据登录,确认进入设备中心。
4. 重启 App,验证记住用户名和自动登录的已选行为。
5. 使 Token 失效后执行操作,确认会话清理并返回登录流程。
### 2. 默认内容与数据隔离
1. 首次登录 ABox 后确认三类默认设备存在,名称逐字为 `智能插座`、`温湿度传感器`、`红外控制器`。
2. 确认红外控制器包含两个自定义遥控器,不自动添加预置码库遥控器。
3. 重命名设备并重启,确认 App 保留用户名称,不执行自动迁移或覆盖。
4. 切换到本地体验,确认 ABox 设备、遥控器、情景、活动和会话数据不出现。
### 3. 设备控制
1. 在设备中心和插座详情各执行一次开关操作。
2. 确认命令后回读真实状态;插座断电时不得仅因点击而显示已切换。
3. 连续点击电源按钮,确认页面不抖动且不会并发重复发送。
4. 读取温度和湿度,验证完整数据、单字段缺失、无数据和离线状态。
5. 确认设备离线在设备中心和详情页均有明确视觉状态。
### 4. 红外控制器
1. 按 `infrared-hardware-validation.md` 完成一个预置遥控器下载和发送流程。
2. 完成一个自定义按钮的添加、学习、发送和重新学习流程。
3. 验证学习失败与未学习状态不同。
4. 验证遥控器排序、编辑、删除和硬件槽位管理。
### 5. 手动指令
1. 创建包含插座、红外、延迟和通知动作的手动指令。
2. 按配置顺序执行,确认失败策略和动作结果汇总符合设置。
3. 验证同一指令执行期间不会被重复启动。
### 6. 自动指令
1. 创建一个温度阈值触发的自动指令,并添加插座状态条件。
2. 使用手动执行入口验证动作本身可用。
3. 让传感器状态从不匹配进入匹配,确认执行一次。
4. 在持续匹配期间等待后续轮询,确认不会重复执行。
5. 先恢复到不匹配,再重新进入匹配,确认可以再次执行。
6. 验证时间、湿度和插座状态触发器至少各一次。
7. 验证温度、湿度、插座状态和跨午夜时间范围条件。
8. 拒绝通知权限后执行通知动作,确认显示明确失败而不是成功。
### 7. 活动记录
1. 确认设备命令、状态确认、传感器刷新、红外学习/发送、手动指令和自动指令均写入活动记录。
2. 确认来源区分用户、自动化和系统,结果区分成功、失败、取消和等待确认。
3. 在存在大量记录时验证分页加载和重新进入页面,不得闪退。
4. 确认记录不包含凭据、原始响应或红外码值。
### 8. 外观、导航与本地化
1. 验证浅色、深色、动态颜色、手动强调色、色彩风格、色彩规范和界面缩放。
2. 在英文和简体中文下检查设备、红外、情景、自动化、活动、主题和关于页面。
3. 验证二级页面不显示主页顶栏和底栏。
4. 验证系统返回和左上角返回不会进入空白页面或重复回退。
5. 验证 About 页面显示 `1.0.0 (1)`、包名和 Flagship 团队信息,点击入口不闪退。
## 结果记录
每个步骤记录:日期、版本与提交、脱敏 profile、脱敏设备名、操作类别、成功/失败/取消/不可用分类、粗粒度耗时、物理响应摘要和缺陷编号。真实硬件终态与 App 显示不一致必须判定为失败。
## 已知风险
- ABSDK 使用厂商 JAR 中的明文 HTTP,只能在隔离且获授权的局域网中验收;
- Android 后台限制和省电策略可能影响自动化轮询时效,应记录测试设备设置;
- 网关依赖设备名称匹配,App 名称与网关名称不一致会导致设备操作失败。