Разделы портала

Онлайн-тренинги

.
Баги водятся на границах
14.12.2010 21:41

Автор текста: Баранцев Алексей

На тренингах меня часто спрашивают, почему при построении тестов, когда делается разбиение на классы эквивалентности и анализ границ, нужно не только взять какое-нибудь значение по одну сторону границы и значение по другую сторону, но и попасть на границу или как можно ближе к границе. Казалось бы, граничные значения должны относиться либо к одной стороне, либо к другой. Вы тоже так думаете? А вот и нет! Граница -- это совершенно особое место, иногда на ней не действуют законы ни левых, ни правых. И не только на самой границе, но и в непосредственной близости от неё.

Один из примеров, который я привожу для демонстрации "приграничного хаоса" опубликован у нас в Панбагоне: Почему графическому редактору Paint не хватает памяти, чтобы уменьшить размер рисунка? Если размер задать слишком большой, Paint сразу отвергает такие данные, они "за границей возможностей". Но если данные недостаточно велики, чтобы Paint их с ходу отверг, они всё же могут оказаться настолько большими, что Paint справляется с увеличением рисунка, но после этого больше ничего сделать не может. Это эффект попадания в область "приграничного хаоса" -- данные не признаются плохими, хотя по факту таковыми являются.

Ещё один пример такого рода, который я тоже люблю использовать для демонстрации этого явления, я нашёл в блоге I.M. Testy (автор Bj Rollison): Should we use boundary values in our combinatorial tests? Если в том же Paint при указании размеров полей страниц подобраться слишком близко к границе, отделяющей допустимые данные, приложение падает, хотя по обе стороны границы, но достаточно далеко от неё оно ведёт себя вполне адекватно и предсказуемо.

У меня есть и другие примеры подобного рода, демонстрирующие эффект "приграничного хаоса", а может быть и вы встречались с чем-то подобным. Поэтому я призываю вас не забывать о том, что самые трудноуловимые, но и самые красивые баги часто водятся на границах, и если вы проявите должную настойчивость и сумеете попасть в эту область, где законы порядка не действуют, ваши усилия будут вознаграждены сторицей.

А чтобы вы всегда помнили об этом, мы приготовили для вас плакат, который вы сможете повесить над своим компьютером, или на доске, или на другом видном месте (скачать для печати в pdf формате).

Это наш новогодний подарок вам, и не забывайте, что Новый Год -- это тоже переход границы, не попадите в зону хаоса :)

 

Обсудить в форуме