关于 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 相关规定可能面临高达 €20M 的 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
});
Agent 驱动的数据生成
// 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");
Agent 协作提示
记忆命名空间
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'
});
相关技能
- database-testing - 架构和完整性测试
- compliance-testing - GDPR/CCPA 合规
- performance-testing - 用于性能测试的海量数据
请记住
绝不直接使用生产环境中的 PII。 始终使用合成数据或经过适当匿名化处理的生产数据快照。
使用 Agent: qe-test-data-architect 可按每秒 10k+ 条记录的速度生成具有逼真模式、关系和约束的数据。Agent 会自动确保符合 GDPR/CCPA,并消除测试数据瓶颈。
评论
支持 Markdown