什么是重大缺陷以及如何克服它们?
据说[软件缺陷减少前10名列表] “大约 40% 到 50% 的用户程序包含重要缺陷”。
有哪些重要的缺陷以及如何克服它们?
It is said [Software Defect ReductionTop 10 List] that, 'about 40 to 50 percent of user programs contain nontrivial defects'.
What are some nontrivial defects and how to overcome them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我将“不平凡”解释为“对用户有真正的影响”。
例如,如果菜单项中有拼写错误,那将是一个微不足道的缺陷。 如果您的电子表格应用程序在尝试保存任何包含数字“999”的工作表时崩溃,那将是不小的事情。
如果这个数字真的低至 40-50%,我会感到非常惊讶。 根据我的经验,几乎每个重要的应用程序都存在不平凡的缺陷,即使它们很少遇到。 (如果我是世界上唯一在电子表格中使用数字 999 的用户,这个错误对我来说仍然非常重要,所以我认为它不能被归类为微不足道。
)为了“克服”缺陷——正常的单元测试、持续构建、自动化集成测试、手动测试,确保你有一个真正良好的用户反馈系统,以及愿意投入资源修复错误和创建新错误的管理层特征。
I would interpret "non-trivial" as "has a real impact on the user".
For instance, if a menu item has a typo in it, that would be a trivial defect. If your spreadsheet application crashed when it tried to save any sheet with the number "999" in, that would be non-trivial.
I'd be hugely surprised if the number was really as low as 40-50%. In my experience pretty much every signficant application has non-trivial defects, even if they're rarely encountered. (If I'm the only user in the world who uses the number 999 in a spreadsheet, the bug is still hugely important to me so I don't think it can be classed as trivial.)
As for "overcoming" defects - the normal barrage of unit tests, continuous build, automated integration tests, manual testing, making sure you have a really good user feedback system, and management who are willing to put resources into fixing bugs as well as creating new features.
主观的,但是:
重要的:阻止用户完成工作或在很大程度上影响他们的工作效率的缺陷
琐碎:只会惹恼用户的缺陷
显然,这里有一个很大的灰色区域,因为对于一种产品来说令人烦恼和琐碎的事情可能对另一种产品来说很烦人但并非微不足道。
Subjective, but:
Non trivial: defects that stop users doing their job, or that impact their productivity to a significant degree
Trivial: defects that just annoy users
Obviously there is a big grey area here, because what's annoying and trivial for one product might be annoying but non-trivial for another.
首先,值得注意的是,大多数单一缺陷都是微不足道的:测试的目的是发现它们。
因此,非平凡缺陷通常是两个或多个单一缺陷的组合,每个缺陷单独时都是无害的(测试输入不会触发它们)。
重要的第二步是时间是输入/输出空间的一部分:特定日期或持续时间。
然后你可以添加假设和现实之间的差异:编译器、目标平台、输入……
动摇所有这些,愿力量与你同在……
First, it is worth noting that most single defects are trivial: tests aim at discovering them.
So non trivial defects are generally a combination of two or more single defects, each of them being harmless alone (test input didn't trigger them).
A second step in non triviality is when time is part of the input/output space: specific dates or durations.
Then you can add discrepancies between assumptions and reality: compiler, target platform, inputs, ...
Shake all of that and may the force be with you...
首先尝试了解对方:琐碎的缺陷。 一个微不足道的缺陷要么是无害的,要么很容易修复(UI 中文本中的拼写错误、按钮颜色错误、标签未完美对齐)。
重要的缺陷包括其他一切:性能问题、应用程序处理、数据损坏等。它们有时很难发现,而且通常很难修复。
Try to understand the other side first: Trivial defects. A trivial defect is either harmless or easy to fix (typo in a text in the UI, wrong color for a button, labels are not aligned perfectly).
Non-trivial defects are everything else: Performance problems, handling of the application, data corruption, etc. They are sometimes hard to find and often hard to fix.