2026-01-13 11:27:21 +08:00

12 KiB
Raw Blame History

高血压风险评估系统 - 2天详细测试计划

版本: v1.0
日期: 2026-01-12
测试人员: 成员A云端、成员B边缘端


📅 Day 1组件测试日并行执行

09:30 - 10:00 | 启动会(两人一起)

地点: 会议室或线上会议
参与: 成员A、成员B、项目负责人

议程:

  1. 明确测试范围(功能冒烟,不做性能与安全)
  2. 对齐device_id规则
    • 成员A用test_edge_device_001
    • 成员B用test_edge_device_002
    • 联调用:edge_rk3588_001
  3. 确认日志输出目录:artifacts/cloud/artifacts/edge/
  4. 同步沟通方式(钉钉/微信群即时响应)

产出: 两人都清楚自己的任务清单


10:00 - 12:00 | 上午:组件冒烟(并行)

成员A云端基础功能验证

任务清单:

Task 1.1服务启动验证15分钟

# 1. 启动云端
python cloud_hypertension_system.py

# 2. 检查输出
# 预期:
#   ✓ 数据库初始化成功
#   Running on http://127.0.0.1:5000

记录: 截图启动日志,保存为 artifacts/cloud/startup.png


Task 1.2健康检查API10分钟

# 在新终端运行
python scripts/check_health.py

验收标准:

  • 返回状态码200
  • 响应包含:"status": "healthy"

记录: 保存响应到 artifacts/cloud/health.json


Task 1.3正常上传测试30分钟

python scripts/test_upload.py

验收标准:

  • 返回状态码200
  • 响应包含:"status": "success"
  • 云端控制台显示:☁️ [API] 接收上传: 设备=test_edge_device_001

检查数据库:

# 查看数据库是否有数据
sqlite3 cloud_database.db "SELECT COUNT(*) FROM sensor_data;"
# 应该返回3上传了3条事件

记录:

  • 保存响应到 artifacts/cloud/upload_response.json
  • 保存云端日志到 artifacts/cloud/upload.log

Task 1.4报告生成测试30分钟

python scripts/test_report.py

验收标准:

  • 返回状态码200
  • 生成报告文件:./reports/report_test_edge_device_001_*.json
  • 报告包含基本统计(虽然数据很少)

记录:

  • 复制生成的报告到 artifacts/cloud/report_sample.json

Task 1.5数据库检查15分钟

# 检查各表记录数
sqlite3 cloud_database.db <<EOF
SELECT 'devices:', COUNT(*) FROM devices;
SELECT 'sensor_data:', COUNT(*) FROM sensor_data;
SELECT 'nightly_summary:', COUNT(*) FROM nightly_summary;
EOF

记录: 保存查询结果到 artifacts/cloud/db_check.txt


成员B边缘端基础功能验证

任务清单:

Task 1.1本地运行测试45分钟

# 启动边缘端(模拟模式)
python edge_hypertension_system.py > artifacts/edge/edge_45min.log 2>&1

# 让它运行45分钟观察输出

验收标准每30秒检查一次

  • 心率输出在合理范围50-100 bpm
  • 风险评分有数值0-1之间
  • 无Python异常/崩溃
  • 至少看到1次起夜事件🚽

记录:

  • 截图正常输出3-5张
  • 截图起夜事件
  • 保存完整日志:artifacts/edge/edge_45min.log

Task 1.2输出格式验证15分钟

检查输出是否包含:

  • 时间戳
  • 生理指标心率、RMSSD、SDNN
  • 风险评分与等级
  • 系统性能(处理延迟)

记录:Test-Log.md 中记录样例输出


12:00 - 13:30 | 午休


13:30 - 15:30 | 下午:深入测试(并行)

成员A云端异常场景与健壮性

Task 2.1异常场景测试60分钟

python scripts/test_negative.py

