Fastway
Back to blog

How to Generate Realistic Test Data

Rodrigo Krohling
·4 min read

Building or testing software almost always means filling it with data first. Real user records are the worst possible choice for that — they are private, regulated, and rarely cover the weird edge cases. Generated fake data is faster, safer, and more thorough.

Why not just use real data

  • Privacy and compliance. Copying production users into a test database puts real personal information somewhere it should never be.
  • Coverage. Real data clusters around the common case. You need the long name, the apostrophe in the surname, the address with no postal code — the rows that break naive code.
  • Volume. You can mint ten thousand rows in a second; you cannot ask ten thousand real users to sign up.

What good test data looks like

Good fake data is realistic without being real: plausible names, well-formed email addresses, valid-looking phone numbers and IDs. It should pass your format validation, so you are testing your logic and not your random-string generator.

Generate it in seconds

The fake data generator produces names, emails, addresses, and other fields ready to paste into a seed script or a spreadsheet. Pick how many records you need and copy the result.

For more specialised values, reach for the dedicated generators:

  • Document numbers that pass checksum validation — CPF, CNPJ, SSN and more — from the tax ID generator.
  • Unique identifiers for primary keys and correlation IDs from the UUID generator.
  • API keys and secrets for testing auth flows from the API token generator.

A practical workflow

  1. Generate a batch of base records (names, emails) with the fake data generator.
  2. Add valid document numbers from the tax ID generator where your schema needs them.
  3. Assign each row a UUID as its primary key.
  4. Paste it all into your seed file or import it into a test database.

It never touches a server

Every value is generated locally in your browser, so nothing you create — and nothing about what you are building — is sent anywhere. That is exactly the property you want from a tool you reach for while wiring up a new system. (More on why that matters in why client-side tools are more private.)