name: 计划-数据 description: 创建一个测试数据策略,涵盖合成数据生成、匿名化和环境特定数据管理。用于数据隐私合规和测试环境设置。 allowed-tools: 读取, 写入, 全局, 搜索, 技能 argument-hint: [项目上下文]
计划测试数据命令
为管理测试环境中的数据创建一个全面的测试数据策略。
过程
步骤 1: 收集上下文
识别项目数据需求:
- 数据实体和关系
- 敏感数据类型(个人身份信息、受保护健康信息、金融信息)
- 环境要求(开发、质量保证、预发布)
- 合规要求(GDPR、HIPAA)
- 数据量要求
步骤 2: 加载技能
调用 test-strategy:test-data-strategy 技能以获取数据管理模式。
步骤 3: 分析数据需求
针对每个测试级别:
| 级别 | 数据源 | 数据量 | 刷新频率 |
|-------|-------------|--------|---------|
| 单元测试 | 合成数据 | 最小 | 每个测试 |
| 集成测试 | 合成数据 + 固定数据 | 中等 | 每个测试套件 |
| 端到端测试 | 掩码的生产数据 | 真实 | 每周 |
| 性能测试 | 缩放的合成数据 | 生产相似 | 每个发布 |
步骤 4: 识别敏感数据
映射个人身份信息和敏感字段:
| 实体 | 字段 | 敏感性 | 处理方法 |
|--------|-------|-------------|-----------|
| 用户 | 电子邮件 | 个人身份信息 | 替换 |
| 用户 | 社会安全号码 | 高度敏感 | 令牌化 |
| 订单 | 卡号 | 金融信息 | 擦除 |
| 日志 | IP 地址 | 个人身份信息 | 掩码 |
步骤 5: 设计生成策略
推荐 .NET 数据生成工具:
// Bogus 用于生成真实的假数据
var customerFaker = new Faker<Customer>()
.RuleFor(c => c.Name, f => f.Person.FullName)
.RuleFor(c => c.Email, f => f.Internet.Email())
.RuleFor(c => c.Phone, f => f.Phone.PhoneNumber());
// AutoFixture 用于匿名测试数据
var fixture = new Fixture();
var order = fixture.Create<Order>();
步骤 6: 创建策略文档
生成全面的数据策略:
# 测试数据策略
## 1. 按级别的数据需求
[需求矩阵]
## 2. 数据源
- 合成数据: Bogus, AutoFixture
- 固定数据: JSON/CSV 种子文件
- 掩码数据: 匿名化的生产样本
## 3. 生成模式
[每个实体的代码示例]
## 4. 匿名化规则
[个人身份信息处理程序]
## 5. 环境配置
- 开发环境: 100% 合成数据
- 质量保证环境: 掩码的生产数据子集
- 预发布环境: 完整掩码克隆
## 6. 合规检查清单
- [ ] GDPR: 测试中无真实欧盟数据
- [ ] HIPAA: 受保护健康信息去标识化
- [ ] PCI: 无真实卡号
## 7. 刷新程序
[何时以及如何刷新数据]
步骤 7: 输出
## 测试数据策略已创建
**覆盖的实体**: [计数]
**识别的敏感字段**: [计数]
**配置的环境**: [列表]
**创建的文件**:
- [路径/到/数据策略.md]
- [路径/到/生成器/CustomerFaker.cs]
- [路径/到/种子/基础数据.json]
**合规状态**:
- GDPR: [状态]
- HIPAA: [状态]
- PCI-DSS: [状态]
**下一步**:
1. 审查匿名化规则
2. 设置数据刷新自动化
3. 为每个环境创建种子脚本
示例
一般策略:
/test-strategy:plan-data
带合规上下文:
/test-strategy:plan-data 具有 HIPAA 要求的医疗系统