mcpField
T
test-data-management

test-data-management

github.com/proffesor-for-testingテスト・品質520113 回インストール今日更新
リポジトリ

test-data-management について

test-data-managementは、テストデータの作成と管理に使うスキルです。合成データ、匿名化、分離の方法に加え、単体・統合・性能テストに応じたデータ規模を示します。

主な機能

  1. 01テストデータで本番の個人情報を避ける
  2. 02合成データまたは匿名化データを生成
  3. 03データを分離しテストごとにクリーンアップ
  4. 04テスト種別に応じてデータ規模を選択
  5. 05大量データをバッチ生成

活用シーン

  1. 01単体テストや統合テストのフィクスチャ準備
  2. 02機密データを保護したテストの実施
  3. 03性能テスト用の大規模データセット作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill test-data-management

インストール後、Claude Code で/test-data-managementを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
test-data-management.yaml
schemas/
output.json
scripts/
validate-config.json

詳細

テストデータ管理

<default_to_action> テストデータを作成または管理する際は、次の点に従ってください。

  1. 本番環境の PII を直接使用しないでください
  2. faker ライブラリを使って合成データを生成してください
  3. 本番データを使用する場合は匿名化してください(マスキング、ハッシュ化)
  4. テストデータを分離してください(トランザクション、テストごとのクリーンアップ)
  5. バッチ生成でスケールさせてください(毎秒 10k 件以上)

データ戦略のクイックガイド:

  • 単体テスト:最小限のデータ(必要な分だけ)
  • 統合テスト:現実的なデータ(複雑さをすべて含む)
  • パフォーマンステスト:大量のデータ(10k 件以上)

重要な成功要因:

  • テスト失敗の 40% はデータ不足が原因です
  • PII 違反には最大 2,000 万ユーロの GDPR 制裁金が科されます
  • テスト環境に本番環境の PII を保存しないでください </default_to_action>

クイックリファレンスカード

使用する場面
  • テストデータセットの作成
  • 機密データの取り扱い
  • 大量データを使ったパフォーマンステスト
  • GDPR/CCPA への準拠
データ戦略
種類使用場面件数
最小限単体テスト1~10 件
現実的統合テスト100~1000 件
大量パフォーマンス10k 件以上
エッジケース境界値テスト対象を絞る

データの匿名化

// Masking
function maskEmail(email) {
  const [user, domain] = email.split('@');
  return `${user[0]}***@${domain}`;
}
// [email protected] → j***@example.com

function maskCreditCard(cc) {
  return `****-****-****-${cc.slice(-4)}`;
}
// 4242424242424242 → ****-****-****-4242

// Anonymize production data
const anonymizedUsers = prodUsers.map(user => ({
  id: user.id, // Keep ID for relationships
  email: `user-${user.id}@example.com`, // Fake email
  firstName: faker.person.firstName(), // Generated
  phone: null, // Remove PII
  createdAt: user.createdAt // Keep non-PII
}));

データベースのトランザクション分離

// Best practice: use transactions for cleanup
beforeEach(async () => {
  await db.beginTransaction();
});

afterEach(async () => {
  await db.rollbackTransaction(); // Auto cleanup!
});

test('user registration', async () => {
  const user = await userService.register({
    email: '[email protected]'
  });
  expect(user.id).toBeDefined();
  // Automatic rollback after test - no cleanup needed
});

エージェント主導のデータ生成

// High-speed generation with constraints
await Task("Generate Test Data", {
  schema: 'ecommerce',
  count: { users: 10000, products: 500, orders: 5000 },
  preserveReferentialIntegrity: true,
  constraints: {
    age: { min: 18, max: 90 },
    roles: ['customer', 'admin']
  }
}, "qe-test-data-architect");

// GDPR-compliant anonymization
await Task("Anonymize Production Data", {
  source: 'production-snapshot',
  piiFields: ['email', 'phone', 'ssn'],
  method: 'pseudonymization',
  retainStructure: true
}, "qe-test-data-architect");

エージェント連携のヒント

メモリ名前空間
aqe/test-data-management/
├── schemas/*            - Data schemas
├── generators/*         - Generator configs
├── anonymization/*      - PII handling rules
└── fixtures/*           - Reusable fixtures
フリート連携
const dataFleet = await FleetManager.coordinate({
  strategy: 'test-data-generation',
  agents: [
    'qe-test-data-architect',  // Generate data
    'qe-test-executor',        // Execute with data
    'qe-security-scanner'      // Validate no PII exposure
  ],
  topology: 'sequential'
});

関連スキル


覚えておくこと

本番環境の PII を直接使用しないでください。 常に合成データ、または適切に匿名化した本番環境のスナップショットを使用してください。

エージェントを使用する場合: qe-test-data-architect は、現実的なパターン、関連性、制約を備えた 10k 件以上のデータを毎秒生成します。エージェントは GDPR/CCPA への準拠を自動的に確保し、テストデータのボトルネックを解消します。

コメント