飞多学堂

文章数:33 被阅读:73110

最热技术文章
电流源电路
账号入驻

如何清晰的描述一个缺陷(Bug)?

最新更新时间:2024-01-08
    阅读数:

软件和硬件工程师(Bug修复者)日常生活中经常会碰到各种Bug, 很多时候我们的精力浪费在了和测试人员(Bug提交者)反复沟通上,因为我们搞不懂测试人员想要表达啥?

当你的软件或硬件出现不符合预期的问题时,我们希望它能够尽快修复,不希望时间浪费在无效沟通上。

作为这个软件或硬件开发者,我们以工作为荣。但是,就像开发的任何方面一样,沟通至关重要。描述出了什么问题可能有些困难,但如果你能在一开始提供一个详尽的问题描述,这会加快问题的解决。

行业内对于如何描述Bug有各种思考,本文的三句话法是其中一种。下面的Bug模板用三句话来描述一个Bug:

三句话模板

  1. 复现Bug 的步骤

    1. 步骤1

    2. 步骤2

    3. ...

  2. 期望的结果

  3. 实际的结果


期望的结果模板: 我预期 [这会发生] 是因为 [这些原因]。

实际结果模板:然而,[发生了这种情况]。我看到了 [具体的错误消息]。我已经附上了截图。

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浏览器。

全文完,既然都看到这里了,就帮忙点个赞或者在看吧

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved