2024-04-22 · 9 分钟阅读

可视化错误报告完整指南

每位开发者都收到过这样的 Bug 报告:“页面看起来很奇怪。”“出现错误了。”“它不起作用。”接着是三分钟的来回沟通:“哪个页面?什么错误?你点击了什么?”修复 Bug 可能只需要两分钟,但理解它却需要十分钟。

一张带注释的截图几乎消除了所有这些摩擦。问题清晰可见。位置一目了然。步骤有编号。开发者打开问题,准确地看到哪里出了问题,并立即开始修复。

本指南涵盖了您需要了解的关于可视化 Bug 报告的一切:它为何有效,如何做好,最省时间的注释技巧,以及使用哪些工具。

为什么截图在 Bug 报告中优于文本

基于文本的 Bug 报告存在三个根本问题:

模糊性。 “设置页面上的按钮不起作用”可能指 15 个按钮中的任何一个。“通知偏好设置面板中的提交按钮”缩小了范围,但仍然需要开发者导航到那里,找到按钮,并尝试重现。一张用箭头指向按钮的截图可以立即消除模糊性。

缺少上下文。 Bug 报告者描述他们认为相关的内容,但这通常不是开发者所需要的。一张截图可以捕获视野中的所有内容——错误消息、URL、浏览器状态、周围的 UI 元素——无论报告者是否想到要提及它们。许多 Bug 都是通过截图中可见但报告者从未提及的内容来诊断的。

重现困难。 “我点击后出现了一个错误”并不能帮助开发者重现问题。一系列编号的截图,显示每个步骤——“1. 打开设置,2. 点击导出,3. 出现此错误对话框”——将一个模糊的报告转化为可重现的测试用例。

微软和苏黎世大学的研究发现,带有可视化附件的 Bug 报告比纯文本报告解决速度快 13-18%。在每周有数百个 Bug 报告的大型组织中,节省的时间是巨大的。

有效 Bug 报告截图的构成要素

并非所有截图都一样。一张未经注释的原始截图总比没有好,但一张带注释的截图比原始截图更好。以下是区分优秀可视化 Bug 报告和出色报告的关键:

1. 捕获正确区域

使用区域捕获,而不是全屏捕获。目标是显示足够的上下文来定位问题,但又不要太多,以免查看者需要搜索。对于 UI Bug,捕获组件及其周围环境。对于错误对话框,捕获对话框并包含足够的背景以显示是什么触发了它。

2. 指出问题

使用箭头或圆圈精确指出问题所在。即使您认为这个 bug 很明显,也要记住开发人员可能还有十个其他问题待处理。箭头可以消除您报告内容中的任何歧义。

3. 使用文本注释添加上下文

简短的文本标签可以避免很多混淆。在错误的颜色旁边写上“预期:蓝色。实际:绿色”。在错别字旁边写上“这里应该是‘Export’,而不是‘Expprt’”。在加载缓慢的组件上写上“这在8秒后加载”。保持标签简短——最多一句话。

4. 标注步骤序号

对于需要一系列操作才能重现的 bug,带序号的注释非常宝贵。“步骤1:点击设置。步骤2:切换深色模式。步骤3:滚动到底部。步骤4:此元素消失。”截图上的每个数字都对应一个操作,从而创建了一个可视化的重现指南。

5. 遮盖敏感信息

在将截图附加到任何 bug 跟踪器之前,请检查是否存在可见的敏感数据:电子邮件地址、API 密钥、令牌、个人用户数据、内部 URL 或数据库内容。使用模糊或像素化工具遮盖任何不应出现在 bug 报告中的内容。这对于可能最终出现在公共 GitHub 问题中的截图尤为重要。 我们的截图安全指南 深入探讨了这一点。

按 Bug 类型划分的注释技巧

布局和 CSS Bug

在未对齐的元素周围绘制矩形。使用线条显示预期的对齐方式。添加带有特定值的文本标签:“预期间距 16px,实际 0px。”如果您可以打开 DevTools 并捕获计算样式,请将其作为第二张截图包含在内。

功能性 Bug

标注重现步骤。捕获损坏操作之前和之后的状态。如果有错误消息,请确保其完全可见并用矩形突出显示。如果能在浏览器控制台中看到错误,请将其包含在内——开发人员会查找 JavaScript 错误、网络故障和 CORS 问题。

