什么是错误?

Mut*_*thu 10 bug-reporting

实际上什么是错误?任何预定义的规则?

crn*_*sta 14

一个错误是:

软件错误是用于描述计算机程序或系统中的错误、缺陷、错误、故障或故障的常用术语,这些错误、缺陷、故障或故障会产生不正确或意外的结果,或导致其以非预期方式运行。(来自维基百科

下面是关于什么构成错误的另一个很好的定义。任何一个:

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

Ubuntu 社区在这个wiki 中有一个很好的 bug 定义,特别强调了bug缺失功能之间的区别:

软件错误是计算机程序中的错误或故障,导致它无法按预期工作。这可能就像根本无法工作一样简单,也可能像一个微妙的错误结果一样复杂 [...] 有些东西不是错误,而是缺少应该合理包含的功能。不应该将缺失的功能报告为错误,而应该为它们编写 FeatureSpecifications。

虽然很难在两个定义之间划一条线并回答问题是错误还是缺少功能?,可以给出一些指导方针:

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

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

如果您有兴趣,我建议您查看BugSquad 团队wiki。与错误作斗争是软件开发周期中最有趣的活动之一,除了是一个很好的学习机会 :-)

谢谢!