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…

What is negative testing?

Negative testing gives a system input it should refuse — a missing field, the wrong type, a value outside its range, a malformed file, an expired token, a second click — and checks that it refuses cleanly: a specific error, no data change, no crash, nothing leaked. Positive tests prove a feature works; negative tests prove it fails safely, and edge-case tests prove it still behaves correctly under valid but unusual conditions — an exact limit, a leap day, right-to-left text, a session that expires mid-form. Those paths are where most production incidents and most security findings live. The ISTQB syllabus treats them as part of ordinary test design, not a separate discipline.

Read the guide: How to Write Test Cases

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.

References