• смешанное/полуавтоматизированное тестирование (semi

automated testing).

8. По степени подготовки к тестированию:

• тестирование по документации (formal/documented testing);

• эд хок-тестирование (ad hoc testing).

Объясняем:

1. По знанию внутренностей системы

• черноящичное тестирование (black box testing);

• белоящичное тестирование (white box testing);

• сероящичное тестирование (grey box testing).

Кстати, в отношении четких дефиниций, водоразделов и прочих

академических штучек до сих пор идут споры.

ЧЕРНЫЙ ЯЩИК (black box)

Должен признаться, что лучшие мгновения моего студенчества

прошли не в аудиториях моей альма-матер, не в залах библиотек,

а в пивной Коптевского рынка, куда мы с Балмашновым, Гнезди-

ловым, Дебдой, Ермохиным, Илюхиным, Карповым, Назаровым,

Классификация видов тестирования

143

Осмоловским, Сапачевым и Тарасовым вламывались с тубусами

наперевес и за вечер выполняли недельный план по продажам.

Основным элементом Коптевской пивной того времени была так

называемая автопоилка, т.е. аппарат, принимающий жетон и вы-

дающий пол-литра того, что мы тогда считали пивом.

Так вот если перевести манипуляции с автопоилкой на компью-

терный язык, то

• жетон был вводом,

• пиво — выводом,

• щель для жетона и носик для пива — интерфейсом поль-

зователя, а

• механизм автопоилки, обменивающий жетон на пиво, —

черным ящиком, так как мы не знали (и для сохранения

аппетита не хотели знать), как был устроен изнутри тот

столь необходимый для студента аппарат.

В отношении ПО черный ящик, т.е. область незнания, — это не

что иное, как тестируемые части бэк-энда (например, код про-

граммиста, схема базы данных), составляющие невидимый поль-

зователю виртуальный мост, который соединяет

фактический ввод (шаги) и

фактический вывод (фактический результат).

Признаки подхода "Черный ящик":

1. Тестировщик не знает, как устроен виртуальный мост.

2. ИДЕИ для тестирования идут от предполагаемых паттер-

нов (pattern — образец) поведения пользователей. Поэтому

подход "Черный ящик" также называют поведенческим.

Разберем первый признак.

1. ТЕСТИРОВЩИК НЕ ЗНАЕТ, КАК УСТРОЕН

ВИРТУАЛЬНЫЙ МОСТ

С одной стороны,

тестировщик имеет преимущество перед программистом, т.е. авто-

ром кода. Давайте будем честны перед собой: мы часто прини-

маем желаемое за действительное. Особенно это касается того,

что мы создали сами, например воображаемого образа любимого

человека. Сколько раз каждый из нас заводил романы с абсолют-

но неправильными, несовместимыми и нередко вредными для нас

144

Тестирование Дот Ком. Часть 2

людьми и утешал себя, что it's o'k — притрется, пригладится и

поймется. Как показывает жизнь, притирки, пригладки и понима-

ния ни к чему хорошему не приводят, как и попытки заставить

программиста произвести функциональное тестирование.

Вот перевод постинга на одном из форумов по тестированию:

"Программист не должен проводить тестирование, и давать

релизу зеленый свет. Нужно, чтобы кто-то независимый (чело-

век/отдел) был ответствен за поиск багов и уполномочен "дос-

тавать " программиста до тех пор, пока баг не будет починен.

Дело в том, что я как программист знаю свой код, и если я сам

провожу тестирование, то обязательно буду делать допущения,

что какие-либо части кода работают по умолчанию и их можно

не проверять. С другой стороны, мои тесты основаны на моем

понимании того, как работает код, и не учитывают реальных и

порой абсолютно нелогичных вещей, которые будут делаться поль-

зователями с моим кодом. С третьей стороны, у меня на тес-

Перейти на страницу:

Похожие книги