Тест-кейсы, управляемые данными



Основной плюс нового тест-кейса с картой заключается в том, что

нам не нужно вносить изменения в шаги, чтобы протестиро­вать по тому же сценарию другие карты. Единственное, что нам нужно, — это модифицировать исходные данные.

Таким образом, если кроме VISA нам нужно протестировать по тому же сценарию еще две карты, то мы

• делаем сору один раз;

paste два раза;

• в каждом из новых тест-кейсов переписываем только пять подчеркнутых значений, проживающих в шапке тест-кейса и секции ожидаемого результата (меняем и ID тест-кейса — ТС ID, который, как мы помним, должен быть всегда уникальным):

VISA

9999-5148-2222-1277

12/07

778

10


44


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


Такой вид тест-кейса называется data-driven (буквально "управ­ляемый данными"), т.е. когда данные и инструкции по их при­менению не смешаны, а разделены и слинкованы.

Поддерживаемость тест-кейса

Новый тест-кейс с картой хорош. Все при нем — и data-driven, и удобочитаемый формат, и полезные атрибуты. Проблема в том, что веб-сайт, а особенно его часть, именующаяся интерфейсом пользователя {User Interface или просто UI— "ю-ай"), очень час­то меняется.

Пример

Кнопка "Войти" из шага 4 легко может быть переименована во "Вход". Следовательно, если у нас есть 3 тест-кейса, то нужно внести 3 измене­ния. А что, если у нас 500 тест-кейсов, где упоминается кнопка "Войти", и эти тест-кейсы разбросаны по разным документам, как мои одно­классники по свету? Вносить 500 изменений? Скажете: "Ерунда, можно догадаться". Но таких маленьких изменений будут десятки!!! И посте­пенно ваши тест-кейсы будут либо хиреть без поддержки, либо потреб­лять на поддержку уйму времени.

Пример

А что, если не имя кнопки, а сам путь, по которому вы добираетесь до фактического результата, претерпел изменения? Например, шаги 7 и 9 станет разделять не линк "Корзина", а еще несколько дополнительных линков и кнопок, появившихся в новой версии www.testshop.rs.

В общем проблема понятна. И имя ее — maintainability (поддер­живаемость), т.е. насколько легко и просто можно изменить тест-кейс при изменениях в ПО.Не думать о поддерживаемо-сти тест-кейсов — значит не думать о завтрашнем дне, что, не­смотря на полезность для духовной жизни, все-таки плохо для бизнеса.

Если мы разобьем шаги нашего нового тест-кейса с картой на ло­гические модули, получим:

1. Вход в систему (логин — log in).

2. Поиск товара.

3. Добавление товара в корзину.

4. Оплата.

5. Фиксация номера заказа.

6. Запрос базы данных.


Искусство создания тест-кейсов                                                                 45

Почему бы нам не выбросить из тест-кейса детали по следующим позициям?

Вход в систему

Вобщем-то можно догадаться, куда ввести имя пользователя, куда пароль и на какую кнопку нажать, тем более что в данном случае мы не тестируем процесс логина, это было или будет сде­лано при исполнении соответствующего тест-кейса, сейчас мы просто грубо и бесцеремонно используем логин, легкомысленно надеясь, подобно покупателю российского автопрома, что все будет чики-пики.

Поиск товара

Все из предыдущего пункта применимо и здесь. Кроме того, до­пустим, что book117 была удалена из нашей базы данных подлы­ми завистниками и подхалимами. Что же нам — в отчаянии рвать на себе волосы и кричать, что мы заблокированы? Нет, мы просто превентируем такую ситуацию тем, что не будем давать имени конкретного товара. Что найдется, то найдется (так как то, что найдется, в данном случае значения не имеет).

Добавление товара в корзину

Концепция из "1. Вход в систему" применима и здесь.

Оплата

Концепция из "1. Вход в систему" применима и здесь.

О'к, с оплатой я, пожалуй, немного переборщил — не факт, что будет абсолютно очевидно, как провести ее, и шаги все же потре­буются.

Здесь появляется другая загвоздка: если мы производим оплату в сотнях тест-кейсов, т.е. сотни раз включаем в тест-кейс те же семь шагов (8—14 включительно), то при изменении даже в од­ном из этих шагов нам придется переписывать эти сотни тест-кейсов...

Не проще ли вынести шаги, повторяющиеся от тест-кейса к тест-кейсу, во внешний документ и вместо них включить в тест-кейс лишь один шаг-ссылку «Произведи оплату КАРТОЙ из секции "SETUP and ADDITIONAL INFO"»? Поступив


46


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


таким образом, мы сэкономим громадное количество часов рабо­чего времени, так как при необходимости менять шаги нужно будет только в одном месте!

Кстати, "оплата картой" — это линк к страничке в локальной сети с со­ответствующей инструкцией, называемой, например, "Как произвести оплату кредитной картой".

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

контактной информацией работников департамента,

пинками к файлам с тест-комплектами,

другой полезной информацией

расположится и внутреннее Пособие для тестировщиков (QA Knowl­edge Base), где кроме прочего будут задокументированы повторяю­щиеся сценарии.

Теперь обобщим уже известные нам мероприятия по улучшению поддерживаемости тест-кейса:

1. Сделать тест-кейс data-driven.

2. Не описывать шаги по явно очевидным сценариям (напри­мер, логин).

3. Не давать конкретных деталей, если они не играют роли при исполнении тест-кейса (например, имя товара).

4. Вынести во внешний документ повторяющиеся сценарии (например, семь шагов оплаты).

Ну, за поддерживаемость!

 

ТС ID/Priority

CCPG0001

1

IDEA:Оплата может быть произведена картой VISA SETUP and ADDITIONAL INFO:

Эккаунт: testuser1/paSSwOrd Данные карты:

Номер: 9999-5148-2222-1277

Окончание действия: 12/07

CVV2: 778 SQL1: select result from cc transaction where id = <номер заказа>;

Revision History

Created on:11/17/2003 by О.Тарасов

Новый тест-кейс

Modified on:11/26/2003 by И. Новикова

Шаги были упрощены, чтобы сделать тест-кейс более удобным для поддержки

       

искусство создания тест-кейсов


47


 

 

Execution part

PROCEDURE EXPECTED RESULT
1.Открой www.main.testshop.rs > "10"
2. Войди в систему. 3. Найди любой товар.  
4. Добавь товар в корзину.  
5. Произведи оплату картой из секции SETUP and ADDITIONAL INFO  
6. Запиши номер заказа  
7. Запроси базу данных с SQL1  
и запиши результат

 

 

Идем дальше.


Дата добавления: 2018-05-02; просмотров: 2101; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!