メニュー

テスト用の国を選ぶ: 三つの軸と既定セットの作り方

テストデータに使う国の集合をどう選ぶかを、業務可達性・データ難度・境界価値の三つの軸から整理し、既定セットの構成と版管理の方法を解説します。

公開日

  • テストデータ
  • 国の選定

テスト用の国を選ぶ作業は、思いついた国名を並べるだけでは終わりません。同じ十件の国でも、選び方の理由が説明できているかどうかで、そのあとの検証の質が変わります。この記事では、国の集合をひとつの資産として扱うために、どの軸で選び、どんな構成にし、どう版管理するかを順に整理します。

なぜ国を軸にしてテストデータを選ぶのか?

住所や身元のデータは、国を切り替えた瞬間に前提が変わります。項目の有無、文字の種類、書き進める方向、値の長さの上限がそれぞれ別に決まるためです。検証の網羅性を語るには、まずどの国の前提で確かめたのかを言える必要があります。

もう一つの理由は、不具合の再現です。報告された問題を同じ前提で再現しようとしたとき、当時の国の集合が分からなければ、同じ入力を作れません。集合そのものが再現手順の一部になります。

三つの軸: 可達性・データ難度・境界価値

どの国を入れるかは、次の三つの軸で判断します。

  • 業務可達性。決済の手段、配送の範囲、請求に使う言語、税の扱いが実際に成立するかどうかです。
  • データ難度。文字の種類、書字方向、住所の行数、名称の長さといった、扱いにくさの度合いです。
  • 境界価値。極端に小さい国、極端に大きい国、そもそも郵便番号の仕組みを持たない国の存在です。 この三つは互いに代用できません。可達性だけで選ぶと文字種の問題が抜け、難度だけで選ぶと業務の流れが抜けます。

軸を決めたら、それぞれの軸で一件ずつ担当を決めます。複数の軸を一人で兼ねる国を選ぶと、その国で問題が出たときにどの軸のせいなのかを切り分けられません。軸と国を一対一に対応させておけば、結果を見た瞬間に原因の候補が絞られます。

選んだ理由は、国名の隣に一行で書いて残します。理由の書かれていない国は、次の見直しのときに外してよいかどうかを判断できず、結局そのまま残ります。

境界となる国は何で選ぶのか

境界用の標本は、めずらしさではなく壊れやすさで選びます。狙うのは長さの検証と切り詰めです。

  • 国名がもっとも長くなる例。見出しやラベルの伸縮を試します。
  • 都市名がもっとも長くなる例。表の列幅と省略表示を試します。
  • 住所行がもっとも多くなる例。入力欄の追加と折り返しを試します。
  • 右から左に書く文字を使う例。並びの反転と記号の位置を試します。

この一群を先に決めておくと、あとから個別の不具合が出たときに、その国を集合へ足すだけで済みます。

郵便番号や州を持たない国はどう扱う?

該当する国を集合から外すと、必須の判定そのものを検証できなくなります。郵便番号の体系を持たない国では、その欄に値が入らないことが正しい状態です。州や県に当たる区分を持たない国も同様に、空欄が正常です。

したがって、この種の国は例外ではなく、必ず一件は入れる対象だと考えてください。該当する国を一件足し、その欄の期待値を空とするだけで、誤った必須判定が露見します。

既定セットは何で構成するのか

実務では、次の三層で組み立てると過不足が出にくくなります。

  • 主戦場の国。日常の開発と動作確認の大半を占めます。
  • 主要な市場。決済や配送の流れが本番に近い形で通ります。
  • 少数の境界値。長さ、文字種、項目の不適用を担当します。

三層のどれが欠けても、その層でしか出ない問題は検出できません。件数は多くする必要はなく、各層に一件ずつあれば最初の一歩としては十分です。

既定セットの件数は、検証にかけられる時間から逆算します。国の数を倍にすれば、確かめる手順も倍になり、確認の一件あたりにかける時間は半分になります。層を増やすより、各層の一件を厚く確かめるほうが、見つかる問題は多くなります。

既定セットの外にある国は、必要になった時点で足す前提にしておきます。常設の集合を小さく保ち、案件ごとの集合をその都度作れるようにしておくと、常設の側が使われないまま膨らむのを防げます。

開発者向け: 国の集合を版付きの資産にする

集合はソースコードの中に直接書かず、版番号を持つデータとして外に出します。理由は単純で、集合を変えると過去の検証結果の意味が変わるためです。

具体的には、集合に版番号を付け、変更のたびに番号を上げ、差分を記録します。テストの結果には、そのときに使った版番号を残します。こうしておけば、昨日と今日で結果が食い違ったときに、集合が変わったせいなのか製品が変わったせいなのかを切り分けられます。

もう一点は、集合の読み込みをテストの実行時に行うことです。集合をコードに埋め込むと、一件足すたびに作り直しが必要になり、実行環境と定義がずれていきます。

なお、実在の個人や団体の情報を集合の穴埋めに使うことは避けてください。値はすべて作り物で足ります。

この記事で扱った国の集合は、あくまで書き方を示すための合成例です。登場する国名や分類は特定の実在する一覧を写したものではなく、実際の網羅範囲を示すものでもありません。ソフトウェアの試験と帳票の見本を作る目的にのみ使い、実在する主体の証明や届け出の根拠としては使えません。

次のステップ

まず、いま手元にある集合に三つの軸のどれが欠けているかを書き出してください。次に、該当する国を一件だけ足し、その欄の期待値を明示します。集合をどう数えるかは国データの網羅率チェックリスト、値が古くなったときの扱いは国データの鮮度と出典で扱っています。国ごとの項目の様子を実際に見比べたいときは国の一覧を開き、アメリカの国のページのように一件ずつ確かめることもできます。

続けて読む

各国の住所・身元データ形式の関連記事