請求先を入力するフォームは、一見すると素直な入力欄の集まりに見えます。しかし実際には、企業か個人か、どの国か、どの支払い方法か、といった条件で項目も検証も分岐します。分岐の数だけ確認すべき組み合わせが生まれるため、用例を場当たりで足していくと、必ずどこかが抜けます。この記事では、分岐の洗い出し方と、用例を表にして保つ方法を整理します。
請求フォームのテストで何を確かめるのか
確かめる対象は、入力欄の見た目だけではありません。大きく四つあります。第一に、条件に応じて正しい項目が現れ、不要な項目が消えるか。第二に、各項目の検証が意図した段階で働くか。第三に、誤りがどの欄のどんな問題かを利用者に伝えられるか。第四に、送信が失敗したときに状態が壊れないか、です。
四つ目は見落とされやすいところです。入力の検証だけを追いかけると、送信の途中で止まったときの振る舞いが抜けます。二重に登録される、下書きが消える、といった問題はこの層で起きます。
企業と個人で入力項目はどう変わるのか?
企業を選ぶと、社名、法人形態、登録番号や税番号といった、法人を特定するための項目が加わります。個人を選ぶと、これらは消え、氏名と住所が中心になります。この入れ替わり自体は分かりやすい分岐です。
厄介なのは、切り替えたときに前の入力がどうなるかです。企業で入力した番号が個人の画面に残る、個人の氏名が企業の担当者欄に紛れ込む、といった状態は、実際の送信で思わぬ値を作ります。切り替え時の初期化をどうするかは、必ず用例として固定してください。
国と地域を変えたときも同じです。項目の並びや必須の扱いが変わる場合、前の国で埋めた値がそのまま残ると、形式の合わない値が送られます。
どの分岐を必ず通すべきか?
すべての組み合わせを試すのは現実的ではありません。代わりに、結果が変わるところだけを選びます。次の観点で分岐を数え上げると、必要な用例が絞れます。
- 主体の種別。企業か個人か。
- 国と地域。項目の構成が変わるかどうか。
- 番号の有無。省略できるのか、必須なのか。
- 支払い方法。手続きの流れが変わるかどうか。
- 送信の結果。成功、検証の失敗、通信の失敗。
- 操作の順序。入力を消してから選び直した場合。
それぞれの観点について、境界にあたる値と、ごく普通の値を一組ずつ用意します。長さの上限ちょうど、区切り記号を含む値、多バイト文字を含む値は、境界側の代表です。
用例を表にして保つ
| 用例の狙い | 入力の条件 | 期待する結果 |
|---|---|---|
| 企業の標準的な入力 | 法人の項目をすべて埋める | 受理され、記録が作られる |
| 個人への切り替え | 企業の値を入れた後に個人を選ぶ | 法人の項目が消え、値が残らない |
| 国と地域の変更 | ある国の値を入れて別の国を選ぶ | 形式の検証が選び直される |
| 必須項目の欠落 | 番号の欄を空にする | その欄だけが指摘される |
| 通信の失敗 | 送信の途中で応答が途切れる | 保留として扱われ、状態が壊れない |
表の形にしておくと、抜けている行が目で見て分かります。用例の名前は、何を確かめたいのかが読み取れる言葉にしてください。「パターン三」のような名前は、後から読んで役に立ちません。
架空の会社データでフォームを埋める
用例を実行するには、入力する値そのものが要ります。実在の企業の情報を写して使う必要はありません。当サイトのテスト用の会社データ生成ツールでは、国と地域を選ぶと、その土地の書き方に沿った社名や番号を含む記録を一件用意できます。
国を変えながら何件か用意すれば、項目の構成が変わる分岐を自然に埋められます。生成される値はテスト専用であり、実在の企業に対応しません。扱える範囲とそうでない範囲は架空の会社データを使ってよい範囲で説明しています。
開発者向け: 重複送信と再試行の扱い
送信の処理には、同じ操作が二度届いても結果が一つに収まる仕掛けを入れてください。利用者が送信のボタンを続けて押す、回線が途切れて再試行される、画面を再読み込みする、といった出来事は日常的に起こります。同じ内容の記録が二件できると、あとで消す作業が発生します。
識別子を一つ決めて送信に添え、サーバー側でその識別子を見て重複を判定する形が基本です。識別子は画面を開いた時点で作り、送信のたびに作り直さないようにします。作り直すと、重複の判定が働きません。
失敗したときは、どこまで進んだのかを状態として残します。記録が作られたが通知だけ失敗した、という中間の状態は必ず起きます。この状態を「失敗」とだけ扱うと、利用者は最初からやり直し、重複が生まれます。
入力の検証は、画面側と処理側の両方で行います。画面側だけに頼ると、直接呼び出されたときに素通りします。処理側だけに頼ると、無駄な往復が増え、待ち時間が伸びます。両方に置いたうえで、判定の規則そのものは一か所にまとめて共有してください。
項目の表示と非表示の切り替えは、送信する値の組み立てと一対で設計します。見えていない欄の値が送信に混ざる事故を防ぐには、表示の状態を唯一の根拠にするのが確実です。
次のステップ
まず、既存の用例を上の観点で分類し、空いている行を一つ埋めてください。多くは国と地域の変更か、送信の失敗の行が空いています。次に、用例の名前に確かめたい内容を書き込み、表として残します。
入力に使う値はテスト用の会社データ生成ツールで用意できます。番号そのものの検証の層については税番号の検証で分かることを参照してください。
本記事はフォームの確認方法を一般的に説明するものであり、特定の決済や請求の制度上の要件を示すものではありません。