QA/适合初学者的 bug 诊断指南
本文适合初次接触 bug 诊断的人士。更详细的 bug 诊断指南及疑难问题解答,请见:Bug 诊断详细指南。
QA 团队的“诊断”活动,实质上是确认 bug 并对 bug 的优先级进行排序的过程。这个领域非常适合非开发者(程序员)参与,没有编程经验的普通用户通过加入 QA 团队参与“诊断”,也能为提升 LibreOffice 的品质做出很大的贡献。经过可靠“诊断”后的 bug 报告可以在很大程度上帮助开发者迅速定位问题,找到修复方案;使得开发者们把心思用在代码上,而不是把精力都浪费在这些简单的 bug 诊断活动上。
此页面简要介绍了一些涉及 bug 诊断的任务,并提供了能够深入理解该任务的一些链接。
尝试重现 bug
用户在 bugzilla (LibreOffice 使用的的官方 bug 报告平台) 上最新报告的 bug 中,实际上有很大部分很有可能之前已经别的用户报告过了,因此对于每个未被确认 (unconfirmed) 的 bug,在确认它之前,都应当首先在 bugzilla 上搜索一下,看看是否有更早的已被报告的类似 bug(即重复的 bug, duplicate). 这样做,可以节省很多进一步调查测试的时间,并将该 bug 的讨论全部都集中在原先的报告中,避免信息碎片和混乱。如果您发现某个 bug 存在一个 duplicate, 那么请点击 Status 字段下拉列表下方的 ‘Mark as Duplicate’ 链接,然后在出现的文本框中输入重复 bug(之前已经报告的 bug)的编号。
但是,很多时候找到重复的 bug 并不容易,一方面是由于这些 bug 报告不够清晰,或者被提交到了其他组件 (component) 中。
最经常被报告的 bug 清单
对 bug 的优先级进行排序
新的活跃 QA 团队成员可以被授予额外的权限,以修改 bug 中的 Priority(优先级) 以及 Severity(严重程度) 字段。普通的 bugzilla 用户不能修改这些字段。要获得相应权限,请在 IRC 上联系 QA 团队的成员(即 buovjaga 和 jmadero 等人)),或者发送 email 到 QA 团队的邮件列表。如果您想要承担这份责任,那么您应当谦虚地向其他前辈请教,确保您对优先级和严重程度的标记口径与前辈们一致。
通常情况下,对某个 bug 的严重程度做出决定会比较容易,但是确定其优先级却比较困难。
需要对用户界面进行细微修改和调整的 bug 报告,可以被视为 - 优先级:低 (low), 严重程度:微小 (trivial).
让您感到气愤,但是您仍然能够忍受,或者有权宜之计(绕个弯就能解决)的 bug,可以被视为 - 严重程度:minor.
导致某些功能无法正常工作、并且没有权宜之计的 bug, 可以被视为 - 严重程度:normal.
由于某个特定文件或者特定的命令导致的程序崩溃、卡死,可以被视为 - 严重程度:Major.
如果 LibreOffice 的某个组件由于崩溃、界面故障等而彻底无法使用,可以被视为 - 严重程度:critical.
“倒退”测试
在老版本的 LibreOffice 中进行尝试,从而确定某个 bug 是否能在早前版本中重现,能够帮助识别该问题是不是在 LibreOffice 生命周期内产生的。 下载并安装 LibreOffice 3.3.
- 如果该 bug 在 3.3 版本中能够重现,则将 Version 字段设置为 "inherited from OOo",并加入如下的评论(请使用英文):
This bug is already present in Libreoffice 3.3 Changing version to "inherited from OOo"
- 如果 bug 在 3.3 版本中不存在,则在 Keywords 字段中添加 "regression" 关键词,并加入如下的评论(请使用英文):
This bug is not present in Libreoffice 3.3, thus it's a regression Adding "regression" to the keywords
更多信息:
- SI-GUI - 简单的图形化程序,用于在 Windows 下并行安装多个版本
- Installing in parallel - 如何在 Windows, Linux 和 Mac 下并行安装多个版本 LibreOffice
- http://downloadarchive.documentfoundation.org/libreoffice/old/ - 下载老版本的 LibreOffice,包括正式版、beta 版和 alpha 版
崩溃报告
对于程序“崩溃”、“卡死”型的 bug,获得其崩溃报告(也叫 backtrace)可以很有效地帮助开发者识别造成问题的原因,并修复问题。如果某个 bug 已经有了 backtrace,则需要添加 havebacktrace 关键词到 Keywords 字段。
Bibisect(二进制二分查找)
从 LibreOffice 3.5 版本之后产生的“倒退”型的 bug,可以很容易地通过“二进制二分查找”进行进一步诊断,以缩小造成该问题可能的代码区段范围。
- Effective Bisection and Bibisection (Youtube 视频,墙外) - Matthew Francis
- Bibisect “二进制二分查找”的原理和方法
- QA/Bibisect/Implementation