バグとは何ですか?


10

実際にはバグとは何ですか?事前定義されたルールはありますか?


何かコンテキストがありますか?あなたは純粋に技術的な観点から話しているのですか、それとも追跡サイトで報告されるバグですか?
ジェレミー

5
すべてのバグは隠された機能です:)
Marco Ceppi

2
私は隠されているよりも「文書化されていない機能」と言う傾向があります:-)
リトルジャワ

回答:


14

バグは:

ソフトウェアのバグとは、コンピュータープログラムまたはシステムのエラー、欠陥、間違い、失敗、または障害を説明するために使用される一般的な用語であり、不正確または予期しない結果を引き起こしたり、意図しない方法で動作させたりします。(ウィキペディアより

バグを構成するものの別の適切な定義を次に示します。どちらか:

  1. プログラムはプログラマーの意図どおりに動作しませんでした。または
  2. プログラマーの意図は、一般的で合理的なユーザーの期待を満たしていませんでした。

Ubuntuコミュニティでは、このwikiでバグの優れた定義があり、特にバグ不足している機能の違いが強調されています

ソフトウェアのバグとは、コンピュータプログラムのエラーまたは障害であり、想定どおりに機能しなくなります。これは、まったく機能しないなどの単純な場合もあれば、微妙に正しくない結果と同じくらい複雑な場合もあります。不足している機能はバグとして報告すべきではなく、代わりにFeatureSpecificationsを作成する必要があります。

2つの定義を分ける線を引き、質問に答えるのは難しいですが、それはバグなのか、機能がないのですか?、いくつかのガイドラインを与えることが可能です:

  • 対処すべき詳細が多い問題である場合は、機能である可能性があります。たとえば、最新のWindowsパーティションにファイルを安全に書き込めないという機能はありません。
  • ReiserFSパーティションに安全にファイルを書き込むことができないと、バグになります。

2つのアサーションの違いは次のとおりです。最初のアサーションはより広範で(最新のWindows FSをサポート)、欠落した機能として表示できますが、もう1つは固有の問題(ReiserFSに書き込めない)-特定のバグを強調しています。

興味のある方は、BugSquadチームの wikiをご覧になることをお勧めします。バグと戦うことは、優れた学習機会であることに加えて、ソフトウェア開発サイクルに関わる最も興味深い活動の1つです:-)

ありがとう!


良いものですが、直接関係はありませんが、コミットしたいすべてのバグは再現可能でなければならないことを言及する価値があるかもしれません。
danizmax 2010年

いいえ、競合状態によるバグがあります。なぜあなたもそれらをコミットしたくないのですか?プログラマーがバグを再現できない場合、それは難しいでしょうが、それがその希望に影響を与えないのでしょうか?
ユーザー不明

バグに関するUbuntu BugSquadのガイドも参照してください:wiki.ubuntu.com/Bugs
Thomas Ward

2

ブランコに乗る。主に、デザイナー/プログラマーが意図していない動作(悪いデザインは割引)。どのようなバグをユーザーに報告する必要があるか、プログラムを使用するのを困難にし、上記の説明に適合するもの。これには、システムクラッシュ、Xクラッシュ、プログラムクラッシュ、およびすべての内部プログラムバグが含まれます。

クラッシュやウィンドウクロージャを引き起こすバグは、通常、ターミナルからアプリケーションを実行した場合に、なんらかの出力をstderrorに引き起こします。これは有用な場合があります。エラーレポートについては、システムログも参照してください。


1

バグはコンピュータプログラムまたはシステムのエラーであるため、プログラムは正常に動作しないか、まったく動作しません。したがって、バグは誤ったプログラミングコード、または十分に堅牢ではなく、特定の例外を処理できないプログラミングコード(たとえば、0による除算)の結果である可能性があります。


1

すべての実用的な目的のために、「バグ」という用語は、あいまいすぎる用語として避けてください。

あなたの質問に対する最良の答えは、本全体を埋めます:Andreas Zellerによる"Why Programs Fail"です。すべてのプログラマーの本棚にあるはずの本。著者はまた、それらを「バグ」と呼ばないように努力しています(以下を参照)。crncostaの答えがすでに示唆しているように、「バグ」は単なるプログラミングエラーではありません。これが、一部の人々が代わりに「問題」という用語を好む理由です(「バグトラッカー」ではなく「問題トラッカー」につながります)。

なぜなら、エンドユーザーがバグとして認識したものは、バグである必要はまったくないからです。これは、単純な言い訳としてよく使用されますが、単に設計上可能です。ただし、機能が不足しているために発生するとしても、一部の障害は「バグ」として分類されます。

前述の本の著者は、失敗欠陥などの用語の定義と、「バグ」が適切でない(あいまいすぎる)理由を説明するために数ページを費やしています。

彼の用語の要約:

  1. プログラマーが欠陥を作成する
  2. 欠陥感染を引き起こします(「プログラム状態の誤り」)
  3. 感染が拡大する
  4. 感染により障害発生する(「目に見える悪い/意図しない動作」)
  5. オブザーバー(通常はエンドユーザー)が失敗を見る

ご覧のとおり、作成者は原因と結果を区別しています。これは、「バグ」の場合はほとんど常に混合されます。時間のほとんどは、用語「バグ」は、適用されている欠陥感染症 および失敗

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.