サンプルCSV(ダミーデータ)生成ツール
列名と型(連番ID・氏名・メール・日付・数値など)を指定するだけで、テスト・QA用のダミーCSVデータをその場で生成・ダウンロードできます。
対応しているデータ型
| 型 | 生成例 |
|---|---|
| 連番ID | 1, 2, 3, ... または USR-0001 のような接頭辞付き連番 |
| 氏名 | Taro Yamada, Emma Smith のような日本語・欧米混在の架空氏名 |
| メールアドレス | [email protected](生成された氏名から自動作成) |
| 電話番号 | 090-1234-5678 のような日本の携帯電話番号風フォーマット |
| 日付 | 指定した期間内のランダムな日付(YYYY-MM-DD形式) |
| 整数 | 指定した最小〜最大の範囲内のランダムな整数 |
| 小数(金額など) | 指定した最小〜最大の範囲内のランダムな小数(小数点以下2桁) |
| 真偽値 | true/false(ラベルは自由に変更可能) |
| 自由記述テキスト | Lorem ipsum dolor sit amet. のような単語の羅列 |
使い方のヒント
- シード欄に任意の数値を入力すると、同じ列定義から何度でも同じダミーデータを再現できます。バグ報告や自動テストのfixtureとして共有する際に便利です。
- 生成されるCSVはRFC 4180に準拠しており、カンマや改行、ダブルクォートを含む値も正しくクォート・エスケープされます。
- メールアドレス列は、同じ行の氏名列(メールより前に配置したもの)から自動的に作成されます。氏名列と組み合わせて使うと一貫性のあるデータになります。
- すべての生成処理はブラウザ内で完結し、サーバーには一切送信されません。実在の個人情報を含まない完全な架空データです。
- 行数は最大10,000行まで指定できます。大量のデータを一度に生成するとブラウザの動作が重くなる場合があるため、まずは少ない行数で列定義を確認してから増やすことをおすすめします。
よくある質問
いいえ、まったく関係ありません。氏名・メールアドレス・電話番号はすべて、テスト用に用意した名前のリストとダミードメイン・フォーマットから機械的に組み合わせて生成した架空のデータであり、実在の個人情報とは無関係です。
ブラウザが固まらないよう、1回の生成につき最大10,000行までに制限しています。それ以上の件数が必要な場合は、シードを固定した上で複数回に分けて生成し、結合してご利用ください。
シードは疑似乱数生成の「種」となる数値です。同じシードと同じ列定義を使えば、常に同じ順序で同じダミーデータが生成されます。バグの再現手順を共有したり、テストコードで期待値と比較したりする際に、ランダムなのに再現可能なデータが必要になる場面で役立ちます。
氏名の一部はTaro・Hanakoなど日本語由来のローマ字表記に対応していますが、現時点では漢字・ひらがなでの氏名生成やフリガナには対応していません。列名や真偽値のラベルは自由記述で日本語を入力できます。
ダウンロードされるCSVはUTF-8で出力されます。Excelで直接開くと環境によって文字化けする場合があるため、Excelの「データ」タブから「テキストまたはCSVから」を選び、文字コードにUTF-8を指定してインポートすることをおすすめします。
余談ですが ― なぜテストに「シード付き」ダミーデータが必要なのか
ソフトウェア開発の現場では、実データの代わりにダミーデータでテストすることが広く行われています。理由は大きく二つあり、一つは個人情報保護(実際の顧客データを開発環境やテスト環境に置くリスクを避ける)、もう一つは境界値や異常系を意図的に含んだデータを自在に用意できることです。Ruby の Faker や Python の Faker、JavaScriptの@faker-js/faker などのライブラリが広く使われているのはこのためです。
一方で、完全にランダムなダミーデータには「再現性がない」という弱点があります。あるテストがたまたま失敗したとき、原因がロジックのバグなのか、それとも「たまたま生成された特殊な値」が引き金だったのかを切り分けるのが難しくなります。この問題を解決するのが「シード付き疑似乱数生成器(seeded PRNG)」です。同じシード値を指定すれば、何度実行しても寸分違わず同じ数列(=同じダミーデータ)が得られるため、バグの再現やテスト結果の検証が容易になります。
このツールが採用しているmulberry32は、比較的単純な計算量で質の高い疑似乱数列を生成できるアルゴリズムとして、JavaScriptを中心に軽量な用途でよく使われています。暗号用途には向きませんが、テストデータ生成のように「決定的で高速」であることが重要な場面には適しています。