.cursor/skills/qa-data-factory/SKILL.md
Generate realistic test data using fixtures, factory patterns, and faker-based seeds for consistent and reproducible test environments.
npx skillsauth add AZANIR/qa-skills qa-data-factoryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate realistic, consistent, and reproducible test data for automated and manual testing. Supports fixtures (static JSON/YAML), factory patterns (dynamic generation with overrides), faker-based seeds (realistic random data), and builder patterns (fluent API for complex objects). Produces fixtures, factory classes, seed scripts, and data cleanup utilities.
| Approach | Use Case | Output | |----------|----------|--------| | Fixtures | Static, version-controlled data; predictable | JSON, YAML, CSV files | | Factory pattern | Dynamic generation with overrides; per-test customization | Factory classes (TypeScript/Python) | | Faker-based seeds | Realistic but random; locale-aware | Seed scripts, inline generation | | Builder pattern | Complex nested objects; fluent API | Builder classes |
See references/factory-patterns.md for implementation details.
| Tool | Purpose | |------|---------| | @faker-js/faker | Realistic random data (names, emails, addresses, dates) | | fishery | Factory pattern with sequences and traits | | factory.ts | TypeScript factories with associations | | Test data builders | Fluent API for complex objects |
| Tool | Purpose | |------|---------| | Faker | Realistic random data; locale support | | factory_boy | Factory pattern with sequences, subfactories | | pytest-factoryboy | Pytest integration; fixtures from factories | | model_bakery | Django model factories; minimal boilerplate |
See references/faker-guide.md for usage patterns.
| Type | Examples | Locale-aware | |------|----------|--------------| | Users | name, email, username, password hash | Yes (names, formats) | | Products | SKU, title, price, category | Yes (currency, formats) | | Orders | order ID, items, totals, status | Yes (dates, currency) | | Addresses | street, city, postal code, country | Yes | | Payment info | card numbers (test), expiry, CVV | Test card patterns | | Dates | birthdate, created_at, expiry | Yes (formats) | | Emails | valid format, domain | Yes | | Names | first, last, full | Yes (locale-specific) |
Can do (autonomous):
Cannot do (requires confirmation):
Will not do (out of scope):
| Topic | File |
|-------|------|
| Factory pattern implementations (TS, Python) | references/factory-patterns.md |
| Faker library usage for realistic data | references/faker-guide.md |
| Symptom | Likely Cause | Fix | |---------|--------------|-----| | Data conflicts between tests | Shared state; no cleanup | Add teardown; use unique IDs/emails per test | | Unrealistic data | Default faker; wrong locale | Set locale; use appropriate faker providers | | Factory too verbose | Over-specification | Use sensible defaults; override only when needed | | Seed non-reproducible | Random seed not set | Use faker.seed(123) or equivalent | | Schema mismatch | Generated fields don't match API/DB | Align with OpenAPI/DB schema; validate output |
tools
Analyze OpenAPI/Swagger spec (JSON or YAML) against existing test files and generate an HTML coverage report with QA automation tasks. Use when user provides an OpenAPI spec file and wants to know test coverage status.
testing
Universal QA plan generator supporting 10 plan types including test plans, sprint plans, regression plans, release plans, UAT plans, performance plans, migration plans, onboarding plans, and custom plans.
development
Generate consumer-driven contract tests using Pact for JavaScript and Python to verify microservice API compatibility between consumer and provider.
development
Master skill coordinating all QA skills through pipeline modes (full-cycle, docs-only, testcases-only, write-tests, report), formalized handoff chains, scheduler rules, and framework/language selection based on project context.