test-data-management について
test-data-managementは、テストデータの作成と管理に使うスキルです。合成データ、匿名化、分離の方法に加え、単体・統合・性能テストに応じたデータ規模を示します。
主な機能
- 01テストデータで本番の個人情報を避ける
- 02合成データまたは匿名化データを生成
- 03データを分離しテストごとにクリーンアップ
- 04テスト種別に応じてデータ規模を選択
- 05大量データをバッチ生成
活用シーン
- 01単体テストや統合テストのフィクスチャ準備
- 02機密データを保護したテストの実施
- 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.yamlschemas/output.jsonscripts/validate-config.json詳細
テストデータ管理
<default_to_action> テストデータを作成または管理する際は、次の点に従ってください。
- 本番環境の PII を直接使用しないでください
- faker ライブラリを使って合成データを生成してください
- 本番データを使用する場合は匿名化してください(マスキング、ハッシュ化)
- テストデータを分離してください(トランザクション、テストごとのクリーンアップ)
- バッチ生成でスケールさせてください(毎秒 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'
});
関連スキル
- データベーステスト - スキーマと整合性のテスト
- コンプライアンステスト - GDPR/CCPA への準拠
- パフォーマンステスト - パフォーマンステスト用の大量データ
覚えておくこと
本番環境の PII を直接使用しないでください。 常に合成データ、または適切に匿名化した本番環境のスナップショットを使用してください。
エージェントを使用する場合: qe-test-data-architect は、現実的なパターン、関連性、制約を備えた 10k 件以上のデータを毎秒生成します。エージェントは GDPR/CCPA への準拠を自動的に確保し、テストデータのボトルネックを解消します。
コメント
Markdown 対応