缺陷报告编写:标题规范、复现步骤、环境信息、日志附件、预期与实际结果
缺陷报告写得好不好,直接决定了开发兄弟能不能快速定位问题。我见过太多报告,标题写「界面显示异常」,复现步骤就一句话「点一下按钮就崩了」——这种报告,开发看了想打人,测试看了想重测。
说白了,缺陷报告是测试和开发之间的「沟通契约」。你写不清楚,别人就没法高效干活。今天我就把我在座舱项目里踩过的坑、总结的经验,掰开揉碎了讲给你听。
3.1 标题规范:一眼看懂问题本质
标题是缺陷报告的门面。我个人的习惯是:标题要包含「模块 + 功能 + 异常现象」三个要素。举个例子:
- ❌ 差:「导航卡死」
- ✅ 好:「导航模块 - 路线规划 - 输入目的地后点击开始导航,应用无响应 10 秒后闪退」
为什么会这样?因为开发每天收到几十个缺陷,标题模糊的会被直接忽略。你想想看,如果标题里连哪个模块、什么操作导致的都看不出来,开发怎么排优先级?
| 要素 | 说明 | 示例 |
|---|---|---|
| 模块 | 明确所属子系统 | 导航、媒体、语音、设置 |
| 功能 | 具体功能点 | 路线规划、蓝牙连接、音量调节 |
| 异常现象 | 关键异常行为 | 闪退、黑屏、无响应、数据丢失 |
3.2 复现步骤:让开发按你的操作走一遍
复现步骤是缺陷报告的灵魂。我曾经遇到过一个缺陷,复现步骤写的是「打开音乐,播放几首歌,然后切换导航,再切回来,音乐就不响了」。你猜开发怎么复现?他试了三次都没成功,最后直接关了。
正确的做法是:步骤要编号,每一步都要精确到具体操作。比如:
- 启动座舱系统,进入主界面
- 点击「音乐」图标,进入音乐应用
- 在播放列表中选择第 3 首歌曲《晴天》,点击播放
- 等待歌曲播放 30 秒后,点击「导航」图标切换至导航应用
- 在导航搜索框中输入「北京南站」,点击搜索
- 等待搜索结果加载完成后,点击「返回」按钮回到主界面
- 再次点击「音乐」图标,观察播放状态
嗯,这里要注意:每个步骤都要有前置条件和预期中间状态。比如第 4 步的「等待歌曲播放 30 秒」,这个时间条件很重要,因为有些缺陷是特定时间窗口才会触发的。
3.3 环境信息:没有环境信息,缺陷就是废的
环境信息是缺陷报告的「身份证」。同一个缺陷,在不同硬件版本、系统版本、网络环境下,表现可能完全不同。我建议至少包含以下信息:
| 信息项 | 说明 | 示例 |
|---|---|---|
| 硬件版本 | 座舱域控制器型号 | 高通 SA8155P V2.0 |
| 系统版本 | Android / Linux 版本号 | Android 12 QSSI 1.3 |
| 应用版本 | 被测应用的版本号 | MusicApp v3.2.1 |
| 网络环境 | Wi-Fi / 4G / 5G / 离线 | Wi-Fi 2.4GHz,信号强度 -65dBm |
| 外设状态 | 蓝牙、USB、CarPlay 等 | 蓝牙已连接 iPhone 14 |
我个人习惯在报告开头就放一个环境信息表格,这样开发一眼就能看到。别把这些信息藏在正文中间,开发没耐心翻。
3.4 日志附件:给开发一把「手术刀」
日志是定位问题的关键。没有日志的缺陷报告,就像医生没有检查报告就做手术——全靠猜。我建议附上以下日志:
- 系统日志(logcat):包含缺陷发生前后各 2 分钟的日志,用时间戳标注异常点
- 应用日志:被测应用的专属日志,过滤掉无关信息
- ANR / Tombstone:如果发生闪退或无响应,必须附上 ANR 文件或 Tombstone 文件
- 截图 / 录屏:静态界面问题用截图,动态交互问题用录屏
3.5 预期与实际结果:说清楚「应该怎样」和「实际怎样」
这个部分最容易写废。很多人只写「实际结果:闪退」,但没写「预期结果:正常播放」。你想想看,开发怎么知道你的预期是什么?
我建议这样写:
- 预期结果:从导航应用返回音乐应用后,音乐应继续播放,播放进度条应显示在切换前的位置,界面无卡顿
- 实际结果:返回音乐应用后,播放界面显示为暂停状态,点击播放按钮无响应,10 秒后应用闪退
这里有个关键点:预期结果要写具体,不要写「正常」两个字。「正常」太模糊了,每个人的理解都不一样。要把你期望的行为一条一条列出来。
3.6 缺陷报告结构总览
说了这么多,我画了一张图,帮你把缺陷报告的整体结构理清楚:
3.7 一个完整的缺陷报告示例
光说不练假把式。我拿一个真实案例给你看看,一份合格的缺陷报告长什么样:
标题:媒体模块 - 蓝牙音乐 - 切换导航后返回,音乐播放界面卡死 10 秒后闪退
环境信息:
- 硬件:高通 SA8155P V2.0
- 系统:Android 12 QSSI 1.3
- 应用:MusicApp v3.2.1
- 网络:Wi-Fi 2.4GHz
- 外设:蓝牙已连接 iPhone 14(iOS 17.2)
复现步骤:
1. 启动座舱系统,进入主界面
2. 点击「音乐」图标,进入音乐应用
3. 在播放列表中选择第 3 首歌曲《晴天》,点击播放
4. 等待歌曲播放 30 秒后,点击「导航」图标切换至导航应用
5. 在导航搜索框中输入「北京南站」,点击搜索
6. 等待搜索结果加载完成后,点击「返回」按钮回到主界面
7. 再次点击「音乐」图标,观察播放状态
预期结果:
- 返回音乐应用后,歌曲应继续播放
- 播放进度条应显示在切换前的位置(约 30 秒处)
- 播放/暂停按钮状态应为「播放中」
- 界面无卡顿、无闪退
实际结果:
- 返回音乐应用后,播放界面显示为暂停状态
- 点击播放按钮无响应
- 10 秒后应用闪退,返回主界面
日志附件:
- logcat_20240115_1430.txt(包含异常前后 2 分钟日志,已过滤 MusicApp 相关)
- tombstone_20240115_1432.txt(闪退时生成的 Tombstone 文件)
- screen_recording_20240115.mp4(录屏文件,时长 3 分钟)
好了,缺陷报告编写的核心要点就这些。记住:你写的每一份报告,都是在帮开发节省时间,也是在帮自己建立信任。报告写得好,开发愿意看,问题修得快,项目才能跑得顺。