1---2name: edge-case-enumeration3department: "skeptic"4description: "Systematic edge case discovery using structured enumeration techniques"5version: 16triggers:7 - "edge case"8 - "boundary"9 - "empty state"10 - "concurrent"11 - "race condition"12 - "validation"13 - "malformed"14 - "overflow"15 - "unicode"16 - "null"17---1819# Edge Case Enumeration2021## Purpose22Systematically discover edge cases for proposed features using structured enumeration techniques.2324## Inputs25- Feature specification or user story being analyzed26- Input fields and their expected types/formats27- State transitions and lifecycle of the feature28- User roles and permission model2930## Process3132### Step 1: Identify Input Boundaries33For each input: document the type, valid range, length constraints, format requirements, and whether it's required or optional.3435### Step 2: Apply Boundary Value Analysis36For each input, enumerate:3738- **Empty/null/undefined**: What happens with no input, null, undefined, empty string, whitespace-only?39- **Minimum and maximum values**: At the boundary, one below, one above40- **Just inside and just outside valid ranges**: Off-by-one errors, boundary transitions41- **Special characters**: Unicode (CJK, Arabic, RTL text), emoji, zero-width characters, combining characters, null bytes42- **Extremely long inputs**: Past max length, at max length, strings that look like numbers4344### Step 3: Enumerate State Combinations45- **Empty state**: First use, no data created yet, fresh account46- **Partial state**: Incomplete setup, mid-operation interruption, partially filled forms47- **Full state**: At capacity limits, pagination boundaries, maximum items reached48- **Stale state**: Cached data from previous version, outdated references, deleted dependencies4950### Step 4: Analyze Concurrent Scenarios51- **Same user simultaneous ops**: Double submit, rapid clicks, multiple tabs, back button after submit52- **Different users on same resource**: Concurrent edits, delete while viewing, permission change during session53- **Operations during deployment/migration**: Request in flight during deploy, schema change mid-operation5455### Step 5: Consider Temporal Edge Cases56- **Timezone boundaries**: UTC midnight, DST transitions, user in different timezone than server57- **Session expiry mid-operation**: Token expires during long form fill, refresh token rotation58- **Long-running operations**: Timeout during processing, progress loss on reconnect, orphaned background jobs5960### Step 6: Map Permission Edge Cases61- **Role transitions**: Admin demoted to user during active session, role upgrade without re-login62- **Shared resources with mixed permissions**: Viewer accessing editor's link, public/private toggle63- **Deleted/suspended user data**: References to deleted users, suspended account data visibility, orphaned content6465## Output Format6667### Edge Case Table6869#### Input Edge Cases70| Input | Edge Case | Expected Behavior | Test Priority |71|---|---|---|---|72| [Field] | Empty/null | [Behavior] | P0/P1/P2 |73| [Field] | Max length + 1 | [Behavior] | P0/P1/P2 |7475#### State Edge Cases76| State | Edge Case | Expected Behavior | Test Priority |77|---|---|---|---|78| Empty | No items, first load | [Behavior] | P0/P1/P2 |79| Stale | Cached reference to deleted item | [Behavior] | P0/P1/P2 |8081#### Concurrency Edge Cases82| Scenario | Edge Case | Expected Behavior | Test Priority |83|---|---|---|---|84| Double submit | Rapid form submission | [Behavior] | P0/P1/P2 |8586#### Temporal Edge Cases87| Scenario | Edge Case | Expected Behavior | Test Priority |88|---|---|---|---|89| Session expiry | Token expires mid-save | [Behavior] | P0/P1/P2 |9091#### Permission Edge Cases92| Scenario | Edge Case | Expected Behavior | Test Priority |93|---|---|---|---|94| Role change | Admin demoted during session | [Behavior] | P0/P1/P2 |9596### Priority Key97- **P0**: Will break in production, must handle before launch98- **P1**: Likely to occur, causes poor UX or data issues99- **P2**: Unlikely but possible, handle if time permits100101## Quality Checks102- [ ] Every input field has boundary value analysis103- [ ] Empty/null/error states are covered for all inputs104- [ ] Concurrent scenarios are addressed for shared resources105- [ ] At least 5 edge cases per category (input, state, concurrency, temporal, permission)106- [ ] Each edge case has defined expected behavior107- [ ] P0 cases are flagged for immediate implementation108109## Evolution Notes110<!-- Observations appended after each use -->