本文へ移動
cccskills
無料GitHub で公開

test-data-management

准备测试数据 / 数据隔离 / 脱敏时使用。适用于功能测试数据准备、性能测试数据生成、生产数据脱敏复制。融合 GDPR 合规、合成数据、数据隔离三层防护。

インストール方法を見る

含まれるファイル(2)

  • SKILL.md6.6 KB
  • templates/test-data-strategy-template.md3.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

测试数据管理(Test Data Management / TDM)

参考来源:GDPR / CCPA 数据保护、Google Test Data Best Practices、合成数据生成(Faker / Mockaroo)、Stripe Test Mode。

适用场景

  • 功能测试数据准备
  • 性能测试大规模数据生成
  • 生产数据脱敏后用于测试
  • 多租户 / 多环境数据隔离
  • 测试数据清理和回收
  • 合规要求下的 PII 处理

核心原则

1. 测试数据要可重复创建
   不能"手工造一次,丢了重造"

2. 测试数据必须隔离
   不能污染生产 / 不能跨用例污染

3. 不能用真实 PII 做测试
   GDPR / CCPA 红线

4. 数据要"真实但假"
   足够真实能触发真 Bug,但不是真用户

5. 自动清理
   测试结束后状态可恢复

测试数据策略

1. 工厂模式(Factory)

代码定义 + 参数化 + 默认值

示例(Python factory_boy):
class OrderFactory:
    user = SubFactory(UserFactory)
    amount = 100
    status = 'draft'
    created_at = LazyFunction(now)

# 使用:
OrderFactory()                       # 默认订单
OrderFactory(amount=999)             # 自定义金额
OrderFactory.create_batch(100)       # 批量

优势:可重复、参数化、可组合 适用:单元测试、集成测试

2. Fixture 文件(JSON / YAML)

固定测试数据,提交到版本控制

适用:API 测试、UI 测试、回归套件

3. 合成数据生成

工具:Faker / Mockaroo / Synthetic Data Vault

特点:随机但符合分布
适用:性能测试、机器学习、Demo

4. 脱敏生产数据

流程:
  生产 DB → 脱敏脚本 → 测试 DB

脱敏方式:
  - 哈希:邮箱 → MD5(邮箱) + @test.com
  - 随机化:电话号码替换
  - 通用化:精确地址 → 城市
  - 加噪:金额 ± 10%
  - 删除:身份证、密码、token

适用:性能测试、UAT、复杂业务场景

数据隔离三层防护

1. 物理隔离
   - 独立数据库 / Schema
   - 独立实例

2. 逻辑隔离
   - tenant_id / env 字段
   - WHERE env='test' 强制过滤

3. 命名隔离
   - 前缀:test_user_xxx, _test_order_xxx
   - 标记 metadata: {"test": true}

PII / 敏感数据处理

绝对不能用真实数据:
  - 身份证 / 护照
  - 银行卡 / CVV
  - 真实姓名 + 真实手机号
  - 真实邮箱
  - 健康记录
  - 地理位置精确坐标

替代方案:
  - 测试身份证号(11000019900307XXXX 区间)
  - 测试银行卡(4242 4242 4242 4242 - Stripe 测试卡)
  - 假人姓名(Faker 库)
  - test@example.com 这类专用邮箱
  - 城市级地址(北京市,不到具体街道)

测试账号体系

角色矩阵:
  - guest_01:未登录访客
  - user_01_a:普通用户,租户 A
  - user_02_a:普通用户,租户 A(用于测协作)
  - user_03_b:普通用户,租户 B(用于测租户隔离)
  - manager_01_a:管理者,租户 A
  - admin_01_a:管理员,租户 A
  - admin_global:超管

每个账号:
  - 固定密码(仅测试环境)
  - 固定邮箱
  - 完整业务数据(不同状态)
  - 文档化(README)

数据生命周期

1. 创建(Setup)
   - 用例开始前
   - 工厂模式生成
   - 标记 _test_xxx

2. 使用(Test Body)
   - 不被其他用例污染
   - 修改后只影响本用例

3. 验证(Assert)
   - 检查数据库状态
   - 不留中间状态

4. 清理(Teardown)
   - 删除 / 重置
   - 异步清理脏数据脚本兜底

