Verifying what happens when things fail.
WHY IT IS NEGLECTED
Success paths are specified; failure paths frequently are not.
WHAT TO TEST
Every input validation Every external dependency failing Every resource being unavailable Every permission being denied Every timeout
WHAT TO VERIFY ABOUT EACH
The failure is detected It is handled deliberately The user is told something useful The system remains in a valid state It is recorded for diagnosis
WHY VALID STATE MATTERS MOST
A partially completed operation can leave data inconsistent.
WHAT TO TEST SPECIFICALLY
Failure partway through a multi-step operation.
WHAT TO CHECK AFTERWARDS
Whether the data is consistent.
WHAT TO NEVER ACCEPT
A generic error with no information Failure that appears as success Silent failure
WHY SILENT FAILURE IS WORST
Nobody knows anything is wrong until consequences accumulate.
HOW TO FORCE FAILURES
Disconnect dependencies Return errors deliberately Exhaust resources Introduce delays
WHAT TOOLS HELP
Fault injection, and proxies that can fail requests.
WHAT TO ALSO TEST
Recovery after the failure ends.