Шрифт:
2. Открыть левый внешний карман рюкзака.
3. Засунуть руку в левый внешний карман рюкзака.
Ожидаемый результат: Огурец.
Так вот, таких вещей (имеется в виду шаг 1 тест-кейса 2) нужно
избегать, так как:
• тест-кейс 1 может быть удален из-за ненадобности или
• шаги по тестированию наличия стакана (в тест-кейсе 1)
могут быть изменены (например, стакан лежит в другом
рюкзаке, который находится на кухне).
В обоих случаях будет непонятно, как исполнить тест-кейс 2, так
как
• у нас или нет шагов 1 и 2 из тест-кейса 1, или
• они стали неправильными (с субъективной точки зрения
тест-кейса 2).
Другим распространенным случаем является допущение, что ПО
или база данных уже приведены к нужному состоянию, так как
были исполнены предыдущие тест-кейсы.
Пример
В тест-кейсе X мы создаем транзакцию покупки книги. В тест-кейсе Y
мы, допуская, что тест-кейс X был успешно исполнен, проверяем
атрибут успешности транзакции покупки книги, не создавая саму транз-
акцию ("Зачем напрягаться, когда она уже создана?"). В итоге мо-
жет произойти ситуация, когда транзакция покупки книги не создана,
так как
• тест-кейс X был удален;
• тест-кейс X был модифицирован так, что он создает транзакцию
другого типа;
• тест-кейс X не создал транзакции по объективной причине (на-
пример, не работал соответствующий код).
52
Тестирование Дот Ком. Часть 1
Как результат, во всех трех случаях мы не можем исполнить тест-
кейс Y, так как данных, на которые он опирается, просто не суще-
ствует.
Таким образом, хороший тест-кейс характеризуют:
• отсутствие ссылок на другие тест-кейсы;
• независимость от "следов", оставленных другими тест-
кейсами в нашем ПО или базе данных.
Следовательно, если у нас в документе А есть 10 тест-кейсов:
тест-кейс 1, тест-кейс 2, ..., тест-кейс 10, то доказательством неза-
висимости каждого из тест-кейсов будет тот факт, что их без
ущерба для тестирования можно всегда исполнять в любом
порядке, например, тест-кейс 10, затем тест-кейс 2, затем тест-
кейс 6 и т.д. Принцип, думаю, понятен.
Согласен, что повторение шагов или подготовительной части тест-
кейса кажется порой тупым занятием, но все-таки преимущества
независимого тест-кейса перекрывают напряг операции скопиро-
вал—вставил.
2. НЕЧЕТКАЯ ФОРМУЛИРОВКА ШАГОВ
Пример
"Пойди туда, не знаю куда".
На шаги тест-кейса можно смотреть, как на инструкцию "Как
пройти" (или "Как проехать").
Пример
Если американцу, который в Москве первый раз, сказать (с видом
москвича в пятом колене), что Красная площадь находится "за ГУМом",
то он бессмысленно потратит много времени в поисках "загума" в путе-
водителе. Если же черкнуть ему е-мейльчик с инструкцией:
1. Выйди из "Националя".
2. На улице поверни направо.
3. Не поднимая глаз, пройди мимо первой стайки барышень.
4. Не поднимая глаз, пройди мимо второй стайки барышень.
5. Спустись налево в подземный переход.