什么构成错误?


10

其实什么是bug?任何预定义的规则?


我们可以有一些背景吗?您是从纯技术角度讲,还是要在跟踪网站上报告的错误?
杰里米

5
所有错误都只是隐藏的功能:)
Marco Ceppi

2
我倾向于说“未记录的功能”而不是隐藏的:-)
Little Jawa

Answers:


14

一个错误是:

软件错误是用于描述计算机程序或系统中的错误,缺陷,错误,故障或错误的通用术语,该错误,缺陷,错误,故障或错误会导致产生错误或意外的结果,或导致其行为异常。(来自维基百科

是什么构成错误的另一个好定义。要么:

  1. 该程序没有按照程序员的意图运行。要么
  2. 程序员的意图没有满足用户的普遍和合理期望。

Ubuntu社区在此Wiki中对错误的定义非常出色,尤其着重指出了错误缺少功能之间的区别:

软件错误是计算机程序中的错误或故障,导致其无法正常运行。可能就像根本无法工作一样简单,也可能由于结果不正确而变得复杂,有些东西不是错误,但缺少应合理包括的功能。缺少的功能不应报告为错误,而应为它们编写FeatureSpecifications。

虽然很难划清两个定义的界限,并回答问题是错误还是缺少功能?,可以给出一些指导:

  • 如果这是一个需要解决许多细节的问题,则可能是一项功能。例如,无法将文件安全地写入现代Windows分区是缺少的功能。
  • 无法将文件安全地写入ReiserFS分区将是一个错误。

这两个断言之间的区别是:第一个断言更加广泛(支持现代Windows FS),因此可以视为缺少功能,而另一个断言则强调一个独特的问题(无法写入ReiserFS)-一个特定的错误。

如果您有兴趣,建议您阅读BugSquad团队 Wiki。消除bug是软件开发周期中最有趣的活动之一,除了是一个很好的学习机会之外,:-)

谢谢!


不错,尽管它并不直接相关,但值得一提的是,您要提交的每个错误都必须是可复制的。
danizmax 2010年

不,由于比赛条件存在错误。您为什么不也要提交它们?如果程序员不能重现该错误将很困难,但这不会影响这样做的愿望,不是吗?
用户未知

请同时参考Ubuntu BugSquad的bug指南:wiki.ubuntu.com/Bugs
Thomas Ward

2

我去荡秋千。主要是设计者/程序员所不希望的行为(减少不良设计)。关于应该向人们报告的错误,任何使程序难以使用并符合以上描述的内容。这包括从最严重到最不严重的系统崩溃,X崩溃,程序崩溃以及任何内部程序错误。

如果您从终端运行应用程序,则导致崩溃或窗口关闭的错误通常会导致某种输出为标准错误,这很有用。另请参阅系统日志以获取错误报告。


1

错误是计算机程序或系统中的错误,因此该程序无法正常工作或根本无法工作。因此,错误可能是由于错误的程序代码或程序代码不够健壮且无法处理某些异常(例如:除以0)引起的


1

出于所有实际目的,术语“ bug”应避免过于模糊。

最好的答案是整本书:Andreas Zeller 撰写的“ Why Programs Fail”。一本应该放在每个程序员的书架上的书。作者还尽力避免将其称为“错误”(请继续阅读)。因为正如crncosta的回答已经表明,“错误”不只是编程错误。这就是为什么有些人更喜欢术语“问题”(导致使用“问题跟踪器”而不是“错误跟踪器”)的原因。

因为最终用户将其视为错误,所以根本不必是错误。即使是经常被用作a脚的借口,也可以只是设计使然。但是,一旦发现某些故障,即使是由于缺乏功能,也被归类为“错误”。

前述书籍的作者在术语的定义(例如故障缺陷)上花费了数页,并描述了“错误”为什么不是合适的术语(过于模糊)的原因。

他的术语摘要:

  1. 程序员造成缺陷
  2. 缺陷导致感染(“程序错误状态”)
  3. 感染传播
  4. 感染导致失败(“可观察到的不良/意外行为”)
  5. 观察者(通常是最终用户)看到失败

如您所见,作者区分了因果关系,在“错误”的情况下,因果关系几乎总是混杂在一起的。大部分时间的“错误”一词被应用到缺陷时,感染 失败

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.