Test Data Workbench

Test Data Workbench#

Point it at a database. Get realistic, relationally intact test data back.

Test Data Workbench connects to a database, reads its schema, works out what each table and column represents, and writes Python generators that produce plausible data for it. The generators come out as readable source you can edit and commit, insertion order respects foreign keys, and no real data is ever read, so nothing personal enters the pipeline.

It supports SQLite and PostgreSQL, installs as a single command-line tool, and takes about a minute to try.

Try it#

pipx install test-data-workbench

# Zero-setup: build a small SQLite shop database and run the full flow
tdw demo --seed 42

# Or against your own database
tdw analyze "sqlite:///shop.db"
tdw deploy  "sqlite:///shop.db" --output ./generated --seed 42

Installation covers the other install methods and the PostgreSQL extra.

Where to go from here#

Every page stands on its own, so start wherever your question is.

Deciding whether this is the right tool. The problem with test data explains why test data is harder than it looks and how the usual approaches fail. The approach taken explains what this tool does instead and why it emits code rather than rows. Scope and boundaries is the honest boundary: who it is for, when it is the wrong choice, and what it will never do.

Getting it running. Installation and Quickstart.

Understanding how it works. Architecture follows the pipeline end to end. Schema Adaptation covers how an unknown schema is classified, The Fallback Ladder covers what happens when that classification fails, and Privacy and Data Access covers the data-access guarantees and their limits.

Looking up a specific technology. Stack overview is a menu of the whole stack, one page each, covering what the library does here, the idea underneath it, the sharp edges, and verified links for going deeper.

Command and API details. CLI Reference, API Reference, and Testing and Quality.

Note

These docs describe the system as it actually behaves. Where a capability is deliberately out of scope, or an implementation has a limit worth knowing, the relevant page says so rather than leaving it to be discovered.

Technology Stack

About the documentation

Project information#

Version:

1.0.0

License:

Apache-2.0

Repository:

VolanticSystems/test-data-workbench