テストケースの種類と書き方のコツ

テストケースは、ソフトウェアの機能視点で動作を予想したドキュメントです。主にスクリプトテストにて使用されます。テスト実施の効果を左右する非常に重要で、明確で具体的な書き方をする必要があります。そこで今回はその種類や書き方、気をつけるべきポイントについて解説します。

QAにおけるテストケースとは?

テストケースとは、ソフトウェアやシステムの特定の機能や条件をテストするために作成される、一連の手順や条件を記述したドキュメントです。
特定の入力に対して期待される結果が記載してあり、テストを実行しながら実際の出力との違いを比較していきます。これにより不具合を発見し、ソフトウェアの品質を確認できるようにします。
テストシナリオとの違い
テストシナリオとは、特定の状況や条件下でユーザーがとる一連の動作や操作を想定して作成したドキュメントです。
ユーザーがアプリケーションを使用する際の具体的な操作手順や、システムがどのように応答するかを定義します。シナリオ作成は、ユーザーの視点からシステムの動作を理解していくための準備です。
一方、テストケースは、ソフトウェアの機能視点で動作を記述したドキュメントです。
簡単にいえば、テストシナリオが「ユーザー視点から想定された内容」なのに対して、テストケースは「機能視点から想定された内容」となります。
システムのどの部分をテストするのか(テスト対象)、テストでどのような動作を確認するのか(テスト観点)、テストを実行するためにはどのような条件を満たす必要があるのか(実行条件)、どのようなフローでテストを実行するか(実行手順)、正しいとされる動作は何か(期待結果)をドキュメントとして記載していきます。
▲テストシナリオについてはこちらの記事もご参照ください!▲
テストケースを使うテストの種類は主に4種類ある

テストケースを使用するテストは主に4種類あり、それぞれ特徴が異なります。ここではその特徴や違いについてご説明していきます。
機能テスト
機能テストケースは最も基本的なテストケースで、システムの各機能の正しい動作について記載したものです。
UIテスト
UIテストケースは、ユーザーインターフェースが設計通りに動作し、使いやすいかどうかを確認するためのテストケースです。具体的にはボタンのクリック、入力フィールドの動作、表示の整合性などを検証するためのものです。
ユーザー受け入れテスト
ユーザー受け入れテストケースは、実際のユーザーがシステムを使用したときに、要件を満たすことができるかを確認します。ユーザー視点での評価が中心です。
回帰テスト
回帰テストケースは、システムの変更や修正が既存の機能に悪影響を与えていないかを確認します。過去に発見された不具合が再発しないことを検証します。
テストケースを書く人は?

テストケースを書くのは主にテストエンジニアやQAエンジニアですが、できるだけテストするシステムの開発者以外の人であることが求められます。
開発者が担当をすると、先入観などのバイアスが入ってしまう可能性があるからです。しかし工数が削減できる、効率的に進める事ができるなどメリットもありますので、場合によってはその限りではありません。
テストケースの記述粒度

テストケースはその内容の具体性の度合い(記述粒度)によって、ふたつの種類に分けられます。
ハイレベルテストケース
ハイレベルテストケースは、システム全体の大まかな動作を確認するために使用されます。具体的な手順やデータ入力を詳細に記述せず、システムの主要な機能や流れをテストします。コストは低いですが、テストの汎用性は高いです。
しかし数などの詳細な値に関してテストケースに記載されていないぶん、臨機応変に対応しなければならなくなるため、難易度は高くなりがちです。よって再現性も低くなります。
ローレベルテストケース
一方、ローレベルテストケースは、具体的な手順やデータを詳細に記述し、細かい部分まで正確に検証します。
これにより、特定の条件や入力に対するシステムの応答を詳細に評価できます。テストケースに細かい部分まで具体的に記載があるので、あまりテストに関する理解がない人でも実行することが可能です。また再現性も高くなります。
ただしテストの汎用性は一定で、作成や変更に対するコストも高くなります。
まずはハイレベルテストケースから作成する
まずハイレベルテストケースを作成し、その後具体的なローレベルテストケースに落とし込む方法が一般的です。これにより、テストの目的や範囲が明確になり、誤りがあれば早々に修正することが可能となります。
また、要件が確定していない場合でもハイレベルテストケースを先行して作成することで、効率的に準備が進められます。
一方で、テストケース作成工数の削減や再利用性を考慮して、場合によってはハイレベルテストケースのみを作成することもありますが、難易度は高くなるため実行者がテストの対象についてよく理解している必要があります。
テストケースの書き方

