テストケースの書き方を具体例で解説!網羅率を高めるテクニックとは?

    ソフトウェアテストの現場では、テストケースの作成が欠かせません。しかし、「テストケースってどう書けばいいの?」「どこまで網羅すればいいの?」と悩む方も多いのではないでしょうか。限られた時間とリソースの中で、質の高いテストケースを作成するのは大変な作業です。 <br />
<br />
本記事ではテストケースの基本的な書き方から、網羅率を高めるための具体的なテクニックを解説します。テストケースの作成におけるポイントや注意事項を理解することで、品質の高いテストを実現し、バグの早期発見やユーザー体験の向上につなげることができます。実際の例を交えながら具体的な手順も紹介しておりますので、ぜひ最後までお読みいただき、テストケース作成のスキルを向上し、より効果的なテストを実現しましょう。

    ソフトウェアテストの現場では、テストケースの作成が欠かせません。しかし、「テストケースってどう書けばいいの?」「どこまで網羅すればいいの?」と悩む方も多いのではないでしょうか。限られた時間とリソースの中で、質の高いテストケースを作成するのは大変な作業です。

    本記事ではテストケースの基本的な書き方から、網羅率を高めるための具体的なテクニックを解説します。テストケースの作成におけるポイントや注意事項を理解することで、品質の高いテストを実現し、バグの早期発見やユーザー体験の向上につなげることができます。実際の例を交えながら具体的な手順も紹介しておりますので、ぜひ最後までお読みいただき、テストケース作成のスキルを向上し、より効果的なテストを実現しましょう。

    テストケースとは?

    テストケースとは、ソフトウェアテストにおいて特定のプログラムの実行や検証、あるいは特定の要件を満たしているかを確認するために実行される単一のテストを定義します。テストケースは、実行条件や入力データ、期待される出力や結果などを文章化したものであり、ソフトウェアやシステムが期待通りに動作するかを確認するために用意します。これは、テスト実行前の「テスト設計」の工程で作成され、テスト実行者がテストを実行するために重要な材料となります。

    テストケースの基本の書き方

    テスト実行者が正確かつ効率的にテストを実施するために、テストケースは、詳細かつ明確に作成することが求められます。以下に、テストケースを記載する際に含めるべき基本要素を示します。

    テストケースは、テスト実行者や成果物や情報を受け取るクライアントなど、必ず誰かが読むことを前提としています。そのため、誰もが理解できるように記述することが大切です。次に、テストケースを記述する際の注意点について説明します。

    テスト対象テストで確認する対象を記載します。例えば、画面名や機能名です。
    テスト観点テストで何を確認するのか、テストケースの目的・意図が把握できるように記載します。具体的なチェックポイント等も含みます。
    テスト条件テスト結果に影響を及ぼす要素を記載します。システムの状態や入力データ、操作のバリエーションなどが含まれます。
    テスト手順出力されるべき結果を確認するまでの作業手順を記載します。これに従って、テスト実行者が操作を誤らずに行えるようにします。
    期待結果テスト手順に従い、テストを実行した際に、どのような状態になるかを具体的に記載します。期待結果に記載された通りの状態となっている場合、テストがOKとなります。

    テストケース作成の際に注意するべきポイント

    先にも記載した通り、テストケースの記載は「読み手が理解できるように」記載する必要があります。記載の際には以下に注意して記載します。

    ①具体性を持たせる

    操作手順やテスト条件、期待結果は、具体的かつ分かりやすい内容で記述することが重要です。例えば、以下のテストケースにおいては、"正しいユーザー名とパスワード"という表現では、何を指しているのかが明確ではありません。ログイン画面の正常性を判断する基準も不明瞭です。より明確にするためには、どのユーザー名とパスワードを使用するかの明示や、ログイン後の画面名を示すなど明確な指標を含めるとより分かりやすいテストケースになります。

    具体性のないテストケース例
    テスト対象 ログイン画面
    テスト観点 正常ログインの確認
    テスト条件 正しいユーザー名とパスワード
    テスト手順 ログイン画面で正しいユーザー名とパスワードを入力してログインする
    期待結果 正しくログインできること
    意図がわかる表現を心がける

    テストケースの目的や意図が明確に伝わるように記述します。テスト観点が簡潔であることも重要ですが、その背後にある目的や意図が明確でなければ、効果的なテストが行われない可能性があります。したがって、ポイントを明確に記述することで、テスト実行者がテストを効率的に実行できるようになります。

    項目ごとの役割を混同しない

    テスト対象、テスト観点、テスト条件、テスト手順、期待結果の各項目がそれぞれ異なる役割を担っています。特に、テスト観点とテスト条件の混同がよく見られますが、これらを混同すると、テスト実行者がテストケースの意味を理解するのが難しくなります。各項目が何を示しているかを明確に理解して、適切に記述してください。

    トレーサビリティを確保する

    テストケースがどの要件や仕様に対応しているかを追跡できるようにしましょう。テストケース番号や関連する要件番号を記載することで追跡が容易になります。トレーサビリティを確保することで、要件や仕様に対する抜け漏れを防ぎ、網羅率を高めることが可能になります。


    上記のポイントを意識して作成することで、テストケースの品質を向上させることができます。テストケースの品質が向上することで、テストの効率化と品質向上に繋げることができます。

    【具体例】実際のテストケースの作成手順

    テストケースの作成は、以下の通り「テスト分析」→「テスト設計」→「テスト実装」の順で行われます。

    具体例として実際のテストケースを作成する手順を説明します。3.で記載したログイン画面でのテスト例をもとにテストケースを作成してみます。

    ①テスト分析

    テスト対象:ログイン画面
    同画面の目的は、正しいユーザー名とパスワードを入力し、ログインを行うことです。
    ※実際には、テストベース(詳細設計書等)を参照して仕様を確認します
    確認しなければならない観点は、以下を想定します。

    No.1正しいユーザー名とパスワードを入力した場合、ログインできること(正常系)
    No.2ログイン後は入力したユーザー名でログインできていること(正常系)
    No.3正しくないユーザー名とパスワードの組み合わせの場合、ログインできないこと(準正常系)
    No.4ログアウト後、別のユーザー名でログインが可能なこと(準正常系)入力フォームに対するバリデーションは確認対象外とする。
    ②テスト設計
    テスト観点1正しいユーザー名とパスワードを入力し、ログインできることテスト条件ユーザー名(XXXXXXXXX)
    パスワード(XXXXXXX)
    期待結果ログインできること
    テスト観点2ログイン後は入力したユーザー名でログインできていることテスト条件ユーザー名(XXXXXXXXX)
    パスワード(XXXXXXX)
    期待結果ログイン後の画面にユーザー名が
    表示されていること
    テスト観点3正しくないユーザー名とパスワードの組み合わせの場合、ログインできないことテスト条件1ユーザー名(XXXXXXXXX)
    パスワード(******)
    期待結果1ログインエラー時のメッセージが表示されること
    テスト条件2ユーザー名(XXXXXXXXX)
    パスワード(******)
    期待結果2 ログインエラー時のメッセージが表示されること
    テスト条件3 ユーザー名(******)
    パスワード(******)
    期待結果3 ログインエラー時のメッセージが表示されること
    テスト観点4ログアウト後、別のユーザー名でログインが可能なことテスト条件ユーザー名(○○○○○○)
    パスワード(○○○○○)
    期待結果ログイン後の画面に別のユーザー名が
    表示されていること
    テスト実装

    テスト観点①とテスト観点②は同一のテストケースで確認ができるため、同時に実装します。

    テストケースNo.1

    テスト観点③には3つのテスト条件があるため、分けて実装します。

    テスト対象ログイン画面
    テスト観点正しいユーザー名とパスワードを入力し、ログインできること
    ログイン後は入力したユーザー名でログインできていること
    テスト条件ユーザー名(XXXXXXXX)
    パスワード(XXXXXXX)
    テスト手順ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする
    テスト結果ログイン成功画面にて、ユーザー名1が表示されること
    テストケースNo.2
    テスト対象ログイン画面
    テスト観点正しくないユーザー名とパスワードの組み合わせの場合、ログインできないこと (ユーザー名は正しいが、パスワードが誤っている)
    テスト条件ユーザー名(XXXXXXXXX)、
    パスワード(******)
    テスト手順ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする
    テスト結果ログイン画面にて、「ユーザー名かパスワードが誤っています」のメッセージが表示されること
    テストケースNo.3
    テスト対象ログイン画面
    テスト条件ユーザー名(******)
    パスワード(XXXXXXXX)
    テスト手順ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする
    テスト結果ログイン画面にて、「ユーザー名かパスワードが誤っています」のメッセージが表示されること
    テストケースNo.4

    テスト観点④は、一度ログインした後に別のアカウントでログインする必要があるため、その点を加味して実装します。

    テスト対象ログイン画面
    テスト観点正しくないユーザー名とパスワードの組み合わせの場合、ログインできないこと (ユーザー名が誤っている、パスワードが誤っている)
    テスト条件ユーザー名(******)、
    パスワード(******)
    テスト手順ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする
    テスト結果ログイン画面にて、「ユーザー名かパスワードが誤っています」のメッセージが表示されること
    テストケースNo.5
    テスト対象ログイン画面
    テスト観点ログアウト後、別のユーザー名でログインが可能なこと
    テスト条件ユーザー名1(XXXXXXXXX)、パスワード1(XXXXXXX)
    ユーザー名2(○○○○○○)、パスワード2(○○○○○)
    テスト手順1.ログイン画面を開き、テスト条件のユーザー名1、パスワード1を入力後、ログインボタンをクリックする
    2.一度ログアウトした後、再度ログイン画面を開き、テスト条件のユーザー名2、パスワード2を入力後、ログインボタンをクリックする
    テスト結果ログイン成功画面にて、ユーザー名2が表示されること

    まとめ

    テストケースの作成方法について、要件や仕様に抜け漏れがないことは前提ですが、テスト実行者はテストケースを基に検証を行うため、読み手がわかりやすいように記載する必要があります。読み手はテスト実行者だけではなく、クライアント側が確認する可能性もあります。読み手が誰になるのかを把握した上で、「3. テストケース作成の際に注意するべきポイント」を参考にし、テストケースの品質、並びにテスト対象製品の品質を向上させていきましょう。また、今回はテストケースの作成についての記事ですが、テスト分析やテスト設計の工程でもさまざまな注意事項がありますので、ブログ内の別記事でも紹介しております。ご興味のある方は、そちらもご参照いただければと思います。
    当社のソフトウェアテスト・第三者検証について詳しい話を聞きたい、具体的な費用感を知りたい方は以下よりお問い合わせください。

    関連サービスの詳細はこちら