ソフトウェアテストを学ぶ その2.ソフトウェアの欠陥(バグ)って皆どんなイメージ?
こんちは。しゃかりきコロンブスなふっくら太郎です。
今回はソフトウェアの欠陥 (バグ) について勉強したいと思います。
ソフトウェアの欠陥とは言うものの・・・
普段、私たちソフトウェアエンジニアや開発担当者は「バグがー、バグがー」と言っておりますが、この欠陥 (バグ) についての認識って、皆さん同じでしょうか?
- ある人は言う、ソフトウェアの不具合(問題)を「欠陥」だと
- ある人は言う、ソフトウェアの不具合の原因を「欠陥」だと
- ある人は言う、ソフトウェアの不具合による問題動作を「欠陥」だと
みたいなことは無いでしょうか?
もし、欠陥についての認識がプロジェクト内で各々バラバラだとしたら、コミュニケーションを行う際に問題が生じてしまいます。
そのため、欠陥を一括りにするのではなく、「欠陥の内容」、「発生原因」、「発生する事象」を分類して認識しなければなりません。
ソフトウェアの欠陥の分類
国際ソフトウェアテスト資格認定委員会 (International Software Testing Qualifications Board 以降ISTQB)では、ソフトウェアの欠陥を以下の4つに分類しています。
- エラー (誤り)
- フォルト (fault)
- 故障 (failure)
- インシデント
エラー (誤り)
ソースコード、ソフトウェア、システム、ドキュメントの欠陥原因。
エラーは以下のような人的要因により発生する。
平たく言うと、仕様の誤解や作業ミスによって欠陥原因は埋め込まれる。
要求定義、外部設計・外部設計に関するエラー
- 顧客の要求抽出が不十分なため、要求通りソフトウェアが作られていない。
- 操作性の考慮が不十分なため、操作性が悪い。画面、ヘルプを見ても操作方法が分からない。
- パフォーマンスを考慮できておらず、レスポンスが悪い。処理が遅い。
- 仕様書等ドキュメントの不備による誤実装。
内部設計・プログラミングに関するエラー
- 異常検知はできるが、復帰処理が不十分なため、問題が発生しても復旧できない。
- 境界範囲内は考慮できているが、境界範囲上、範囲外が考慮できておらず、エラーが頻発する。
- 初期化漏れ、制御フローの不備、データ処理、解釈の不備。
- イベント競合時の振る舞いの考慮漏れ。
- 負荷状態時のリソース不足。
- ハードウェア故障、誤動作によるエラー。
その他のエラー
- ソースコード、ライブラリーの構成管理ミス。
- テスト項目、手順ミス。
フォルト (fault)
ソフトウェアに埋め込まれたソフトウェアの正常動作を阻害する欠陥。
ソフトウェアの故障を引き起こす原因。
- フォルト(fault)
- 欠陥
- バグ
は同義語として使われている。
故障 (failure)
ソフトウェアに埋め込まれた欠陥により、所定の機能を正しく実行できない状態。
- ソフトウェアの故障は必ず発生するものもあれば、特定の条件下でのみ発生するものがある。
- ファームウェアの誤動作や、ハードウェアの構成変更により故障が顕在化することがある。
インシデント
ソフトウェアを使うユーザーやテスト担当者が期待する動きと、ソフトウェアの実際の動きが異なる事象のこと。
- インシデントの詳細を記載したものをインシデントレポート (不具合票、障害票) と呼ぶ。
- テスト項目の内容や、テスト実施方法の誤りが原因でインシデントが発生することがあるため、インシデント = 故障 (failure) にはならない。
まとめ
- ソフトウェアの欠陥は人によって定義がまちまち。欠陥原因、欠陥の内容、欠陥により発生する問題について分類した上で正しく認識しなければならない。
- ISTQBでは、欠陥をエラー、フォルト、故障、インシデントの4つに分類して定義している。各項目の関係は下図のとおり。
- 欠陥分析を正確に行うためには、この辺りの分類の管理、共通認識をしっかりしていかないといけない。
[参考]
ソフトウェアテスト教科書 JSTQB Foundation 第3版
- 作者: 大西建児,勝亦匡秀,佐々木方規,鈴木三紀夫,中野直樹,町田欣史,湯本剛,吉澤智美
- 出版社/メーカー: 翔泳社
- 発売日: 2011/11/12
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 85回
- この商品を含むブログ (12件) を見る
- 作者: Cem Kaner,Hung Quoc Nguyen,Jack Falk,テスト技術者交流会
- 出版社/メーカー: 日経BP社
- 発売日: 2001/11/25
- メディア: 単行本
- 購入: 5人 クリック: 151回
- この商品を含むブログ (24件) を見る