ЗАВИСИМОСТЬ ТЕСТ-КЕЙСОВ ДРУГ ОТ ДРУГА
Зависимость — это антоним независимости. Независимость тест-кейса выражается в том, что он не связан с другими тест-кейсами.
Пример
Тест-кейс 1: Шаги:
1. Зайти в комнату.
2. Подойти к стулу.
3. Открыть правый внешний карман рюкзака.
4. Засунуть руку в правый внешний карман рюкзака. Ожидаемый результат: Граненый стакан.
Тест-кейс 2: Шаги:
1. Зайти в комнату.
2. Подойти к стулу.
3. Открыть левый внешний карман рюкзака.
4. Засунуть руку в левый внешний карман рюкзака. Ожидаемый результат: Огурец.
Как видно, шаги 1 и 2 сейчас одинаковы и всегда будет искушение улучшить то, что и так хорошо.
Искусство создания тест-кейсов 51
Пример
Тест-кейс 1: Шаги:
1. Зайти в комнату.
2. Подойти к стулу.
3. Открыть правый внешний карман рюкзака.
4. Засунуть руку в правый внешний карман рюкзака. Ожидаемый результат: Граненый стакан.
Тест-кейс 2: Шаги:
1. Смотри шаги 1 и 2из тест-кейса 1.
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. Спустись налево в подземный переход.
6. Следуй указателям на стенах с надписью "Красная площадь",
то он не только найдет Красную площадь и купит там прапорскую ушанку с гнутой кокардой, но и избежит обвинений в сексуальном хар-расменте, которые на его родине вещь очень даже серьезная.
Искусство создания тест-кейсов 53
Кстати,
• шаги 1 — 5 включительно — это точные инструкции, а
• шаг 6 — это отсылка к инструкциям, хранящимся в другом месте (помните, мы говорили о внутреннем Пособии для тестировщи-ков с шагами для повторяющихся сценариев?).
Итак, перечисляющиеся в тест-кейсе шаги должны быть объективно четкими и ясными.
Нужно помнить,
• то, что очевидно для вас сейчас, может стать совершен
но непонятным через пару месяцев.
Так, сокращенные шаги с нерасшифрованными аббревиатурами и прочими веселыми прибамбасами, понятными вам сейчас, могут впоследствии стать китайской грамотой для вас самих, так что проще будет написать тест-кейс заново, чем пробираться через дебри неосмотрительно сделанных описаний;
• тест-кейс, который не может быть исполнен никем,
кроме его автора, должен быть публично сожжен, рас
терт в порошок и развеян по ветру.
|
|
Обоснование простое: что, если автор тест-кейса заболеет, уйдет в отпуск, уйдет из компании или уйдет, извините, вообще? Любой тест-кейс должен создаваться с мыслью о коллеге, который однажды возьмет его в руки.
Нужно избегать и другой крайности — когда шаги тест-кейса настолько детализируются, как будто он пишется для ученой обезьяны. Излишняя детализация ведет к усложнению поддер-живаемости тест-кейса, что было нами убедительно доказано минуту назад.
В общем ищите золотую середину.
3. НЕЧЕТКАЯ ФОРМУЛИРОВКА ИДЕИ ТЕСТ-КЕЙСА И/ИЛИ ОЖИДАЕМОГО РЕЗУЛЬТАТА
Оба тезиса, о которых мы только что говорили:
• о том, что можно забыть то, что сейчас понятно, и
• писать тест-кейсы нужно не для себя, а для того парня —
применимы и к идее и к ожидаемому результату. Нюансы для идеи тест-кейса и ожидаемого результата:
54
Тестирование Дот Ком. Часть 1
Дата добавления: 2018-05-02; просмотров: 1594; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!