SDK_APP/TESTING_GUIDE.md

296 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 完整功能测试指南
## 🎯 测试目标
验证应用的完整功能,包括:
- ✅ 蓝牙权限申请
- ✅ 蓝牙设备扫描和连接
- ✅ 实时数据接收和处理
- ✅ ECG曲线图显示
- ✅ 信号处理和指标计算
## 📱 测试环境准备
### 1. 设备要求
- **Android设备**Android 6.0+推荐Android 12+
- **蓝牙功能**支持BLE或传统蓝牙
- **位置权限**:需要位置权限用于蓝牙扫描
### 2. 心电设备
- **真实设备**支持BLE或传统蓝牙的心电设备
- **模拟设备**:可以使用蓝牙调试工具模拟数据
### 3. 开发环境
- **Android Studio**:最新版本
- **ADB工具**:用于日志查看和调试
## 🚀 测试步骤
### 第一步:应用安装和启动
1. **编译应用**
```bash
./gradlew assembleDebug
```
2. **安装到设备**
```bash
adb install app/build/outputs/apk/debug/app-debug.apk
```
3. **启动应用**
- 在设备上找到并启动应用
- 观察启动界面和权限状态显示
### 第二步:权限申请测试
1. **查看权限状态**
```
权限状态:
BLUETOOTH_SCAN: ✗
BLUETOOTH_CONNECT: ✗
ACCESS_FINE_LOCATION: ✗
ACCESS_COARSE_LOCATION: ✗
```
2. **点击"连接蓝牙"按钮**
- 系统应弹出权限申请对话框
- 选择"允许"授予所有权限
3. **验证权限状态**
```
权限状态:
BLUETOOTH_SCAN: ✓
BLUETOOTH_CONNECT: ✓
ACCESS_FINE_LOCATION: ✓
ACCESS_COARSE_LOCATION: ✓
```
### 第三步:蓝牙扫描测试
1. **开始扫描**
- 点击"连接蓝牙"按钮
- 按钮文字应变为"扫描中..."
- 按钮颜色应变为橙色
2. **观察扫描过程**
```
蓝牙状态: 正在扫描蓝牙设备...
发现设备: ECG_Device_001 (00:11:22:33:44:55)
扫描完成,找到 1 个设备
```
3. **设备选择对话框**
- 扫描完成后应弹出设备选择对话框
- 显示发现的设备列表
### 第四步:设备连接测试
1. **选择设备**
- 在设备列表中选择目标设备
- 点击设备名称进行连接
2. **连接过程**
```
正在连接设备: ECG_Device_001
设备已连接
服务发现成功
数据通道已建立
```
3. **连接状态验证**
- 按钮文字应变为"断开蓝牙"
- 按钮颜色应变为红色
### 第五步:数据接收测试
1. **启动数据采集**
- 点击"启动程序"按钮
- 观察ECG曲线图开始显示数据
2. **数据接收验证**
```
接收到蓝牙数据: 128 字节
接收到蓝牙数据: 256 字节
接收到蓝牙数据: 512 字节
```
3. **实时显示验证**
- ECG节律视图10秒应显示实时曲线
- ECG波形视图2.5秒)应显示详细波形
- 曲线应平滑滚动,无卡顿
### 第六步:信号处理测试
1. **滤波功能**
- 点击"陷波滤波"按钮切换滤波状态
- 观察曲线图的变化
2. **指标计算**
- 查看状态信息中的心率等指标
- 验证指标计算的准确性
3. **性能测试**
- 观察应用的响应速度
- 检查内存使用情况
## 🔍 调试技巧
### 1. 日志查看
```bash
# 查看蓝牙相关日志
adb logcat | grep BluetoothManager
# 查看权限相关日志
adb logcat | grep MainActivity
# 查看数据处理日志
adb logcat | grep DataManager
# 查看信号处理日志
adb logcat | grep StreamingSignalProcessor
```
### 2. 常见日志模式
```
BluetoothManager: 蓝牙初始化成功
BluetoothManager: BLE扫描已开始
BluetoothManager: 发现BLE设备: ECG_Device_001
BluetoothManager: 设备已连接
BluetoothManager: 接收到数据: 128 字节
```
### 3. 错误诊断
```bash
# 查看错误日志
adb logcat | grep -i error
# 查看警告日志
adb logcat | grep -i warning
```
## ⚠️ 常见问题排查
### 1. 权限问题
**症状**:点击按钮无反应
**排查**
```bash
# 检查权限状态
adb shell dumpsys package com.example.cmake_project_test | grep permission
```
**解决**
- 进入系统设置手动授予权限
- 重启应用
### 2. 蓝牙扫描问题
**症状**:扫描无结果
**排查**
```bash
# 检查蓝牙状态
adb shell dumpsys bluetooth
```
**解决**
- 确认设备蓝牙已开启
- 确认设备处于可发现状态
- 检查设备距离
### 3. 连接问题
**症状**:连接失败
**排查**
```bash
# 查看连接日志
adb logcat | grep -i "connection\|connect"
```
**解决**
- 确认设备未被其他应用占用
- 检查设备电池电量
- 重启设备和应用
### 4. 数据显示问题
**症状**:曲线图无数据
**排查**
```bash
# 查看数据处理日志
adb logcat | grep -i "data\|process"
```
**解决**
- 检查数据格式是否正确
- 确认数据处理管道正常工作
- 检查UI更新逻辑
## 📊 性能指标
### 1. 响应时间
- **权限申请**< 1秒
- **蓝牙扫描**< 10秒
- **设备连接**< 5秒
- **数据接收**实时
### 2. 内存使用
- **应用启动**< 100MB
- **数据采集**< 200MB
- **长时间运行**< 300MB
### 3. 电池消耗
- **待机状态**< 5%/小时
- **数据采集**< 15%/小时
## 🎉 测试完成标准
### 功能完整性
- 权限申请正常工作
- 蓝牙扫描发现设备
- 设备连接成功
- 数据接收正常
- 实时显示流畅
- 信号处理有效
- 指标计算准确
### 用户体验
- 界面响应及时
- 状态提示清晰
- 错误处理友好
- 操作流程顺畅
### 稳定性
- 长时间运行稳定
- 内存使用合理
- 电池消耗正常
- 无崩溃或卡死
## 📝 测试报告模板
```
测试日期YYYY-MM-DD
测试设备:设备型号 + Android版本
测试人员:姓名
功能测试结果:
□ 权限申请:通过/失败
□ 蓝牙扫描:通过/失败
□ 设备连接:通过/失败
□ 数据接收:通过/失败
□ 实时显示:通过/失败
□ 信号处理:通过/失败
□ 指标计算:通过/失败
性能测试结果:
□ 响应时间:正常/异常
□ 内存使用:正常/异常
□ 电池消耗:正常/异常
问题记录:
1. 问题描述
2. 复现步骤
3. 解决方案
总体评价:
□ 优秀 □ 良好 □ 一般 □ 需要改进
```
现在你的应用已经具备了完整的功能可以进行全面的测试了!🎉