それではテストケースの書き方についてご説明していきます。
作成の際には「テスト対象」「テスト観点」「実行条件」「実行手順」「期待結果」という5つの項目を記載します。
テスト対象
テスト対象では、どの機能をテストするのかを明確に記載し、モジュール、システム全体を定義します。
例えば、オンラインショッピングサイトの「カート機能」や「支払いモジュール」などがテスト対象になります。
これを明記することで、どの部分をテストするのかが一目でわかり、テスト範囲の特定や担当者間の認識を統一しやすくなります。
テスト観点
テスト観点では、テストする際に確認したいポイントや視点を示します。
例えば、ログイン機能のテストでは、「ユーザーが正しいIDとパスワードでログインできるか」「無効なIDやパスワードでエラーメッセージが表示されるか」がテスト観点になります。
このように、テスト観点を設定することで、重要なテスト項目を漏れなく確認できます。
実行条件
実行条件では、テストを行うための前提条件や環境設定を記述します。
これには、必要なテストデータ、システムの状態、使用するツールやソフトウェアのバージョンなどが含まれます。例えば、「ユーザーが既に登録されている状態」「ブラウザは最新バージョンのChromeを使用」「データベースには初期データが入力済み」といった具体的な条件が挙げられます。
実行条件を明確にすることで、一貫性のあるテストが可能になります。
実行手順
実行手順では、テストを行うための具体的なステップを詳細に記述します。
例えば、「1. ログインページを開く」「2. ユーザーIDとパスワードを入力してログインボタンをクリックする」「3. ホームページが表示されることを確認する」といった手順です。
このように詳細に記述することで、誰でも同じ手順でテストを実行できるようになり、テストの再現性が高まります。
期待結果
期待結果は、どのような出力や状態になればOKなのかを明確に記述します。
期待結果の記載方法で一番気を付けなければならないのが、誰が実施しても同じ判定結果になることです。
ですから、曖昧な記載が無いことが重要になります。
例えば、「値が大きくなること」のように主観的な記載では無く、「値が+2されること」の様に定量的な記載にすることで曖昧さを排除できます。
期待結果を具体的に記述することで、実際の結果と期待結果を容易に比較でき、不具合の有無を迅速に判断できます。
その他の項目
テストケースにはテストの結果(OK、NGなど)、テストケースのID、作成者、作成日、バージョンなどの管理情報なども記載します。
例えば、「OK」「TC001」「作成者:田中」「作成日:2024/06/26」「バージョン:1.0」などです。
また特記事項や注釈、注意点なども記載すれば、テストケースの管理がしやすくなり、テストプロセスの透明性が向上します。
テストケース作成時に押さえておくべき3つのポイント

効果的なテストケースを作成するために、押さえておくべき3つのポイントについて説明します。
具体的な記述をする
テストケースを作るときは、あいまいな表現を避けて、具体的に書くことが大切です。
たとえば、「クリックで正しく表示される」と書くのではなく、「ログインボタンをクリックするとユーザーダッシュボードが表示される」と書きます。こうすることで、誰がテストしても同じ結果が得られるようになります。
また各項目において内容が重複したり混同しないよう注意しましょう。
このように具体的に書くことで、テストの信頼性が高まり、一貫した結果が得られるようになります。
意図を明確にする
テストケースでは、その目的が明確にわかるように書きます。
たとえば、「住所の入力チェック」というテストの場合、ただ「チェック」と書くだけではなく、「住所が未入力の場合はエラーメッセージが表示される」や「住所が300文字を超える場合はエラーメッセージが表示される」と具体的に書きます。
こうすることで、テストの目的がはっきりし、効果的なテストができます。
関連情報を参照しやすくする
テストケースには、仕様書など関連する資料を参照しやすくしておきます。
たとえば、「仕様書のセクション2.3を参照」とリンクを貼ることで、テスターは必要な情報をすぐに確認できます。
これにより、テストの準備や実施が効率的になり、結果の確認が簡単になります。特に複雑なプロジェクトほど大切なポイントです。
まとめ

今回はテストケースの種類と書き方、押さえるべきポイントについて解説しました。
テストケースは、ソフトウェアの機能視点で動作を予想したドキュメントです。主に機能テスト、UIテスト、ユーザー受け入れテスト、回帰テストにおいて使用され、その書き方によりハイレベルテストケースとローレベルテストケースに分けられます。
作成の際には「テスト対象」「テスト観点」「実行条件」「実行手順」「期待結果」という5つの項目を記載し、それぞれの内容が混同しないようにしましょう。
より効果的なテストケースを作成するためには、具体的な記述をすることや意図を明確にすること、関連情報を参照しやすくすることを心がけましょう。
QA業務効率化ならPractiTest
テスト管理の効率化についてお悩みではありませんか?そんなときはテスト資産の一元管理をすることで工数を20%削減できる総合テスト管理ツール「PractiTest」がおすすめです!
PractiTest(プラクティテスト)に関する
お問い合わせ
トライアルアカウントお申し込みや、製品デモの依頼、
機能についての問い合わせなどお気軽にお問い合わせください。
この記事の監修

Dr.T。テストエンジニア。
PractiTestエバンジェリスト。
大学卒業後、外車純正Navi開発のテストエンジニアとしてキャリアをスタート。DTVチューナ開発会社、第三者検証会社等、数々のプロダクトの検証業務に従事。
2017年株式会社モンテカンポへ入社し、マネージメント業務の傍ら、自らもテストエンジニアとしテストコンサルやPractiTestの導入サポートなどを担当している。
記事制作:川上サトシ