- バグ
- バートランド・メイヤーによる災いの定義
- ISO/IEC 2382-14(JIS X 0014) (SQuBOK)
- ISTQB(International Software Testing Qualifications Board)
- まとめると
バグ
定義は曖昧なバグという言葉は広く使われています。
古くはパンチカードに紛れ込んだ虫がまさに問題の原因だったかも知れませんが、
今では、この災いはどこか我々の関与しないところから飛んできた罪のない虫によりもたらされたもので、我々開発者も困っているんですよ、
といった責任転嫁に都合の良いメタファーとして使われている。
バートランド・メイヤーによる災いの定義
オブジェクト指向入門 にて用語定義されています。
オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)
- 作者:バートランド・メイヤー
- 出版社/メーカー: 翔泳社
- 発売日: 2007/01/10
- メディア: 単行本(ソフトカバー)
エラー(error)
ソフトウェアシステムの開発中になされた誤った決定
欠陥(defect)
意図した振る舞いからシステムが逸脱してしまう原因となるソフトウェアシステムの特性
フォルト(fault)
何らかの実行中に意図した振る舞いから逸脱してしまうソフトウェアシステムのイベント
ソフトウェアの災いは、
「ソフトウェアシステムの開発中になされた誤った決定」により「意図した振る舞いからシステムが逸脱してしまう原因となるソフトウェアシステムの特性」が埋め込まれ、「何らかの実行中に意図した振る舞いから逸脱してしまうソフトウェアシステムのイベント」が発生する。 つまり、
エラーから欠陥が生じ、フォルトは欠陥により引き起こされる。
バグという言葉は、エラー・欠陥・フォルトを曖昧に語る。
「このルーチンにほかにバグが残っていないのは確かか?」
「このルーチンにほかに欠陥(defect)が残っていないのは確かか?」
「われわれはこの3週間の間に、バグの出ない処理を実現した」
「われわれはこの3週間の間に、フォルト(fault)の出ない処理を実現した」
「リストをソートせずに使ったことがバグである」
「リストをソートせずに使ったことがエラー(error)である」
ISO/IEC 2382-14(JIS X 0014) (SQuBOK)
SQuBOKでのこれらの用語は JIS X 0014に準拠した用語として使用されている。
誤り(error)
計算,観測若しくは測定された値又は状態と、真の、指定された若しくは理論的に正しい値又は状態との間の相違
障害(fault)
要求された機能を遂行する機能単位の能力の、縮退又は喪失を引き起こす、異常な状態。
故障(failure)
要求された機能を遂行する、機能単位の能力がなくなること。
ISTQB(International Software Testing Qualifications Board)
- 作者:ドロシー・グラハム,エリック・ファン・フェーネンダール,イザベル・エバンス,レックス・ブラック
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2008/07/01
- メディア: 単行本(ソフトカバー)
エラー(error)
間違った結果を生み出す人間の行為
欠陥(defect)/ フォールト(fault)
コンポーネント又はシステムに要求された機能が実現できない原因となる、コンポーネント又はシステムに含まれる不備。たとえば、不正なステートメント又はデータ定義。実行中に欠陥に遭遇した場合、コンポーネント又はシステムの故障を引き起こす。
故障(failure)
コンポーネントやシステムが、期待した機能、サービス、結果から逸脱すること
まとめると
error は人間系の判断の誤りを表し、
defect は error によりシステムが振る舞う特性を表し、
failure は defect が要因となり期待しない振る舞いとして観測された結果
で、fault はシステムの異常な状態を表す
という理解で良いのではないでしょうか。