5. 归档(Optional)
   - 失败用例数据保留 24h 以排查

工作流程

1. 列数据需求
   - 用例需要什么数据
   - 多少条
   - 什么状态分布
   ↓
2. 选择策略
   - 单元测试 → Factory
   - API 测试 → Fixture / Factory
   - E2E 测试 → 预置账号 + Factory
   - 性能测试 → 合成生成
   - UAT → 脱敏生产数据
   ↓
3. 实现数据生成
   - 工厂代码 / 脚本
   ↓
4. 隔离机制
   - 标记 / 命名 / 独立 DB
   ↓
5. 清理机制
   - Teardown / 定时清理
   ↓
6. 文档化
   - 测试账号清单
   - 数据规模
   - 使用说明

大规模性能数据生成

目标:百万级数据,< 1 小时生成

技术:
  - 数据库批量插入(COPY / INSERT batch)
  - 关闭索引 → 插入 → 重建索引
  - 关闭外键约束 → 插入 → 启用
  - 直接生成 SQL 文件再 LOAD

示例(PostgreSQL):
  COPY orders FROM '/data/orders.csv' WITH CSV;
  → 100 万条 < 30 秒

测试数据污染应对

症状:
  - 用例顺序变了就失败
  - 周一过、周五挂
  - CI 不稳定

排查:
  - 是否清理了?
  - 是否有共享状态(缓存 / 静态变量)?
  - 是否依赖测试顺序?

防御:
  - 每个用例独立 transaction,结束 rollback
  - 用 unique 后缀(timestamp / uuid)
  - 测试容器(每跑一次新建 DB)
  - 异步清理脚本兜底

质量自检

□ 测试数据可程序化生成
□ 测试数据隔离三层防护
□ 不使用真实 PII
□ 测试账号文档化
□ 数据清理机制完备
□ 性能测试数据规模接近生产
□ 脱敏脚本无可逆性
□ 测试数据进版本控制
□ 数据规模有上限(防爆磁盘)
□ 跨环境数据迁移有审计

常见坑

  1. 手工造数据——下次环境重置全没了
  2. 用真实邮箱 / 手机——给真实用户发了测试短信
  3. 测试数据进生产——污染线上
  4. 清理不彻底——脏数据累积
  5. 共享测试账号——并发用例互相干扰
  6. 依赖固定 ID——数据库 reset 后 ID 变了
  7. 性能数据太小——压测结论失真
  8. 脱敏不彻底——昵称 / 备注暴露 PII
  9. 测试时区与生产不同——时间相关用例错乱
  10. fixture 文件不进版本控制——团队各自维护

配套模板

  • templates/test-data-strategy-template.md — 数据策略 + 隔离方案 + 清理机制 + 测试账号矩阵 + 脱敏规则

与其他 skill 的协作

上游:
  数据库工程师工作流 → 数据模型 / Schema
  test-strategy → 数据规模需求

下游:
  test-case-design → 用例使用数据
  api-testing → API 测试数据
  performance-testing → 大规模数据
  acceptance-testing → UAT 数据
  自动化测试工作流 → 自动化数据准备

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

A/B 测试设计与分析时使用。适用于产品实验、功能验证、转化率优化。融合假设驱动 + 样本量计算 + 置信度判断。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

上线前业务方/产品方验收时使用。适用于功能交付确认、UAT、发布会签。融合 BDD Given-When-Then、Specification by Example、ATDD。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

设计无障碍可访问的界面时使用。适用于满足 WCAG 标准、键盘导航、屏幕阅读器支持。优先使用 WCAG 2.2 AA 级标准 + 键盘 + 焦点 + 对比度 + ARIA。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

实现可访问性(无障碍)时使用。覆盖 WCAG 2.2 AA / ARIA / 键盘导航 / 屏幕阅读器 / 颜色对比 / 焦点管理。融合 React Aria / Radix UI / Headless UI 实践 + axe-core 自动化测试。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

AI 模型部署时使用。适用于推理服务 / GPU / TensorRT / 监控 / 扩缩容。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

数据分析报告输出时使用。适用于业务分析报告、周报、专项分析、决策支持。融合洞察 + 建议 + 行动项。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

zhaoxuya520 のスキルをすべて見る

このスキルの問題を報告する