メニュー

身元データ 整合性の保ち方とよくある破綻

身元データ 整合性とは、一件の記録の中で住所・電話番号・生年月日・公的な番号が互いに矛盾しないことを指します。破綻が起きやすい組み合わせと、確認の順序を整理します。

公開日

  • テストデータ
  • 整合性

身元データ 整合性とは、一件の記録に含まれる項目どうしが食い違っていない状態のことです。国は日本なのに郵便番号が別の国の形をしている、生年月日は十年前なのに役職が部長になっている、といった矛盾があると、テストは通っても実際の利用では起きない状態を「正しい」と判定してしまいます。この記事では、破綻しやすい組み合わせと、確認の順序を扱います。

なぜ矛盾したデータでテストが通ってしまうのか

検証の多くは項目ごとに独立して行われます。郵便番号の欄は郵便番号の形式だけを見て、住所の欄は住所の形式だけを見ます。項目をまたいだ矛盾は、明示的に確認しない限り見つかりません。

その結果、次のような「仮の合格」が生まれます。

  • 国と郵便番号の形が食い違っていても、両方の形式が正しければ通る。
  • 電話番号の国番号が別の国でも、桁数さえ合えば通る。
  • 生年月日が年齢の条件を満たさなくても、年齢の値だけが条件を満たせば通る。

本番のデータではまず起こらない組み合わせで合格しているため、実際の利用者の入力で初めて不具合が出ます。

どの組み合わせが破綻しやすいのか?

破綻は、項目の依存関係が強いところから起こります。

組み合わせ 期待される関係
国と住所 住所の書式がその国のものになっている
国と郵便番号 桁数と文字種がその国の規則に合っている
国と電話番号 国番号が同じ国を指している
生年月日と年齢 計算した年齢が保存された年齢と一致する
氏名と敬称 敬称の形が名前の言語と性別に合っている
行政区と住所 行政区の名前が住所の中に現れている

とくに壊れやすいのが、住所と行政区、そして電話番号の国番号です。どちらも、値そのものが正しく見えるために見落とされます。

矛盾を見つける確認は誰がやるのか?

確認は、値を組み立てる時点と、受け取る時点の二箇所に分けて考えると整理できます。組み立てる時点では、依存する項目を一緒に決めることで矛盾の発生を防ぎます。受け取る時点では、入力された組み合わせが成り立つかを確認します。

両方を同じ規則で行う必要はありません。組み立てでは矛盾を作らないことが目的であり、受け取りでは矛盾を見つけることが目的です。ただし、規則の内容が食い違うと、生成した値が自分の入力欄で弾かれるという妙な状態になります。同じ規則の集まりを両方から参照する形が望ましいです。

強い確認と弱い確認はどう使い分けるのか

すべての矛盾を拒否する必要はありません。強く拒否すると、こちらの想定外の正しい入力まで弾きます。実際には三段階に分けると扱いやすくなります。

  • 拒否する。明らかに成り立たない組み合わせ。形式そのものが壊れている場合です。
  • 警告する。成り立たないことが多いが、例外が存在する組み合わせ。記録に残して人が判断します。
  • 何もしない。実際には起こり得る組み合わせ。過剰な確認は運用の負担になります。

たとえば、国と電話番号の国番号の不一致は拒否の対象になり得ます。一方、海外在住の人が自国の電話番号を持つ場合は正しい入力です。こうした例外を先に洗い出してから段階を決めます。

ツールで整合したデータを用意する

当サイトの身元生成ツールでは、氏名、住所、電話番号、公的な番号、生年月日が同じ人物として整合するように生成されます。項目を別々に用意して組み合わせる手間がなく、矛盾した記録をテスト用の値として使ってしまう事故を減らせます。

生成される身元情報はテスト専用の合成データであり、実在の人物になりすます目的には使えません。

開発者向け: 項目をまたぐ確認をどこに置くか

項目をまたぐ確認は、一つの層にまとめます。入力の受け付け、保存の直前、読み出した後、という複数の場所に散らすと、片方だけ直したときに食い違いが生まれます。生成の側と受け取りの側で同じ規則を共有できるなら、なお安全です。

生成の仕組みが壊しやすいのは、値の組み立てを項目ごとに独立して行った場合です。住所は国から、電話番号は別の乱数から、という作りにすると、同じ記録の中で国が二つ存在する状態が生まれます。乱数から値を決める前に、まず人物の所在を一つに決め、そこから派生する項目を順に組み立てる形にすると、矛盾の余地が減ります。

もう一つ注意したいのは、確認の強さを設定で変えられるようにする場合です。強さを変えると、テストで通る組み合わせが変わります。弱い設定で通したことを、強い設定でも通ると解釈しないよう、記録に設定を残してください。固定装置として保存する場合の考え方はテスト固定装置の身元データで扱っています。

次のステップ

まず、手元のテスト用データのうち、国と電話番号の組を十件ほど目で確認してください。一つでも食い違いがあれば、他にも残っている可能性が高いです。次に、項目をまたぐ確認が一箇所にまとまっているかを確かめます。身元生成ツールで生成した整合の取れた値を基準に置き、手元のデータと見比べる方法でも同じ確認ができます。

続けて読む

オンライン身元・テストデータ生成ツールの関連記事