このツールについて
データ駆動テストの質はデータ表の質で決まり、手書きの表は境界を見落としがちです。各フィールドを型(文字列、メール、数値、日付、enum、真偽値、電話番号)と制約(長さや値の範囲、必須、許可される値)で定義すると、このツールが表を作ります。標準的な正常行を 1 つ作り、その後は一度に 1 つのフィールドだけを変えた行を作ります。最小値と最大値、各制限の 1 ステップ外、必須なのに未入力、不正な形式などです。各行には「Accept」(受理)か「Reject」(拒否)のラベルと、「age = 17(最小値 18 未満)」のような理由が付くので、失敗した行は 1 つのルールを指し示します。値は決定的でランダムなデータを含まないため、同じ定義からは常に同じ表が作られ、バージョン管理での差分も読みやすく保たれます。
使い方
- 入力項目ごとにフィールドを追加します:名前、型、制約。制限がない場合は最小値・最大値を空欄にします。
- enum では許可される値を列挙し、数値では整数のみを正しい値とするかを選びます。
- プレビューを確認し、正常・境界・異常の行で絞り込みます。
- スプレッドシート駆動のテスト用には CSV、コードでのパラメーター化テスト用には JSON で出力します。
テストデータテンプレート作成ツール のよくある質問
出力を自動テストで使うには?
JSON 配列を読み込み、1 つのテストをパラメーター化します。各行のデータを送り、expected が "Accept" なら成功を、"Reject" なら検証エラーをアサートします。理由はそのままわかりやすいテスト名になります。たとえば Vitest/Jest の test.each や JUnit 5 の @MethodSource を使います。
値がない場合はどう表現されますか?
CSV では空のセル、JSON では null になります。API がキーの欠落と明示的な null を区別する場合は、キーを省略したケースを別に追加してください。
ランダムなデータを使わないのはなぜですか?
ランダムな値は失敗の再現を難しくし、表のレビューも難しくします。境界値テストには正確な値(最小値、その 1 つ下)が必要なので、このツールは固定の値を生成します。リアルなランダムレコードが必要な場合はテストデータ生成ツールを使ってください。