一个bug的生命周期/过程是什么?一般来说,有没有什么建议或提示可以帮助修复bug的过程?
一个bug的生命周期/过程是什么?一般来说,有没有什么建议或提示可以帮助修复bug的过程?
除了标准的查找->修复->测试->发布周期外,还有一些其他的事项:
一个缺陷应该有多个分配,这样就可以将其分配给一个人进行修复和另一个人进行测试,而不是分配给单个人。
您的错误跟踪系统必须跟踪所有更改历史记录。
跟踪一个缺陷在哪个版本中被发现,修复,测试,然后发布。它们都是不同且重要的值。
具有将问题从错误更改为增强功能的能力。
拥有“问题”或“等待答案”的状态,表示已向业务分析师发送了问题,从本质上阻止了缺陷的进展。
将一个缺陷限制在一个问题上,以便您可以验证该问题是否真正得到解决。因此,如果屏幕有3个问题,就记录3个缺陷,而不是单个“某屏幕上的问题”;这些缺陷可以单独修复和发布,并且您需要能够跟踪它们。
关于这个主题的好书是:
Debugging by David J. Agans
其中之一是在调试时使用步枪而不是散弹枪方法。也就是说,一定要测试每个部分以找到问题。此外,一旦您进行修复,请尝试再次破坏它,以确保您了解出了什么问题。
有时我会发现自己修复了一些东西(在维护代码中),但却发现修复导致其他问题。在将错误标记为已修复之前,请确保修复不会破坏其他内容。
这带来了一个真正的问题: 无法完全理解代码正在执行的操作。
我的组织一直遵循这个模式:
系统工程师或QA注意到错误并将其输入错误跟踪工具中。
项目经理或开发主管根据严重性、可能的解决方法和修复所需的工作量对错误进行优先级排序。
项目经理或开发主管将错误分配给开发人员。
开发人员在必要时从第1步的人员那里获得帮助,重现错误。
开发人员编写解决方案并制作构建(或让其他人制作构建)。
来自第1步的测试人员重新测试错误。
如果错误已修复,则重新部署或打补丁。否则,请重复步骤5和6,直到修复或更紧迫的问题成为优先事项。
如果客户发现了错误,请与他们确认已修复。
通常,错误会经历以下分配周期:测试人员 -> (项目经理/主管,然后是开发人员;或者是开发人员) -> 测试人员 -> 项目经理/主管 -> 已关闭。
我在这里忍不住要说一句刻薄的话。我试过了,但最终崩溃了。真正的错误处理过程:
用户通过电子邮件请求开发人员修复错误。开发人员回复说,除非将其输入到项目管理系统中,否则无法处理。每个人都讨厌项目管理系统,因此用户抱怨必须输入它。开发人员坚定地表示需要一个地方来计费时间。 错误已输入到系统中并分配给另一个开发人员。
从这里有三个分支:
分支1,开发人员查看提供的屏幕截图,并注意到用户正在寻找2009年报告页面上的2010年数据。通知用户错误并关闭错误。
开发人员同意系统绝对不按照用户想要的方式工作。但是,它确实按照规范定义的方式工作。用户不想听到这现在是一个开发工作而不是错误。当他不得不告诉客户由于这是新工作,他将不得不额外支付费用时,用户特别沮丧。决定仍将其视为错误以使客户满意,并修复和关闭错误。后来管理层想知道为什么系统如此容易出错,我们在开发上亏损。
哦,天啊,真的有一个实际的错误,开发人员修复并将修复移动到生产环境并关闭错误。
测试(软件) -> 记录(漏洞) -> 修复 -> 验证 -> 关闭
简单问题,简单回答。希望这可以帮助您。
首先要确保你正在查看的错误确实值得你花时间去修复。在处理/生命周期中,弄清楚错误的影响以及对用户的影响是一个重要的第一步。当错误数量增加时,需要确定错误的优先级,不仅仅是一个,可能是数百个。
需要考虑的事情:
以下是有助于更轻松地确定错误优先级的方法:
您可以在这里找到更多有用的建议:https://blog.bugsnag.com/bug-prioritization/