Граничные случаи — это необычные или граничные входные данные и условия, где часто скрываются баги — пустые входы, границы, null, большие значения, ошибки. Эффективное тестирование выходит за пределы "счастливого пути" для покрытия этих случаев, поскольку граничные случаи — это распространённый источник реальных дефектов.
Почему это важно
The HAPPY PATH (normal, expected inputs) usually works. BUGS hide in EDGE CASES:
→ unusual inputs, boundaries, error conditions, unexpected states
→ testing only the happy path misses where defects actually occur
→ Thorough testing covers edge cases — that's where it adds the most value.
Распространённые категории граничных случаев
EMPTY / NULL → empty string/list/collection, null/undefined, missing values
BOUNDARIES → min/max values, 0, -1, off-by-one (first/last element, limits)
LARGE / extreme → very large inputs, long strings, huge numbers, overflow
INVALID → wrong types, malformed data, out-of-range, special characters
ERROR conditions → network failures, exceptions, timeouts, unavailable dependencies
STATE → empty/initial state, concurrent access, unexpected sequences of actions
SPECIAL values → negative numbers, zero, duplicates, unicode/emoji, very small/large
