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
- List the fields (types are inferred from names such as releaseDate or attachment).
- Keep concurrency cases on for forms that create or update records.
- 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: dateOutput:
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 HandledFrequently 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
- ISTQB Certified Tester Foundation Level (CTFL) v4.0The foundation syllabus of software testing: test levels and types, test design techniques, test management and tools.
- ISTQB GlossaryThe standard definitions of testing terms — test case, regression testing, severity, priority, boundary value analysis and the rest.
- OWASP Cheat Sheet Series: Input ValidationAllow-list validation, syntactic vs. semantic checks, and why client-side validation is never a security control.