ソフトウェアテストを行う際の3つのテクニック

テスト

0. はじめに

テストを行う際の3つのテクニックについて記載してみました。

1. テストを行う際の3つのテクニック

1-1. 「なぜこの値を入力するのか」を明確にする

ショッピングサイトのテストで商品購入機能をチェックする場合、テスト条件に「購入する商品:商品A」としか書かれていないことがあります。
これではなぜ商品Aを選択しなければならないのかが読み手に伝わりません。意図が読み取れないと、以下のような問題が発生します。

  • 妥当性が不明なテストケースが出来上がる
  • テストケースのレビューの効率が落ちる

こうした事態を防ぐため、入力値の持つ意味を書いておくのが効果的です。
例えば、以下のような記載です。

  • 「購入する商品:翌日お届けが可能な商品(商品A)」
  • 「購入する商品:翌日お届けが不可能な商品(商品B)」

こうすれば読み手に意図が伝わり、手戻りや誤解を避けることができます。

1-2. 期待値に「処理が正しいこと」「問題がないこと」と書かない

期待値でよく見かけるのが、「処理が正しいこと」「問題がないこと」といった表現です。
これらの表現は、読む人によって様々な意味に捉えられてしまいます。
もし、テストケース作成者とテスト実行者とで、想定している正しい処理に食い違いがあれば、トラブルに繋がります。

例えば、エラーメッセージの扱いです。
テストケース作成者は、エラーメッセージが表示されることを想定して

  • 「処理が正しいこと」

と記載したとします。
しかしテスト実施したところ、何のエラーもなく処理が完了してしまいました。
テストケース作成者の意図としては、この場合は「誤った処理」ですが、テスト実行者は「正しい処理」と判断してしまう可能性があります。

期待値で誤解を生まないためには、期待される処理の内容を具体的に書くべきです。例えば、

  • 「在庫切れのため購入できません」とエラーメッセージダイアログが表示されること

といった記載にします。こうすれば読み手に誤解を与えにくくなります。

1-3. 仕様書に「~できる」が出てきたら「~できない」を連想する

仕様書に「管理者ユーザーは、管理画面にアクセスできる」という記載があったとします。
多くの人は「管理者ユーザーのアカウントでログインして、管理画面が閲覧できることを確認する」といった内容のテストケースを作ると思います。

しかし、このケースだけでは不十分です。理由はとしては全ユーザーがシステム管理画面にログインできてしまうかもしれないからです。つまり、

  • 「管理者ユーザーなのにシステム管理画面にアクセスできない不具合」は見つけられますが、
  • 「一般ユーザーなのにシステム管理画面にアクセスできる不具合は見逃してしまう」ことになります。

この場合は、「管理者ユーザー以外のアカウントでログインしたときは、システム管理画面にアクセスできないこと」を確認するテストケースを作るべきです。

仕様書から、表面的な文章だけを参考にしてテストケースを作ると、暗に示された内容についての検証が漏れてしまいます。

そうならないため、「〇〇できること」を確認するテストケースを作ったら、セットとして「××できないこと」のテストケースが必要かどうかを必ず考えるべきです。