@shij

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AIを使用したテストデータ作成について意見が欲しいです。

単体テストの質の向上、生産性を上げるために生清AIを使用したいと考えていますが、具体的にどのような手順で行うのかイメージができていません。
AIに仕様書、詳細設計(データベースの情報)を参照させ、テスト時に使用するテーブルデータ、必要なテストケース生成などを行っている方(テストコードよりもテストデータ、ケース)、具体的にどのような方法を使っているか教えていただきたいです。

0 likes

テーブルデータを生成させたい場合は仕様書よりもDDLを提示しています。
以下はプロンプトの例です。


以下のテーブル定義に対して、単体テスト用のテストデータをCSV形式で出力してください。
1行目はヘッダ行とし、UTF-8想定です。

テストケース:

  • 正常系の代表値3件
  • 境界値テスト(最小値・最大値)
  • 異常系(NULL禁止項目がNULL、桁数超過など)

テーブル定義:
CREATE TABLE ~

0Like

実際にAIエージェント(Claude Code)を使って開発していますが、テストデータ・テストケースの生成には2つのアプローチが効果的でした。

① TDD(テスト駆)でAIに書かせる

CLAUDE.mdやカーソルルール等に「テストを先に書く」ルールを設定しておくと、AIがユースケースから逆算してテストケースとテストデータを自動生成します。自分の場合、10個のユーザーストーリーから正常系・異常系・境界値を含めて約500件のテストが生成されました。

ポイントは、仕様書やDDLをコンテキストとして渡すだけでなく、「テストを先に書いてから実装」というワークフロー自体をルール化することです。AIは実装コードがない状態の方が、仕様に忠実なテストケースを生成してくれます。

② E2Eテストの自動生成

単体テストに加えて、PlaywrightのTest Agentsを使うと、画面操作ベースの結合テストも自動生成できます。テストデータのセットアップも含めてAIが設計してくれるので、手動でCSVを作る工程がかなり減ります。

手前味噌ですが下記がイメージです
Claude CodeにTDDを強制する — CLAUDE.mdでテストファーストをAIに叩き込む方法 (https://zenn.dev/kenimo49/articles/claude-code-tdd-force-test-first)

0Like

はじめまして。非エンジニアですが、Claude(Anthropic)と組んで毎日この手の作業をやっています。具体的な手順を書きます。

手順:3ステップで回ります

Step 1: テーブル定義をそのまま食わせる

DDL(CREATE TABLE文)をそのままClaudeに貼って、こう聞きます。

以下のテーブル定義を読んで、各カラムのデータ型・制約・外部キー関係を整理してください。

[ここにDDLを貼る]

これで「どのテーブルが何と繋がってるか」をAIが把握します。

Step 2: テストケースの方針を指定してデータ生成

ここが肝です。「テストデータ作って」だけだと汎用的すぎるデータが出ます。 テスト観点を指定します。

上記テーブルに対して、以下の観点でテストデータをINSERT文で生成してください。

- 正常系: 典型的なデータ 5件
- 境界値: 文字列最大長、数値の上限下限、NULL許容カラムのNULL
- 異常系の手前: 外部キー参照先が存在するギリギリのケース
- 日付系: 過去日、未来日、当日、うるう年

出力形式: そのまま実行できるINSERT文。コメントで各行のテスト意図を書いて。

「コメントでテスト意図を書いて」が重要です。なぜそのデータなのかが残るので、後から見て意味がわかります。

Step 3: 仕様書の業務ルールを追加で食わせる

仕様書に「ステータスが"承認済"の注文のみ出荷可能」みたいな業務ルールがあれば、それも追加で食わせます。

追加の業務ルール:
- ステータスが"approved"の注文のみ出荷処理に進む
- 金額が10万円以上は上長承認が必要
- 同一ユーザーの注文は1日5件まで

上記ルールの境界を突くテストデータを追加してください。
特に「ルール違反だがDBの制約には引っかからないデータ」を重点的に。

この「DBの制約には引っかからないがビジネスルール違反」のデータが一番価値が高いです。 単体テストで本当に拾いたいのはここなので。

注意点

  • AIが生成した外部キーの整合性は必ず確認してください。存在しないIDを参照してINSERTが通らないことがあります
  • 生成されたデータは「下書き」です。業務知識がある人がレビューして初めて使えます
  • 大量データ(1000件以上)が必要な場合は、AIにPythonスクリプト(Faker等)を書かせる方が効率的です

dosanko_tousan — 非エンジニア・主夫。Claude(Anthropic)と組んで3,540時間。AIの使い方を毎日研究しています。
質問あればお気軽にどうぞ。

0Like
This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