测试场景:

  1. 401 Unauthorized错误API Key

    • 修改脚本中的API Key为错误值
    • 预期返回401错误信息清晰
  2. 400 Bad Request缺少字段

    • 使用 test_data/sample_missing_field.json
    • 预期返回400指出缺少哪个字段
  3. 400 Bad Request类型错误

    • 使用 test_data/sample_wrong_type.json
    • 预期返回400指出类型不匹配

记录: 每个场景保存:

  • 请求内容
  • 响应状态码
  • 错误信息
  • 云端日志

保存到:artifacts/cloud/negative_tests.md


Task 2.2重复上传测试30分钟

目标: 验证重复上传的行为

# 连续上传同一份数据3次
for i in range(3):
    response = requests.post(...)
    print(f"第{i+1}次上传:{response.status_code}")

检查数据库:

sqlite3 cloud_database.db "SELECT COUNT(*) FROM sensor_data WHERE device_id='test_edge_device_001';"
# 记录数量是3、9还是其他

记录:

  • 重复上传行为(是幂等/累加/拒绝?)
  • 如果不符合预期记录为Bug

成员B边缘端容错与上传

Task 2.1上传功能测试60分钟

前提: 确保云端正在运行与成员A协调

步骤:

  1. 修改边缘端配置,启用上传:

    # edge_hypertension_system.py 第75行
    'enable_upload': True,
    'upload_url': 'http://127.0.0.1:5000/api/upload',
    
  2. 运行边缘端,观察上传:

    python edge_hypertension_system.py
    
  3. 每5分钟应该看到

    ☁️ [Cloud Upload] Uploaded 24 events to cloud
    ✅ 上传成功!
    

验收标准:

  • 至少成功上传2次10分钟内
  • 云端控制台显示接收日志

记录:

  • 边缘端上传日志
  • 云端接收日志找成员A要

Task 2.2上传失败与重试30分钟

模拟场景1云端不可达

  1. 停止云端服务找成员A协调
  2. 观察边缘端输出:
    ☁️ [Cloud Upload] Failed: Connection refused
    
  3. 边缘端应该继续本地处理(不崩溃)

模拟场景2云端恢复

  1. 重新启动云端
  2. 观察边缘端下次上传是否成功

记录:

  • 失败日志:artifacts/edge/upload_fail.log
  • 恢复日志:artifacts/edge/upload_recover.log

15:30 - 16:30 | 交叉复核

目标: 避免"只在我电脑上能跑"的问题

步骤:

  1. 成员A 在自己电脑上复现 成员B的操作

    • 运行边缘端10分钟
    • 检查输出是否正常
  2. 成员B 在自己电脑上复现 成员A的操作

    • 启动云端
    • 运行 test_upload.py
    • 检查是否成功

记录:

  • 如果复现失败记录差异系统版本、Python版本、依赖版本

16:30 - 17:00 | Day 1总结

两人一起填写:

  • Day 1完成情况哪些通过哪些失败
  • 发现的问题清单
  • Day 2重点关注点

📅 Day 2联调测试日协同执行

09:30 - 11:00 | 端到端闭环测试

目标: 验证完整链路:边缘端 → 云端 → 报告

前提:

  • 两人在同一网络
  • 或者都连接到云端服务器

步骤:

Step 1启动云端成员A

python cloud_hypertension_system.py

Step 2配置边缘端成员B

# 修改 device_id 为联调专用
'device_id': 'edge_rk3588_001',
'upload_url': 'http://127.0.0.1:5000/api/upload',  # 或成员A的IP

Step 3启动边缘端成员B

python edge_hypertension_system.py

Step 4等待15分钟

  • 边缘端应该上传3次每5分钟一次
  • 云端应该接收到数据

Step 5生成报告成员A

python scripts/test_report.py
# 或直接访问API
# GET http://127.0.0.1:5000/api/report/edge_rk3588_001

Step 6验证结果

  • 报告包含15分钟的数据
  • 数据量约72条记录15分钟 × 2次/分钟 × 240秒

记录:

  • 边缘端日志:artifacts/end2end/edge.log
  • 云端日志:artifacts/end2end/cloud.log
  • 生成的报告:artifacts/end2end/report.json
  • 数据库文件:artifacts/end2end/cloud_database.db

