Тестировщик заходит в бар: урок о граничных случаях
Тестировщик заходит в бар. Заказывает пиво. Заказывает 0 пива. Заказывает 999999 пива. Заказывает ящерицу. Заказывает -1 пиво. Заказывает жааоаоаолв. Заходит первый реальный посетитель, спрашивает где туалет. Бар сгорел.
Подписывайтесь на наш канал: https://t.me/ANEKDOTtop1000
Приходите к нам вконтакте: https://vk.com/club233469315
Тестировщик заходит в бар. Заказывает пиво. Это классический сценарий, который иллюстрирует, как программное обеспечение может реагировать на самые обычные, казалось бы, запросы. Но что происходит, когда входные данные становятся… не совсем обычными?
Представьте, что тот же тестировщик, не меняя своего подхода к исследованию границ возможного, заказывает 0 пива. Бармен, привыкший к стандартным заказам, может растеряться. Должен ли он выдать нулевую порцию? Или проигнорировать заказ? А может, предложить что-то взамен? Это заставляет задуматься о том, как система (в данном случае, бармен и его запас пива) обрабатывает нулевые значения.
Далее, в ход идет нечто более экстравагантное: 999999 пива. Это уже не просто много, это экстремально много. Бармен, скорее всего, не сможет выполнить такой заказ. Но именно такие запросы помогают выявить пределы возможностей системы – например, максимальное количество, которое может быть учтено в чеке, или лимиты запасов. А затем, для полного комплекта, тестировщик заказывает ящерицу. Это уже выход за рамки ожидаемого. Бармен, скорее всего, не имеет в своем меню рептилий. Этот случай проверяет, насколько хорошо система справляется с совершенно нерелевантными или непредсказуемыми запросами.
Идем дальше, на территорию отрицательных чисел. Тестировщик заказывает -1 пиво. Это абсурд с точки зрения реального мира, но в программировании такие «отрицательные» значения могут привести к неожиданным ошибкам, если их не обрабатывать должным образом. Например, система может попытаться «вычесть» пиво из инвентаря, что приведет к некорректному отображению остатков.
Наконец, кульминация абсурда: заказ «жааоаоаолв». Это набор случайных символов, который не имеет никакого смысла. Как система должна отреагировать на такой «мусорный» ввод? Должна ли она выдать ошибку, попытаться угадать, что имел в виду пользователь (что здесь совершенно невозможно), или просто проигнорировать? Это тест на устойчивость к «плохим» данным, к тем, что не соответствуют никаким ожидаемым форматам.
После всех этих экспериментов, когда бармен, вероятно, уже находится на грани нервного срыва, заходит первый реальный посетитель. Он, как ни в чем не бывало, просто спрашивает, где туалет. Но к этому моменту, в результате всей этой серии непредсказуемых и граничных запросов, бар уже сгорел. Не буквально, конечно, а метафорически – система оказалась настолько перегружена или сбита с толку некорректными данными, что перестала функционировать должным образом. Этот анекдот прекрасно демонстрирует важность тщательного тестирования, которое должно охватывать не только «счастливые пути» (когда все идет по плану), но и все возможные негативные, граничные и совершенно неожиданные сценарии, чтобы предотвратить катастрофические сбои в реальной работе.
Подписывайтесь на наш канал: https://t.me/ANEKDOTtop1000
Приходите к нам вконтакте: https://vk.com/club233469315