Про типы границ я впервые услышала на тренинге Алексея Баранцева. Зачем они нужны? Да просто чтобы не забыть всё проверить. Написал чек-лист, потом проверяешь себя:
— Все учел? Вот эти классы эквивалентности, какие границы логические? А какие технологические? ...
Так можно вспомнить о проверке, про которую забыл или просто не подумал! Полезная штука.
Алексей дал нам тогда про такую типизацию границ:
Физическая — которую физически нельзя преодолеть.
Логическая — ограничение, накладываемое логикой, не программой.
Технологическая — ограничение, накладываемое используемой технологией.
Произвольная — ограничение, наложенное аналитиком или заказчиком.
Лично я предпочитаю совмещать физическую и логическую. Потому что физическая — это то, что мы вообще преодолеть не можем. Например, при всем желании мы не введем строку отрицательной длины, ну никак не сможем.
Но то, что физически сделать нельзя, часто в программе сделать можно. Например, ввести в количество участников митапа «1,5 человека» — физически невозможно, но программа то позволяет. Значит, для программы это уже логическая, мы же понимаем, что это невозможно.
Так что в моей классификации есть всего три типа границ (сокращенно ЛТП):
Логическая — ограничение, накладываемое логикой, не программой.
Технологическая — ограничение, накладываемое используемой технологией.
Произвольная — ограничение, накладываемое аналитиком или разработчиком.
Рассмотрим каждую из них!




