ソフトウェテストの教科書 1章の内容を自分の言葉で要約した記事となります。詳しく知りたい方は本書をご覧ください。
はじめに
QAエンジニアになったばかりの頃、「テストって何をすればいいの?」「バグを見つけるだけが仕事?」と悩むことはありませんか?
テストの本当の目的は
「ユーザーに価値を提供する品質の良いソフトウェアを作ること」
です。この記事では、QAエンジニアとして知っておきたい品質とテストの基本的な考え方を、分かりやすく解説します。
1. まずは用語を整理しよう
「バグ」「不具合」「欠陥」の違い
チーム内でよく混同される用語ですが、実は明確な違いがあります:
- 不具合:原因がまだ分からない「何かおかしい現象」
- 欠陥:調査の結果、原因がソフトウェアにあることが特定されたもの
具体例で考えてみましょう
❌ 曖昧な報告:「ログインでバグが発生しました」
⭕ 明確な報告:「ログイン画面で不具合を発見しました。調査します」
→ 調査後「認証ロジックに欠陥がありました」
なぜ用語を使い分けるの?
- 原因調査の優先度を適切に判断できる
- 外部要因(ネットワーク障害など)とソフトウェア要因を区別できる
- チーム内のコミュニケーションが正確になる
💡 実践のコツ:チーム内で用語の定義を最初に合わせておくと、後々のトラブルを避けられます!
2. 品質って結局何?
2つの有名な品質定義
フィリップ・B・クロスビー:「品質とは要求を満たすことである」
G.M.ワインバーグ:「品質は誰かにとっての価値である」
これらを統合すると...
品質の良いソフトウェア = ユーザーの要求を満たし、ユーザーに価値を提供するソフトウェアである
QAエンジニアが考えるべきこと
テストをする時は、常にこの2つの視点を持ちましょう:
- 要求を満たしているか?(仕様書通りに動くか)
- 価値を提供しているか?(ユーザーにとって使いやすいか、問題解決できるか)
3. 検証と妥当性確認(V&V)
2つの重要な確認作業
-
検証(Verification):「正しく作っているか?」
- 仕様書通りにソフトウェアが作成されているかチェック
-
妥当性確認(Validation):「正しいものを作っているか?」
- ユーザーの要求通りにソフトウェアが作成されているかチェック
実際の例で理解しよう
ECサイトの商品検索機能の場合
検証のテスト例
- 仕様書:「商品名で部分一致検索ができる」
- テスト:「スマート」で検索→「スマートフォン」が表示される ✅
妥当性確認のテスト例
- ユーザー要求:「欲しい商品を素早く見つけたい」
- テスト:検索結果の並び順は使いやすいか?フィルター機能は十分か?
4. 狩野モデルで品質を分類しよう
ユーザー満足度の観点から、品質を3つに分類できます:
当たり前品質
「ないと困る」基本機能
- 例:ログイン機能、データの保存
- テストの重要度:★★★(最優先)
- ユーザーの反応:あって当然、ないと大クレーム
一元的品質
「あると嬉しい」機能
- 例:処理速度の向上、使いやすいUI
- テストの重要度:★★☆
- ユーザーの反応:良くなるほど満足度アップ
魅力的品質
「あると感動する」機能
- 例:AIによる推薦機能、革新的なUX
- テストの重要度:★☆☆
- ユーザーの反応:なくても文句は出ないが、あると大喜び
テスト戦略への活用
優先度の付け方:
1. 当たり前品質のテスト(基本機能)
2. 一元的品質のテスト(性能・使いやすさ)
3. 魅力的品質のテスト(革新機能)
5. ISO/IEC 9126品質特性規格
ソフトウェアの品質を6つの特性で評価する国際標準:
- 機能性:決められた機能が正しく動作する
- 信頼性:安定して動作し続ける
- 使用性:使いやすい
- 効率性:リソースを効率的に使用する
- 保守性:修正・改良しやすい
- 移植性:異なる環境でも動作する
QAエンジニアとしての活用法
- テスト計画時に「どの品質特性を重視するか」を明確にする
- 品質特性ごとにテスト手法を変える
まとめ
QAエンジニアとして大切なのは:
✅ 用語を正確に使い分ける(チーム内での混乱を避ける)
✅ ユーザーの価値を常に意識する(単なるバグ探しではない)
✅ 検証と妥当性確認の両方を行う(正しく作る+正しいものを作る)
✅ 品質特性を理解してテスト戦略を立てる(効率的なテスト)
以上 第1章 ソフトウェアテストとは から学んだ記事でした。