NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

注目のタグ

    わかりやすいテストケース作成のために気を付けたいポイント

    本記事は  【Advent Calendar 2023】  19日目の記事です。
    🎄  18日目  ▶▶ 本記事 ▶▶  20日目  🎅

    こんにちは。社会人2年目、新米エンジニアの國弘です。

    配属後から今日まで、開発業務として一番時間を費やした工程はずばり テスト だ、と言っても過言ではないと思っています。
    開発の検証作業としてかかせないテストですが、テストケース作成のポイントとして、
    「だれにでも『わかりやすい』記載であること」
    が挙げられます。
    今回は、自身の経験を踏まえて、テストケース作成について『わかりやすい』記載という観点で気を付けたいポイントをまとめてみました。

    『わかりやすい』記載に求められる2つのポイント

    テストケース作成者とテスト打鍵者は、必ずしも同一人物ではありません。大規模なテストでは、打鍵者が複数人となる場合もあります。そのため、テストケースは打鍵者によらず、同じように実施され、結果が一致するような記載である必要があります。
    よって、テストケースにおける『わかりやすい』記載に求められるポイントとして一般的に、

    1. 打鍵者が迷いなく実施できること
    2. 確認ポイント・方法が明確であること

    の2点が挙げられます。
    支出データ登録画面のテストケースを例にそれぞれ確認します。

    1.打鍵者が迷いなく実施できること

    画面仕様を把握していなくても作業イメージができる記載にしましょう。例では、支出データを登録するまでに必要な操作を詳細に記載しています。
    また、具体的な入力値はテストケース作成時に設定しておきます。任意の値ではテストで確認したい内容を満たさない場合があるためです。

    2.確認ポイント・方法が明確であること

    テスト結果がOKであると判断するためのポイント・確認方法は詳細に記載しましょう。わるい例では、「正しく」という表現となっていますが、何をもって正しいとするのか、打鍵者の判断に左右されてしまいます。主語/述語や計算方法などを記載し、打鍵結果にブレが発生することを防ぎます。

    テストの目的が『わかりやすい』か?

    上記の2点に加えて、打鍵者に入力値設定の意図(=テストの目的)を理解してもらうことも重要なポイントだと考えています。
    テストはバグがないかチェックするために行うのですから、打鍵方法そのものに関するやり取りに時間をかけるべきではありませんよね。 このようなやり取りが積み重なり、テストスケジュールから遅延してしまうと打鍵者の注意は「打鍵結果の確認」ではなく、「打鍵を完了させること」に向きかねません。

    こんなことがありました。
    先ほど、よい例として挙げたテストケースについて以下のような質問が発生しました。

    「日付をテストケースに記載の12/24(日)で入力したところ、『12/24は第4日曜日のため入力できません。』というメッセージが表示され、テストを進められません。代わりの値を提示してください」

    さらに打鍵管理者(回答者)は、①テストケースを確認、②画面仕様を理解、③テストシナリオとの整合性を確認、という作業を行った後、質問者へ回答する必要がありました。

    質問発生と回答者の確認作業が多くなってしまった原因は、テスト入力値を詳細にし過ぎていたことと、テストの目的が読み取れないことにあります。
    打鍵者がテストの目的を理解し、個別に解決できるようにするべきです。

    3.テストの目的を読み取れること

    修正例では、クリスマス期間(12/23~12/25)の支出データの入力が求められていることを読み取れるので、12/24の入力が不可能だった場合には打鍵者自身で入力値を12/23 または 12/25に変更できます。変更後はテストケースの更新と変更の旨を打鍵管理者へ連絡するのみで打鍵管理者の回答を待つ必要はなく、滞りなく打鍵を進めることが可能です。 加えて、もし後続の支出データ一覧照会などのテストケースに入力値不正や修正漏れがあった場合でも、先行テストケースの目的を理解できているので、打鍵者がチェックおよび修正対応することができます。
    上記のように、テストの目的に合わせて入力値に幅を持たせたり、確認ポイントにコメントを添えるなど、打鍵者がテストの目的を理解できるような記載をしましょう。

    目的に応じて、求められる精度は異なります。詳細な値で示すことが必ずしもよいとは限りません。
    例えば、ホールケーキを切り分ける場合、できるだけ平等になるよう1カットあたりの中心角を計算したことはありませんか?しかし、シチューなど煮込み料理に入れる玉ねぎをくし切りするときには、火の通りが均一になればよいだけなので、細かく気にしませんよね。
    テストも同様で、何を確認するための入力か目的があり、それに合わせて入力値を設定します。入力値決定の根拠となる目的も読み取れるようにすることで、打鍵者自身で柔軟な対応が可能となります。
    また、打鍵者がテストケースの目的を理解することで、テストケースの記載に従った単純作業ではなく、目的に適した確認レベルで打鍵に取り組むこともできます。

    まとめ

    打鍵者・打鍵管理者の負担を軽減しスムーズなテスト打鍵を実現するという観点で、テストケースの記載方法が与える効果は小さくないはずです。テストの品質向上のため、打鍵者にとって『わかりやすい』テストケースとなるようポイントに注意して作成したいです。
    テストケースだけに限らず、テキストベースのコミュニケーションでは最低限のやり取りで必要十分な情報を共有する力が必要とされます。
    私自身も相手にとって『わかりやすい』文章を作成する力を身につけるため、これからも日々精進していきたいです。

    執筆者:國弘光希
    アプリエンジニア