博客

怎样写带截图的 Bug 报告,让开发能直接复现

发布于 · Bug 报告, 测试, 截图

怎样写带截图的 Bug 报告,让开发能直接复现

一份开发能直接上手的 Bug 报告,包含准确的复现步骤、整窗截图、报错文字,以及一段短片。写给测试、支持和产品经理的实用指南。

光凭一张截图很少能修好什么问题。真正让 bug 被修好的,是一份开发能照着重现的报告:准确的步骤、你看到了什么,以及你本来期望什么。截图能让这些看得见,但前提是它给出足够的上下文,而不是把报错文字裁得紧紧的。

这份指南面向测试、支持团队和产品经理。它讲的是该截什么、怎样写出可重现的步骤、怎样隐藏个人数据,以及什么时候一段短片是更快的答案。

一张有用的截图该露出什么

截整个窗口,包括标题栏、工具条,以及任何打开着的对话框。把报错信息周围裁掉,反而会盖住开发重现问题所需的细节:应用版本、当时打开着的菜单,以及你所在的页面。

对网页应用,把浏览器控制台也带上:打开浏览器的开发者工具,切到 Console 标签页。如果某个请求在后台失败了,原因通常就打印在那里,而页面上从来不会显示。

展示确切的状态:报错文字本身、拒绝你输入的那个字段、你当时打开的菜单。不要凭记忆重打一遍消息,从屏幕上复制它。

标出位置,而不是描述位置。一个圈、一个箭头或一个序号,能直接把开发带到问题跟前。

INSNAP 中的带序号步骤 · 1280 × 800

InSnap 能让这件事变快:在 Mac 上按 ⌘1,在 Windows 上按 Ctrl+1,把鼠标悬停在想要的窗口上,然后点击。选区会吸附到窗口,在很多应用里还会吸附到光标下的按钮。用形状、线条、文字和序号加标注,然后复制结果。写报告时,复制它,并按 ⌘2 或 Ctrl+2 把它贴在编辑器上层。

写出开发能重现的步骤

  1. 从一个已知状态开始。「已退出登录、新的浏览器标签页、没有装扩展」能告诉开发该重置什么。
  2. 一步一个动作,用屏幕上的标签:「点击 Save」「选择 Export › PDF」。不要转述。
  3. 记录发生了什么,以及你期望发生什么。「对话框关闭了,但没有保存」是可行动的;「它没用了」不是。
  4. 列出环境:操作系统版本、应用版本,以及这个 bug 是每次都出现还是偶发。
  5. 把截图放在它对应的那一步旁边。如果截了好几张,在屏幕上用同样的方式给它们编号。

给报告起一个陈述症状的标题,而不是猜测原因:「导出为 PDF 永远不结束」,而不是「导出器坏了」。

发送前先隐藏个人数据

客户姓名、邮箱地址、账号、URL 里的令牌、人脸和私密消息,都不该出现在 bug 跟踪系统里。在附上文件之前把它们模糊或马赛克掉,也别忘了检查屏幕边缘:浏览器标签、通知弹窗和文件路径常常泄露得比主窗口还多。

InSnap 的马赛克工具带有模糊。要彻底去掉某样东西,可以用智能擦除,它用周围的背景填补那片区域;这在平滑、渐变和界面背景上效果不错,但在内容繁杂的照片上、或物体的颜色与背景接近时就不可靠了。智能擦除属于 Pro;马赛克和模糊免费。

这些都发生在你自己的电脑上。除非你选择通过可选的 Cloud 订阅分享,否则 InSnap 不会上传截图。

文字说不清时,附上一段短片

有些 bug 是一个过程:闪烁的下拉框、落错位置的拖动、加载完后突然跳一下的页面。几秒钟的视频胜过一整段文字。

录制屏幕的一块区域 · 1280 × 800

InSnap 可以录制屏幕的一块区域,可选系统声音、麦克风、摄像头、点击效果或按键叠加。这里的点击和按键叠加尤其有用:看的人能准确看到你按了什么。快速录制会存成 MP4,基础录屏免费;GIF 输出,以及自动缩放、摄像头画中画、原画质导出这类编辑功能,属于 Pro。

片段要短,并提前一两步开始。即使有录像,也请附上文字步骤和一张静态截图:有些审阅者在手机上看,或者没法播放视频。

常见问题

一份 bug 报告应该包含什么?

准确的复现步骤、发生了什么、你期望什么、应用与系统版本,以及至少一张整窗截图。凡是会动的,再加一段短片。

应该把截图裁到只剩报错信息吗?

不要。保留整个窗口。标题栏、打开着的菜单以及周围的页面,通常包含开发需要的版本和状态。用圈或箭头标出报错,而不是把它裁掉。

怎样在截图里隐藏个人数据?

在附上文件之前,把姓名、邮箱、令牌和人脸模糊或马赛克掉,并检查窗口边缘有没有浏览器标签和通知。InSnap 在你的电脑上编辑,除非你选择分享,否则不上传任何东西。

视频比截图更好吗?

它们回答的是不同的问题。截图展示一个状态,视频展示一个过程。静态的问题用带序号的截图;涉及时机、动画、拖动或闪烁的 bug,用一段短片。

下一张截图,只需一个快捷键。

macOS 14.4+(Apple 芯片和 Intel)· Windows 10+(64 位)