# 完整功能测试指南 ## 🎯 测试目标 验证应用的完整功能,包括: - ✅ 蓝牙权限申请 - ✅ 蓝牙设备扫描和连接 - ✅ 实时数据接收和处理 - ✅ 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. 解决方案 总体评价: □ 优秀 □ 良好 □ 一般 □ 需要改进 ``` 现在你的应用已经具备了完整的功能,可以进行全面的测试了!🎉