内容和文案 Bug

圈出不正确的文本。添加带有预期内容的文本注释。对于错别字,指向特定单词的箭头就足够了。对于缺失内容,在内容应出现的位置绘制一个矩形并标记为“缺失:[描述]”。

性能 Bug

性能 bug 很难通过视觉捕获。最好的方法是截取浏览器“网络”选项卡显示慢速请求的截图,或“性能”选项卡显示长时间任务的截图。用时间戳进行注释:“此请求耗时 8.2 秒。”对于卡顿的动画,屏幕录制比截图更有用。

跨浏览器 Bug

截取两张截图:一张来自正常工作的浏览器,一张来自出现问题的浏览器。将它们并排放置或垂直堆叠,并加上标签:“Chrome 120(正常)”和“Firefox 121(有问题)”。视觉差异会使问题立即显而易见。

团队最佳实践

统一您的截图工具。 当团队中的每个人都使用相同的工具时,截图看起来会保持一致,并且每个人都知道有哪些注释功能可用。 Maxisnap 是团队的不错选择,因为它的注释工具涵盖了所有常见用例(箭头、数字、文本、模糊),而且它足够轻量,没有人会抱怨资源占用。

建立注释约定。 红色箭头表示“这是 bug”。绿色箭头表示“预期行为”。蓝色矩形表示“相关上下文”。带序号的圆圈表示重现步骤。这些约定无需正式文档化——五分钟的团队讨论就足够了。一旦建立,每个 bug 报告的创建和阅读都会变得更快。

包含环境信息。 养成在截图时捕获 URL 栏、浏览器版本或操作系统指示器的习惯。这些上下文信息通常在区域捕获中被剪掉,但它们可能是重现 bug 和花费一小时尝试之间的区别。或者,在 bug 报告的文本中,与截图一起包含环境详细信息。

使用上传链接,而不是文件附件。 Jira 评论中的截图链接会立即加载。一个 5 MB 的 PNG 附件需要点击和下载。像这样的工具 Maxisnap 自动上传功能可自动生成可分享链接,让您轻松将截图URL粘贴到任何错误跟踪器、Slack频道或电子邮件中。 设置SFTP上传 只需五分钟,即可为每次捕获提供永久链接。

工具推荐

最好的可视化错误报告工具具备三个特点:通过热键快速捕获、即时标注(无需切换到单独的编辑器)以及快速分享(上传或复制到剪贴板)。

  • Maxisnap — 最适合需要轻量级、键盘驱动捕获、即时标注和服务器上传的团队。包含编号步骤和模糊功能在内的11种标注工具。 免费供个人使用.
  • Snagit — 最适合需要高级标注功能并愿意支付$62.99的组织。步骤编号和智能移动工具非常适合文档制作。
  • ShareX — 最适合追求最大可配置性且不介意复杂性的开发者。免费且开源。
  • Loom — 当截图不足以说明问题,需要快速视频演示时,Loom是最佳选择。屏幕录制和旁白结合对于复杂错误非常有效。(如果您是Monosnap用户,请参阅我们的 Maxisnap 与 Monosnap 对比.)

优质错误截图的投资回报率

可视化错误报告不仅仅是一种好习惯——它对开发速度有着可衡量的影响。请看以下计算:

  • 一份纯文本错误报告在工作开始前平均需要2-3次澄清交流:累计约15分钟的等待时间
  • 一张带标注的截图可以消除这些交流:每个错误节省约15分钟
  • 一个团队每周提交50个错误,每周可节省约12.5小时的澄清时间
  • 一年下来,可节省超过600小时的开发者时间

而且这个计算只考虑了花在澄清上的时间。它不包括专注力中断的成本——每一次澄清交流都需要报告者和开发者进行上下文切换,每次切换都会额外花费10-15分钟的有效工作时间。

开始使用

如果您尚未在错误报告中使用带标注的截图,请立即开始。 下载一个支持标注的截图工具,花五分钟学习 键盘快捷键,然后尝试标注您的下一个错误报告,而不是写一段描述。

当开发者第一次回复“已修复,谢谢——截图很棒”而不是“您能澄清一下指的是哪个按钮吗?”时,您将永远不会再回到纯文本错误报告。

准备好尝试一款更好的截图工具了吗?

免费下载 Maxisnap,体验不同。

免费下载 Maxisnap