How is a large synthetic dataset generated for testing?
From three decisions: the shape (the fields, their types and the format — JSON, CSV, SQL, XML), the volume (enough rows to exercise pagination, indexes and import limits) and the variety (boundary values, nulls, duplicates, special characters and the odd malformed row a real export contains). A fixed random seed makes the set reproducible, so a failing test can be re-run on the same rows. Format rules matter at volume: CSV fields with commas, quotes or line breaks must be quoted as RFC 4180 describes, and one oversized JSON document behaves very differently from the same rows as JSON Lines.
Read the guide: What is Performance Testing?
How to use Boundary Number Dataset Generator
- Choose integer widths, a custom range or string lengths.
- Adjust the widths, bounds or lengths.
- Press Generate and use the expected column in your assertions.
Boundary Number Dataset Generator features
- Signed and unsigned 8/16/32/64-bit boundaries: min−1, min, min+1, max−1, max, max+1, plus −1, 0 and 1 for signed types (for unsigned types min−1, min and min+1 already are −1, 0 and 1)
- JavaScript 2^53 safe-integer boundary for 64-bit
- Custom numeric ranges with optional decimals (the step is one unit in the last decimal place)
- String-length boundaries including multibyte and astral characters
- Every row labelled valid/invalid with a note
- JSON, CSV, SQL, XML, JSON Lines or table output
Boundary Number Dataset Generator example
INT32 boundaries
Input:
Boundaries for: Integer widths · Widths: 32 · SignedOutput:
case,value,expected
INT32_MIN − 1,-2147483649,invalid
INT32_MIN,-2147483648,valid
INT32_MAX,2147483647,valid
INT32_MAX + 1,2147483648,invalidFrequently asked questions about Boundary Number Dataset Generator
What is boundary value analysis?
A test-design technique that checks the values right at and around a limit — min−1, min, min+1, max−1, max, max+1 — where off-by-one bugs live.
Which integer widths are covered?
Signed and unsigned 8, 16, 32 and 64-bit, plus JavaScript's 2^53 safe-integer boundary. 64-bit values are strings so they stay exact.
Can I use my own range or string lengths?
Yes. Custom mode takes any numeric range with optional decimals; length mode produces strings at min/max length ± 1 including multibyte and astral-character variants.
References
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) FilesThe commonly implemented CSV rules: comma separators, CRLF line ends, quoting of fields that contain commas, quotes or line breaks.
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatThe JSON grammar: objects, arrays, strings, numbers, the three literals, and UTF-8 as the interchange encoding.
- JSON LinesThe JSON Lines convention: one complete JSON value per line, UTF-8, "\n" separators, .jsonl extension.
- Personal Data Protection Law (English translation)The Saudi law governing personal data — why test environments should use synthetic data rather than copies of real customer records.