11:00 - 12:00 | 失败注入测试

目标: 验证系统容错与错误提示

Scenario 1错误API Key10分钟

  • 修改边缘端API Key为错误值
  • 预期:边缘端显示"401 Unauthorized"
  • 预期:边缘端继续本地处理

Scenario 2云端不可达15分钟

  • 停止云端
  • 预期:边缘端显示连接失败,但不崩溃
  • 重启云端
  • 预期:边缘端恢复上传

Scenario 3数据格式错误15分钟

  • 手动修改上传数据,制造格式错误
  • 预期云端返回400错误指出问题
  • 预期:边缘端记录错误但不崩溃

记录: 每个场景的日志和截图


12:00 - 13:30 | 午休


13:30 - 15:00 | 整理交付物

任务分工:

成员A整理云端产物

  • 收集所有日志文件到 artifacts/cloud/
  • 导出数据库文件
  • 整理API测试结果
  • 填写 Checklist-Cloud.md

成员B整理边缘端产物

  • 收集所有日志文件到 artifacts/edge/
  • 整理运行截图
  • 填写 Checklist-Edge.md

两人一起:

  • 填写 Test-Log.md(完整时间线)
  • 填写 Bug-List.xlsx(所有缺陷)
  • 撰写 2-day-summary.md

15:00 - 16:00 | 测试总结会

参与: 成员A、成员B、项目负责人

议程只回答3个问题

  1. 现在能否演示闭环?

    • 能 / 不能
    • 如果不能,差哪一步?
  2. 最大阻塞是什么?

    • 列出Top 3问题
    • 每个问题的建议解决方案
  3. 下一步传感器接入最先要修哪3个点

    • P0级问题优先
    • 给出修复优先级

产出:

  • 明确下一步行动计划
  • 分配Bug修复责任人

📦 最终交付清单

必须提交打包成test-results-YYYYMMDD.zip

test-results-20260114/
├── Test-Log.md                      ← 完整测试记录
├── Bug-List.xlsx                    ← 缺陷清单P0/P1/P2分级
├── 2-day-summary.md                 ← 一页纸总结
├── Checklist-Cloud.md               ← 云端检查表(已勾选)
├── Checklist-Edge.md                ← 边缘端检查表(已勾选)
│
└── artifacts/                       ← 所有测试产物
    ├── cloud/
    │   ├── startup.png
    │   ├── health.json
    │   ├── upload_response.json
    │   ├── report_sample.json
    │   ├── negative_tests.md
    │   ├── cloud_database.db        ← 数据库快照
    │   └── *.log                    ← 所有日志
    │
    ├── edge/
    │   ├── edge_45min.log
    │   ├── upload_fail.log
    │   ├── screenshots/             ← 截图目录
    │   └── *.log
    │
    └── end2end/
        ├── edge.log
        ├── cloud.log
        ├── report.json
        └── cloud_database.db

🎯 验收标准(项目负责人用)

编号 测试项 责任人 必须通过 证据文件
C1 云端服务启动 A artifacts/cloud/startup.png
C2 健康检查API A artifacts/cloud/health.json
C3 upload→report闭环 A artifacts/cloud/upload_response.json + report_sample.json
C4 错误码正确401/400 A artifacts/cloud/negative_tests.md
C5 数据库落库正确 A artifacts/cloud/db_check.txt
E1 边缘端45分钟无崩溃 B artifacts/edge/edge_45min.log
E2 心率/风险评分正常 B artifacts/edge/screenshots/
E3 上传成功 B artifacts/edge/*.log
E4 上传失败容错 B Nice artifacts/edge/upload_fail.log
I1 端到端闭环成功 A+B artifacts/end2end/*
I2 失败注入测试 A+B Nice artifacts/end2end/failure_*.log

Must必须通过 C1-C5, E1-E3, I1
Nice加分项 E4, I2


测试愉快!有问题随时沟通。 🚀