将录制转化为可执行的报告
载入错误屏幕录制。播放它,每次发生重要事件时都进行标记。时间戳会被捕获,那一刻的视频帧会被抓取,并且该步骤会被放入编号列表中。
写下摘要,你期望发生什么以及实际发生了什么,然后将其作为 GitHub 的 Markdown、Jira 标记或纯文本复制出来。浏览器和屏幕详细信息已自动填写。
录制内容绝不会离开你的机器。它从本地文件播放,并在你的设备上绘制帧,这在错误存在于未发布的版本或客户帐户中时尤为重要。
为什么这不使用人工智能来编写报告
观看屏幕录制的模型可以描述它所看到的内容。它无法知道你期望看到什么,而这正是错误报告中决定是否有人可以根据其采取行动的一半内容。
“点击确认,发票面板为空”是一个观察结果。这是否是错误完全取决于那里应该出现什么,而唯一知道这一点的人是你。一个从视频生成预期行为的工具是在猜测,并将猜测作为发现呈现,这比留空字段更糟糕,因为一个貌似合理的错误预期会使开发人员走上错误的道路。
因此,这里的划分是故意的。该工具完成其能精确执行的机械工作:时间戳、帧、环境、格式、编号。你提供判断。这大约需要一分钟,结果是一份没有人需要再回来向你询问的报告。
报告通常遗漏的三个方面
阅读了大量薄弱的错误报告后,相同的缺陷反复出现,而且这三点都是机械性的而非困难的。
时间戳。一份说“请参见附件视频”的报告会迫使读者观看四分钟才能找到那一刻。而一个说它发生在 1:12 的步骤则不会。
环境。浏览器、操作系统、屏幕尺寸。每个人都知道要包含这些信息,但几乎没有人这样做,因为这意味着你在思考过程中需要打开一个设置面板。此处会从你的浏览器中读取这些信息,并已填写在报告中,你可以进行更正。
静止图像。失败那一刻的帧是二十个问题列表中被扫描的内容。手动从视频中提取帧非常繁琐,以至于人们会跳过它,因此在你标记的每个步骤中都会自动发生。
准确捕获的内容
每个标记的步骤都会记录精确的播放时间和该时刻视频中的 JPEG 帧,并按比例缩小以保持报告的轻量化。你可以下载这些帧以附加到问题中。
环境来自浏览器:其名称和版本、操作系统、带有像素比的屏幕尺寸以及视口尺寸。浏览器现在报告的自身信息比以前少了,因此其中一些可能会显示为未知,并且每个字段都是可编辑的而不是锁定的。
没有从像素中推断出任何信息。该工具不会尝试从屏幕上读取错误文本或猜测你点击了哪个元素,因为不可靠地这样做比不这样做更糟糕。
它填补的结构
输出遵循了错误报告已经确定的形式,因为跟踪器和阅读报告的人都期望如此。如果你一直在寻找错误报告模板,这便是一个已经填充好的模板,而不是一个你需要粘贴然后凝视的模板。
摘要放在第一行,因为这一行是某人在三十个问题列表中扫描时会看到的内容,它决定了你的问题今天是否会被打开。
然后是带有时间码的编号步骤、预期行为、实际行为和环境。这个顺序并非装饰。读者检查步骤以查看是否可重现,检查预期和实际行为以查看是否确实是一个错误,以及检查环境以查看是否与他们相关。埋藏其中任何一项都会导致额外的往返时间。
空白模板无法做到的就是自行填充,这正是让人们跳过它的原因。在这里,步骤、时间码、帧和环境都已填充完毕,你只需填写工具确实无法知道的三个字段。
录制前
报告的质量取决于录制效果,而以下两个习惯至关重要。
从已知状态开始。如果录制从会话中途开始,读者将无法猜测之前发生了什么,导致步骤无法重现。请从登录屏幕、新页面或描述的起始点开始。
清除屏幕上所有不应泄露的内容。例如,URL 栏中的令牌、客户姓名、另一个选项卡中不相关的电子邮件、开发者工具面板中的 API 密钥。错误报告会被转发、粘贴到聊天中并由团队外部人员阅读,而屏幕录制会记录当时屏幕上显示的所有内容。此工具绝不会上传视频,但报告和帧会随您发送到任何地方。
它不做什么
它不会提交问题。它不与 GitHub、Jira 或任何其他平台连接;您需要复制报告并将其粘贴到相应位置,这意味着您可以在其他人之前阅读它。
它不捕获日志、网络请求或控制台输出。这些内容存在于您的开发者工具中,对某些错误至关重要。请通过您团队已使用的任何安全途径附加它们,而不是录制控制台。
它也不会诊断任何问题。它不会告诉您原因、哪个组件出了故障,或者这是否与现有问题重复。它的全部作用是将证据整理成易于处理的形式。