Шрифт:
Так вот если перевести манипуляции с автопоилкой на компью-
терный язык, то
• жетон был вводом,
• пиво — выводом,
• щель для жетона и носик для пива — интерфейсом поль-
зователя, а
• механизм автопоилки, обменивающий жетон на пиво, —
черным ящиком, так как мы не знали (и для сохранения
аппетита не хотели знать), как был устроен изнутри тот
столь необходимый для студента аппарат.
В отношении ПО черный ящик, т.е. область незнания, — это не
что иное, как тестируемые части бэк-энда (например, код про-
граммиста, схема базы данных), составляющие невидимый поль-
зователю виртуальный мост, который соединяет
• фактический ввод (шаги) и
• фактический вывод (фактический результат).
Признаки подхода "Черный ящик":
1. Тестировщик не знает, как устроен виртуальный мост.
2. ИДЕИ для тестирования идут от предполагаемых паттер-
нов (pattern — образец) поведения пользователей. Поэтому
подход "Черный ящик" также называют поведенческим.
Разберем первый признак.
1. ТЕСТИРОВЩИК НЕ ЗНАЕТ, КАК УСТРОЕН
ВИРТУАЛЬНЫЙ МОСТ
С одной стороны,
тестировщик имеет преимущество перед программистом, т.е. авто-
ром кода. Давайте будем честны перед собой: мы часто прини-
маем желаемое за действительное. Особенно это касается того,
что мы создали сами, например воображаемого образа любимого
человека. Сколько раз каждый из нас заводил романы с абсолют-
но неправильными, несовместимыми и нередко вредными для нас
144
Тестирование Дот Ком. Часть 2
людьми и утешал себя, что it's o'k — притрется, пригладится и
поймется. Как показывает жизнь, притирки, пригладки и понима-
ния ни к чему хорошему не приводят, как и попытки заставить
программиста произвести функциональное тестирование.
Вот перевод постинга на одном из форумов по тестированию:
"Программист не должен проводить тестирование, и давать
релизу зеленый свет. Нужно, чтобы кто-то независимый (чело-
век/отдел) был ответствен за поиск багов и уполномочен "дос-
тавать " программиста до тех пор, пока баг не будет починен.
Дело в том, что я как программист знаю свой код, и если я сам
провожу тестирование, то обязательно буду делать допущения,
что какие-либо части кода работают по умолчанию и их можно
не проверять. С другой стороны, мои тесты основаны на моем
понимании того, как работает код, и не учитывают реальных и
порой абсолютно нелогичных вещей, которые будут делаться поль-
зователями с моим кодом. С третьей стороны, у меня на тес-
тирование нет времени, и я не понимаю, почему должен проводить
тестирование, если за него платят тестировщикам ".
Реальность — это мир, пропущенный через призму субъективно-
го восприятия. Например, каждый родитель свято верит, что его
ребенок самый умный, талантливый и перспективный. Код — это
дитя программиста, и в своей реальности программист нередко
воспринимает код как априорно непогрешимый.
Вот вам легенда про призму восприятия:
Когда на пути в Индию корабли Колумба остановились перед од-
ним из Карибских островов, индейцы... этих кораблей не увидели,
потому что их призмы восприятия не пропускали образы, абсо-
лютно чуждые тем предметам и явлениям, с которыми они и их
предки существовали бок о бок на протяжении тысячелетий. И