テストケースに「エラーメッセージが表示されること」と書いて、レビューで「保存されたデータも確認しましょう」と指摘されたことはありませんか。
それなら、エラーが出た後はすべてのデータが変わらないことを確認すればよいのでしょうか。失敗の記録を残す設計なら、ログは増えるはずです。
この記事では、最近テストケースの作成を担当し始めた方に向けて、変更を受け付けなかったときに維持するデータと、失敗時にも記録する情報を分ける方法を説明します。画面の入力値も含め、設計資料から期待結果を決める短い例です。
予約台数を増やせない場面で考える
あなたは、社内研修で使う貸出用PCの予約変更機能について、テストケースを作る担当です。
開催担当者は参加者2人分のPCを予約していましたが、参加者が4人へ増えたため、予約台数を変更しようとしています。利用時間は変えません。同じ時間帯の予約は次のとおりです。
| 保存されている情報 | 変更前の値 |
|---|---|
| PCの保有台数 | 10台 |
| 変更対象の予約A | 2台 |
| ほかの予約B | 4台 |
| ほかの予約C | 3台 |
予約と保有台数はデータベースに保存されています。ブラウザーから変更内容をサーバーへ送り、サーバーが台数を判定して保存します。テスト担当者は読取専用のDBツールとログ閲覧画面を使える想定です。
今回の設計資料には何が書かれているか
以下は、この架空システムの処理仕様です。通信障害や同時操作は今回の例に含めません。
- 数量の選択肢は1〜5台。選択中には空き台数を判定せず、「変更を保存」を押したときにサーバーで判定する。
- 判定式は「ほかの予約の合計+変更後の対象予約の台数≦保有台数」。予約Aの2台を4台へ置き換えるため、変更前の2台を重ねて数えない。
- 台数不足なら、同じ画面に「空き台数が不足しています」と表示する。予約A・B・Cと保有台数を変更しない。
- 変更を受け付けなかった保存要求について、処理日時・予約番号・結果コード
CAPACITY_SHORTAGEの業務ログを1件記録してからエラーを返す。 - エラー直後の数量選択をどう表示するかは、この抜粋には書かれていない。
予約Aを4台へ変更すると、ほかの予約7台+変更後4台=11台となり、保有10台を超えます。4台は入力範囲内でも、予約としては受け付けられません。
エラー後の期待結果を三つに分ける
| 確認する場所 | この例の期待結果 | 根拠 |
|---|---|---|
| 保存された予約・備品データ | 予約Aは2台、Bは4台、Cは3台、保有台数は10台のまま。ほかの保存項目も操作前と一致する | 台数不足時は予約・保有台数を変更しない |
| サーバーの業務ログ | 今回の操作時間帯に、予約Aの番号と CAPACITY_SHORTAGE を持つログが、今回の保存要求に対応して1件ある |
受け付けなかった要求も1件記録する |
| 画面 | 指定のエラーメッセージを表示する。数量の選択が4台のままか2台へ戻るかは、この抜粋だけでは確定できない | エラー文言は定義されているが、選択状態は書かれていない |
予約の合計だけを見ると、対象予約が誤って増え、別の予約が同じだけ減った不具合を見逃します。個々の保存値を操作前と比較します。
ログも、何か1件増えたことだけでは十分ではありません。今回の要求に対応した記録かを、予約番号・時刻・結果コードで照合します。
画面の入力値から保存結果を決めない
エラー後に画面で4台が選択されたままでも、データベースには変更前の2台が保存されていることがあります。入力しようとした値と、保存された値は別だからです。
ただし、この例の画面がそう動くと決めつけてよいわけではありません。画面設計書や共通のエラー処理仕様も読み、それでも分からなければ、チームの窓口を通して設計担当者へ確認します。
保存に失敗した直後、数量は入力した4台のまま表示しますか。それとも保存済みの2台へ戻しますか。
確認が取れるまでは、選択状態の期待結果を未確定として残します。
次の機能では何を読み直すか
今回の「予約は不変、ログは1件増える」という答えを、そのまま別の機能へコピーすることはできません。業務エラーをログに記録するかも設計によります。
次の機能では、画面設計書・処理設計書・データ定義・共通のエラー処理を突き合わせ、次の三つを読み取ります。
- 変更を受け付けないとき、どの保存内容を維持するか。
- 失敗時にも記録・更新するものはあるか。
- 画面の入力値や遷移はどうなるか。
それぞれについて確認項目と期待結果を書き、根拠にした記載を添えます。記載が足りなければ、推測で埋めず確認事項にします。
異常系テストを具体化するときは、「エラーが出るか」に加え、どの情報が維持され、どの情報が変わる設計なのかをたどってみてください。
同じPC予約の例で、設計資料から確認項目を書き出す問題と、利用日を変える応用問題をZennの無料演習記事にまとめています。自分で考えてから解答と比べたい方は、こちらもご利用ください。
記事や演習で迷った点は、感想フォームでも教えていただけます。氏名・メールアドレス不要で、回答は公開されません。選択4問と任意のひとことです。検討中の自習教材(予定980円・未発売)についても伺いますが、「無料記事で十分」「まだ判断できない」も歓迎します。注文・予約ではありません。