Advertisement

Test Data Toolkit

Synthetic, clearly fictional data for development, QA and demos — addresses, names, user records, UUIDs — plus validators for bank codes. Everything runs in your browser and nothing is stored.

Advertisement
Fake address generatorFictional addresses in the correct postal format for 20 countries, with optional name, phone and e-mail. Random name generatorGiven and family names by country and gender, in the local name order. Test data generatorMock user records with the fields you choose, as JSON, CSV, NDJSON or SQL INSERT. UUID generatorRandom v4 or time-ordered v7 UUIDs in bulk, in any format, plus a decoder. SWIFT code checkerValidate the structure of a BIC: institution, country, location and branch. Routing number validatorUS ABA routing numbers: prefix and 3-7-1 checksum, step by step. Test e-mails & phone numbersReserved domains and the phone ranges regulators keep for fiction. IBAN generatorRandom IBANs with valid check digits for 90 countries. Credit card generatorLuhn-valid test card numbers for every major brand. Test card numbersOfficial sandbox cards from eight payment gateways.
Advertisement

Why use synthetic test data?

Copying production data into a test or staging environment is the easiest way to get realistic records, and the easiest way to leak personal data. A staging database usually has weaker access controls than production, gets shared with contractors, ends up in screenshots and bug reports, and is rarely deleted on schedule. Data protection laws such as the GDPR treat a copy of customer data in a test system exactly like the original.

Synthetic data avoids the problem. It looks and behaves like the real thing — names with accents and apostrophes, postcodes with spaces, two-surname Spanish names, addresses with apartment numbers — but it describes nobody. You can paste it into a ticket, commit it as a fixture or show it in a demo without a second thought.

What makes good test data

Advertisement

How these tools keep data fictional

Every generator here follows the same rules. Street names and house numbers are built from generic words and random numbers; only cities, regions and postcode formats are real, so that validation and shipping-zone logic behave as they would in production. E-mail addresses use example.com, example.net, example.org or the reserved .test, .example and .invalid top-level domains. Phone numbers come only from ranges that regulators have reserved for films and TV — in the United States and Canada, the United Kingdom, Australia, France and Germany. For other countries the phone stays empty.

There are also things we deliberately do not generate: social security numbers, national ID numbers, tax IDs and passport numbers. A realistic-looking fake identity number can collide with a real person’s number, and these fields have no legitimate use outside the systems of the authorities that issue them. If your schema has such a column, fill it with an obviously invalid placeholder in your fixtures.

Validators for bank identifiers

Two tools work the other way round: they check data instead of creating it. The SWIFT code checker tests whether a BIC is well-formed — 8 or 11 characters, a valid ISO country code, and the special location codes for test and passive BICs. The routing number validator checks a US ABA routing number’s prefix and its 3-7-1 checksum, and can calculate the check digit for you. Both explain each step, which is handy when you write your own validation code, just like our IBAN checker does for IBANs.

Everything runs in your browser

The generators use your browser’s cryptographic random number generator (crypto.getRandomValues). The page loads one static data file with word lists, city lists and postcode formats; after that, nothing you generate or type is sent anywhere. That makes the tools safe for internal projects, and they keep working if your connection drops after the page has loaded.

Frequently asked questions

Is the generated data real?

No. Names are random combinations of common first and last names, street names and house numbers are random, e-mail addresses use domains that are reserved for examples, and phone numbers come only from ranges that regulators set aside for fiction. Cities, regions and postcode formats are real so that your validation code sees realistic input.

Can I use this data in production?

Use it in development, test, staging and demo systems. It is not meant to identify anyone, so it should never end up in a customer database, an invoice or a shipping label.

Do you generate social security or ID numbers?

No. National identity numbers, tax numbers and passport numbers are deliberately left out: they are personal identifiers, and a realistic fake one can collide with a real person’s number. If your system needs such a field, use a value that is invalid by design, such as one documented as a test value by the issuing authority, or mask the field in your fixtures.

Is anything sent to your server?

No. The generators run in your browser with its cryptographic random number generator. The page downloads one data file with word lists and formats, and nothing you generate or type is sent back.

Related tools

Advertisement