如何清晰的描述一个缺陷(Bug)?
软件和硬件工程师(Bug修复者)日常生活中经常会碰到各种Bug, 很多时候我们的精力浪费在了和测试人员(Bug提交者)反复沟通上,因为我们搞不懂测试人员想要表达啥?
当你的软件或硬件出现不符合预期的问题时,我们希望它能够尽快修复,不希望时间浪费在无效沟通上。
作为这个软件或硬件开发者,我们以工作为荣。但是,就像开发的任何方面一样,沟通至关重要。描述出了什么问题可能有些困难,但如果你能在一开始提供一个详尽的问题描述,这会加快问题的解决。
行业内对于如何描述Bug有各种思考,本文的三句话法是其中一种。下面的Bug模板用三句话来描述一个Bug:
三句话模板
-
复现Bug 的步骤
-
步骤1
-
步骤2
-
...
-
期望的结果
-
实际的结果
期望的结果模板: 我预期 [这会发生] 是因为 [这些原因]。
实际结果模板:然而,[发生了这种情况]。我看到了 [具体的错误消息]。我已经附上了截图。
1. 复现步骤
说明你是如何遇到错误或问题的, 即使对你来说似乎很明显( 对别人不明显)。
为什么提供重现错误的步骤很重要
-
重现错误通常比实际进行修复的代码更耗时; 大约80%的工作是找出最初出了什么问题! 清晰的重现步骤意味着我们可以大大缩短这段时间。
-
对发生了什么问题有一个清晰的描述,也给我的测试人员后续验证Bug是否修复提供了步骤,利人利己!
如何提供重现 错误的步骤
-
一步一步的描述你做的操作,说明你是如何发现问题的。包括诸如URL、登录的用户、浏览器和设备类型等细节。
-
不太好的例子: "登录并尝试查看您的产品。 "
-
更好的例子: "登录并在Chrome中点击 'My Products'。 "
-
最佳例子: "登录并点击顶部导航栏中的 'My Products' 选项卡。 我使用的是Macbook Pro上的Chrome浏览器。 "
2. 你期望发生什么
解释在按照第一部分中概述的步骤后, 你期望发生什么。有时候测试人员在描述期望的结果时会觉得这很傻,但这是有必要的,请相信我!
为什么需要期望的结果?
-
很多时候,一个缺陷实际上并不是一个编程缺陷;也许这是一个被误解的规范,或者这个功能设计得很差,或者导致了意外的行为(例如,你期望在编辑产品描述后点击 "保存" 将带你进入产品页面,但实际上你返回到了首页)。
-
如果事实上并不是一个编程缺陷,这并不意味着这不是一个有效的缺陷报告!这只是意味着我们将以不同的方式解决这个问题,而我们能够快速进行分类,我们就能更快地修复它。
如何描述期望结果?
-
使用简洁而有意义的语言;"我希望看到匹配我的搜索的所有用户列表" 可能听起来已经足够了,但 "当我搜索 'sam' 时,我期望在用户列表中看到 'Brian Samson',但没有看到" ,后一个描述更好,因为程序员是人不是机器人^-^
-
写上你为什么需要期望的结果?目的是啥?
-
不太好的描述:"我希望在查看 'active' 用户时看到 Janet 的资料。"
-
比较好的描述:"我希望在查看 'active' 用户时看到 Janet 的资料,因为她已经完成培训,我期望她被视为 'active'。"
-
最好的描述:"我希望在查看 'active' 用户时看到 Janet 的资料,因为作为已经完成培训的人,我期望她被认为是 'active'。"
3. 实际结果
为什么修复人员想要更多的细节?
-
在缺陷报告的第一部分,你描述了复现缺陷的步骤;在第二部分,你描述了你认为应该发生的情况;对于这最后一部分,我们想要了解实际发生的事情的具体细节:缺陷本身。
-
提供的细节越多,我们就能更好地确定缺陷的真实性质: 是用户体验不清晰? 是数据问题? 用户错误? 代码中的错误? 我们能够快速进行错误分类,就能更快地进行修复。
-
这一部分还帮助修复者确定问题的范围,以及它是否特定于某个设备(如Android或iPhone)、浏览器(如Firefox或Chrome)或操作系统(如Windows或Mac)。
如何简洁而有效的描述实际结果?
-
包括:屏幕截图、URL或URL(如果错误发生在网站上)、确切的错误消息或消息(如果有的话)、你使用的设备/浏览器/操作系统,甚至可能是一天中的时间或星期几。
-
尽可能具体和详细。 你不太可能提供过多的信息,一般都是过少了。
-
不太好的例子: "当我点击 'create' 时,什么都没发生。 "
-
更好的例子 : "当我点击 'create' 时,它没有起作用,并显示了一个错误消息。 "
-
最佳例子: "当我点击 'create' 时,它重新加载到 'new account' 页面,并在页面顶部以红色显示此错误: 'error saving Entity#{User}: 在第32行发生数据库连接故障'。 我附上了显示错误的屏幕截图。 "
加作者微信:jiyuyun18, 交流嵌入式软硬件技术
留言:嵌入式,加入嵌入式技术交流群
电子,加入电子技术交流群
总结
缺陷报告模板如下:
重现步骤
1. 转到 www.mywebsite.com。
2. 以管理员用户身份登录(我使用了 luz_guzman@email.com)。
3. 在管理员侧边栏中点击 "New Account"。
4. 在用户电子邮件字段中填写 "marta@email.com"。
5. 点击 "Create Account" 按钮。
期望结果
我期望这会为 Marta 创建一个新账户,并将我重定向到账户页面,页面顶部显示成功创建她的账户的通知,因为她的电子邮件尚未与当前账户关联,因此应该是一个全新的账户。
实际结果
相反,它重新加载了 "New Account" 页面,并在页面顶部以红色显示此错误:"Your account could not be created." 我附上了显示错误的屏幕截图。我是在今天早上9点左右使用Macbook Pro上的Chrome浏览器。
全文完,既然都看到这里了,就帮忙点个赞或者在看吧
。