2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

ナイスなテストケースを作成するための3つのテクニック

Last updated at Posted at 2023-06-21

はじめに

:writing_hand:お題は不問!Qiita Engineer Festa 2023で記事投稿!の参加記事になります!

ソフトウェアの品質確保にはテストは欠かせません。
テストを実施する前には、テストケース(≒テストのための資料)を作成することがほとんどかと思います。
会社やプロジェクトによってテストケースの書き方は様々かと思いますが、広い範囲で取り入れることができそうなテクニックについて3つまとめました:writing_hand:

3つのテクニック

1. そのデータにする目的を明確にする

例えば、通販サイトにて「ご利用ポイント」をテストする際、テスト条件に「ご利用ポイント:1000円」としか書かれていないことがあります。
これでは、なぜご利用ポイントを1000円とするのか読み手に伝わりません。その結果、以下のような問題が発生します:boom:

  • テストケースのレビューが非常にやりにくい
  • テスト実施者は何を目的としたテストなのかが分からない
    (テスト実施者=テストケース作成者とは限らない)

このような問題を防ぐため、そのデータにする目的を明確にするのが効果的です:muscle:

  • ご利用ポイント:900円(所有ポイントより少ない)
  • ご利用ポイント:1000円(所有ポイントと等しい)
  • ご利用ポイント:1100円(所有ポイントより多い)

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

2. 期待値は具体的に書く

期待値でよく見かけるのが、「処理が正しいこと」「問題がないこと」といった表現です。
このような表現は非常に曖昧であるため、読む人によって様々な意味に捉えられてしまいます。

例えば、「ご利用ポイントの範囲内であれば、買い物ができる」という仕様があったとします。
テストケース作成者は、期待値を以下のようにしたとします。

  • ご利用ポイント:900円(所有ポイントより少ない)
    • 期待値:処理が正しいこと

これをテスト実施したところ、買い物が完了してしまいました。
テストケース作成者の意図としては、買い物ができてしまったため「誤った処理(バグ)」ですが、テスト実行者は「正しい処理」と判断してしまう可能性があります:scream:

期待値で誤解を生まないためには、期待値は具体的に書くべきです:muscle:

  • ポイントが不足している旨を通知するエラーダイアログが表示されること

こうすれば読み手に誤解を与えにくくなります。

3. 「~できること」が出てきたら「~できないこと」を考える

仕様でよく見かけるのが「~できること」のような表現です。
例えば、「管理者ユーザーは、管理画面にアクセスできる」という仕様があったとします。

多くの人は「管理者ユーザーでログインして、管理画面が閲覧できる」といったテストケースを作ると思います。
しかし、このケースだけでは不十分です。一般ユーザーが管理画面にログインできてしまうかもしれないからです
これでは不具合を見逃してしまう可能性があります:warning:

この場合は、「一般ユーザーでログインしたときは、管理画面にアクセスできないこと」を確認するテストケースを作るべきです。
仕様書から、表面的な文章だけを参考にしてテストケースを作ると、必要な検証が漏れてしまいます。
そうならないため、「~できること」を確認するテストケースを作ったら、セットとして「~できないこと」のテストケースが必要かどうかを必ず考えるべきです:muscle:

おわりに

  • テスト実施者=テストケース作成者になるとつい記述を簡略化してしまいます:innocent:
  • しかし忘れた頃にまたテストケースを使用するかもしれません:innocent:
  • 後々皆が楽するために、今もうちょっと頑張る」ということをできるようにしていきたいですね:innocent:
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?