AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 14726
Accepted
Muthu
Muthu
Asked: 2010-11-25 04:34:27 +0800 CST2010-11-25 04:34:27 +0800 CST 2010-11-25 04:34:27 +0800 CST

什么是错误?

  • 772

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

bug-reporting
  • 4 4 个回答
  • 430 Views

4 个回答

  • Voted
  1. Best Answer
    crncosta
    2010-11-25T04:48:33+08:002010-11-25T04:48:33+08:00

    一个错误是:

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

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

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

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

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

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

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

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

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

    谢谢!

    • 14
  2. Jeremy
    2010-11-25T04:43:24+08:002010-11-25T04:43:24+08:00

    我会挥杆的。主要是设计者/程序员不打算的行为(不考虑糟糕的设计)。就您应该向人们报告的错误而言,任何使程序更易于使用并符合上述描述的内容。这包括从最严重到最不严重的系统崩溃、X 崩溃、程序崩溃和任何内部程序错误。

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

    • 2
  3. 3sdmx
    2010-11-25T04:44:02+08:002010-11-25T04:44:02+08:00

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

    • 1
  4. 0xC0000022L
    2012-06-13T10:25:45+08:002012-06-13T10:25:45+08:00

    出于所有实际目的,应避免将术语“错误”作为一个过于模糊的术语。

    您的问题的最佳答案写满了一整本书: Andreas Zeller 的“为什么程序失败”。一本应该放在每个程序员书架上的书。作者还努力不称它们为“错误”(继续阅读)。因为 crncosta 的回答已经表明“错误”不仅仅是一个编程错误。这就是为什么有些人更喜欢术语“问题”(这导致“问题跟踪器”而不是“错误跟踪器”)。

    因为最终用户认为是错误的东西根本不需要是错误。它可以——尽管这经常被用作一个蹩脚的借口——只是设计使然。然而,一些故障一旦被观察到,就被归类为“错误”,即使它们是由于缺少功能。

    上述书的作者花了好几页来定义诸如失败和缺陷之类的术语,并描述了为什么“错误”不是一个合适的术语(太模糊了)。

    他的术语摘要:

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

    正如你所看到的,作者区分了因果,在“bug”的情况下几乎总是混合的。大多数时候,术语“错误”被用于缺陷、感染 和故障。

    • 1

相关问题

  • 如何报告错误?

  • 当 Ubuntu 死机时我该怎么办?

  • 在哪里提交 Unity 的错误/愿望清单?

  • 当上游维护者似乎不活跃时,如何将补丁应用于包?

  • 如何最好地重新测试较新或开发版本中的错误?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve