Edge Case Generator

Runs in browser Test Design

A knowledge base of edge cases per data type (Unicode, whitespace, leap days, timezone boundaries, zero, overflow, empty lists, duplicates, race conditions) applied to your fields.

Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

How to use Edge Case Generator

  1. List the fields (types are inferred from names such as releaseDate or attachment).
  2. Keep concurrency cases on for forms that create or update records.
  3. Generate and use the "Edge cases by field" table as a review checklist.

Edge Case Generator features

  • Knowledge base of edge cases for strings, numbers, dates, files, lists, booleans, enums, emails, URLs, phones, passwords and UUIDs
  • Unicode (Arabic, Devanagari, emoji, NFC/NFD), whitespace, control characters and injection payloads
  • Calendar and timezone traps: leap days, DST, extreme offsets, epoch, year 2038
  • Concurrency and session cases: double submit, lost update, retry storms, back-button resubmission
  • Each case states the value, why it matters and the expected behaviour
  • Export as Markdown, JSON, CSV or Gherkin

Edge Case Generator example

Edge cases for a date field

Input:

releaseDate: date

Output:

2024-02-29        Leap day                          Accepted
2023-02-29        Non-leap year 29 Feb              Rejected
2100-02-29        Century non-leap year             Rejected
23:59:59.999      End of day                        Belongs to the same day
DST switch day    Missing/duplicate hour            No duplicated or lost events
2038-01-19        Year-2038 32-bit overflow         Handled

Frequently asked questions about Edge Case Generator

Which edge cases are in the knowledge base?

Strings: empty, whitespace, Unicode (Arabic, Devanagari, emoji, normalisation), control characters, injection payloads and length limits. Numbers: zero, negative zero, precision, overflow, NaN. Dates: leap days, DST, extreme offsets, epoch and year 2038. Files: size limits, spoofed types, path traversal. Lists: empty, duplicates, nesting. Booleans, enums, emails, URLs, phones, passwords and UUIDs have their own sets.

What are the concurrency cases?

Double submissions, simultaneous edits, deletes during a view, retries after timeouts, expired sessions and browser back-button resubmission — the classic sources of duplicate records and lost updates.

How is this different from boundary values?

Boundary values are numeric edges of a range. Edge cases cover everything else that tends to break: encodings, calendars, sizes, timing and type confusion.

Can I add my own edge cases?

Export the cases as CSV or JSON and append your product-specific ones; the ids stay stable so the sets merge cleanly.