test-data-management

Generate deterministic, isolated test data with factories, anonymization, seeding, and cleanup.

64|12|Updated Mar 23, 2026
One-click install
npx skills add https://github.com/petrkindlmann/qa-skills --skill test-data-management-petrkindlmann
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: test-data-management
Source: https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-data-management
Command: npx skills add https://github.com/petrkindlmann/qa-skills --skill test-data-management-petrkindlmann

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Create, maintain, and clean up deterministic, isolated test data that ensures reliable tests and eliminates flakiness from shared mutable state.

Core Features & Use Cases

  • Factories and seeds: Fishery (TypeScript), FactoryBot (Ruby), and Factory Boy (Python) implementations to generate realistic, configurable data.
  • Data anonymization and GDPR-compliant handling: pipelines to anonymize PII while preserving data distributions.
  • Database seeding and cleanup: idempotent seeds and per-test cleanup strategies to ensure test isolation across unit, integration, and end-to-end tests.

Quick Start

Create a deterministic test dataset for your project using the built-in seed workflow.

Frequently Asked Questions about test-data-management

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create deterministic test data to eliminate flakiness from shared mutable state?

To create deterministic test data and eliminate flakiness, you should use factories and idempotent seeding workflows that generate isolated data for each test. This approach guarantees repeatable results by preventing shared mutable state across unit, integration, and end-to-end tests.

What is the best way to manage database seeding and cleanup for test isolation?

The best way to manage database seeding and cleanup for test isolation is implementing idempotent seeds and per-test cleanup strategies. This ensures each test runs in isolation without affecting subsequent test results across unit, integration, and end-to-end environments.

How do I set up test data factories for TypeScript, Ruby, or Python?

To set up test data factories, you can use Fishery for TypeScript, FactoryBot for Ruby, or Factory Boy for Python. These frameworks help generate realistic, configurable data to ensure your tests have reliable and deterministic inputs.

Can I anonymize PII in test data while preserving data distributions for GDPR compliance?

Yes, you can anonymize PII in test data for GDPR compliance using specialized anonymization pipelines. These pipelines transform sensitive information while carefully preserving the underlying data distributions to maintain realistic testing conditions.

Why does shared mutable state cause flaky tests and how can I prevent it?

Shared mutable state causes flaky tests because test execution order changes data dependencies, leading to unpredictable failures. You can prevent this by enforcing deterministic data generation, idempotent seeding, and per-test cleanup to guarantee complete test isolation.