👻

アプリケーション開発時のテストデータ生成をClaude Projectで効率化した方法

に公開

開発現場では、テスト環境の準備やテストデータの生成が開発サイクルの大きなボトルネックになることがあります。デジタルキューブのダッシュボード開発では、テスト環境でのデータ生成作業に多くの時間と労力を費やしていました。この記事では、「Claude Project」を活用してこの課題を解決し、開発効率を大幅に向上させた実際の取り組みをご紹介します。

直面していた課題

ダッシュボード開発において、以下のような課題が日々の開発を妨げていました。

1. インフラチームへの依存

ダッシュボードの機能テストには、terraformでデプロイされたAWSリソースの情報が必須でした。テストの度に、インフラチームへのデプロイ依頼やダミーデータ提供の依頼が必要となり、開発のたびに待ち時間が発生していました。

2. 手動データ合成のミス

テストに必要なデータは、terraformの出力値(CloudFrontのディストリビューションIDなど)と申込内容(StripeのサブスクリプションIDやCognitoのユーザーIDなど)を手作業で合成する必要がありました。この過程でキーと値の組み合わせミスが頻繁に発生し、原因特定に時間を取られることがありました。

3. 開発速度の低下

上記の作業に時間を取られることで、本来のアプリケーション開発に集中できない状況が慢性化していました。結果として、全体的な開発速度が低下するという悪循環に陥っていました。

Claude Projectによる解決策

この状況を改善するため、Anthropicが提供するClaude Projectに着目しました。Claude Projectには以下の特徴があります:

  • システムプロンプト機能: 共通の前提条件や指示を生成AIに明確に伝えられる
  • ナレッジ機能: Markdown/PDFなどのデータをアップロードし、それを参照して回答を生成できる

これらの機能を組み合わせることで、テストデータ生成プロセスの自動化を実現しました。

実装方法

1. システムプロンプトの定義

まず、Claude Projectにタスクを明確に伝えるためのシステムプロンプトを作成しました:

以下のようなダミーのJSONデータを受け取ります。ナレッジにあるデータを利用して、空欄部分にデータを追加してください。なお、データがない( = valueが"")になるものがある場合は、項目ごと削除します。
{
    "stage": "development",
    "requestData": {
        "email": "test@example.com",
        "uid": "e46741a1-99a0-4523-ad1e-39c38d406076",
        "subscriptionId": "sub_1xxxxx"
    },
    "setupData": {
        "cfDistributionId": "",
        "efsId": "",
        "region": "us-west-2"
    }
}

このプロンプトにより、Claudeは空欄のフィールドをナレッジベースの情報で補完するという明確なタスクを理解できます。

2. ナレッジベースの構築

次に、テストに必要なリソース情報をナレッジとしてアップロードしました:

  • terraform outputの結果: AWSリソースIDや設定値を含むファイル
  • 環境別設定値: 開発/ステージング/本番環境ごとの設定パラメータ

これらのデータはMarkdownファイルにまとめ、Claude Projectのナレッジベースとして登録しました。

3. テストデータ生成の自動化

開発者は以下の手順でテストデータを簡単に生成できるようになりました:

  1. Claude Projectにアクセスし、テストしたい機能に関連するベーステンプレートを入力
  2. 必要に応じてカスタマイズ(メールアドレスやユーザーIDの変更など)
  3. Claudeがナレッジベースから適切なデータを自動的に補完
  4. 生成されたJSONをコピーしてテスト環境で利用

生成されるJSONの例:

{
    "stage": "development",
    "requestData": {
        "email": "test@example.com",
        "uid": "e46741a1-99a0-4523-ad1e-39c38d406076",
        "subscriptionId": "sub_1xxxxx"
    },
    "setupData": {
        "cfDistributionId": "E2ABCDEFGHIJK1",
        "efsId": "fs-01234abcd56789ef",
        "region": "us-west-2"
    }
}

導入効果

Claude Projectを活用した結果、以下のような効果が得られました:

1. インフラチームへの依存低減

開発者自身がテストデータを生成できるようになり、インフラチームへの依頼回数が週に5回以上から実質ゼロに減少しました。これにより、インフラチームは他の重要なタスクに集中できるようになりました。

2. ミスの削減

データの自動補完により、手作業でのコピー&ペーストによるミスがなくなりました。テストの初期段階でのエラーが約70%減少し、デバッグ時間の大幅な削減に繋がりました。

3. 開発速度の向上

テストデータ準備にかかる時間が平均30分から1分未満に短縮され、本来の開発作業に集中できるようになりました。これにより、機能開発のイテレーション速度が約40%向上しました。

4. 一貫性の確保

常に最新のナレッジを参照するため、テストデータの一貫性が向上しました。環境間での設定ミスマッチが解消され、「開発環境では動くが、ステージング環境では動かない」といった問題が大幅に減少しました。

まとめ

Claude Projectを活用することで、以下のようなメリットが得られました:

  1. 開発者がインフラチームに依存することなく、自らテストデータを生成できるようになりました
  2. 手作業によるミスがなくなり、品質が向上しました
  3. 開発サイクルが短縮され、プロダクト開発の速度が向上しました

AI技術を開発ワークフローに取り入れることで、単純作業を自動化し、より創造的な作業に集中できるようになります。皆さんの開発プロセスでも、このような効率化の取り組みを検討してみてはいかがでしょうか。

質問やフィードバックがありましたら、コメントやSNSでお気軽にお寄せください。

デジタルキューブ

Discussion