Вопросы и задания для самопроверки



1. У вас есть 5 функциональностей, и отведенного времени не хва­тит, чтобы тщательно протестировать их все. На основании чего вы расставите приоритеты в тестировании? Подсказка: помните о счастье пользователя.

2. Петров нашел 50 багов до релиза, но пропустил 5 багов, кото­рые были найдены пользователем. Сидоров нашел 12 багов до релиза, не пропустив ни одного. Кому дать премию?

3. Как должен поступить менеджер, чтобы решить вопрос с про­блемой оплаты?

4. Придумайте аналогию, демонстрирующую разницу между ОА и тестированием.


ИСКУССТВО СОЗДАНИЯ ТЕСТ-КЕЙСОВ

•ЧТО ТАКОЕ ТЕСТ-КЕЙС

• СТРУКТУРА ТЕСТ- КЕЙСА

• ИСХОД ИСПОЛНЕНИЯ ТЕСТ-КЕЙСА •           ПОЛЕЗНЫЕ АТРИБУТЫ ТЕСТ-КЕЙСА

• ТЕСТ-КЕЙСЫ, УПРАВЛЯЕМЫЕ ДАННЫМИ • ПОДДЕРЖИВАЕМОСТЬ ТЕСТ-КЕЙСА

• СКОЛЬКО ОЖИДАЕМЫХ РЕЗУЛЬТАТОВ МОЖЕТ БЫТЬ
В ОДНОМ ТЕСТ-КЕЙСЕ?

• ПРОБЛЕМНЫЕ ТЕСТ-КЕЙСЫ

• ТЕСТ-КОМПЛЕКТЫ

• СОСТОЯНИЯ ТЕСТ-КЕЙСА

• А НАПОСЛЕДОК Я СКАЖУ

М

ы исполняем тестирование, т.е. непосредственно "рвем на куски" ПО, руководствуясь нашей профессиональной до­кументацией — тест-кейсами(test case). Поговорим о формаль­ной стороне эффективного тест-кейса и коснемся объединений тест-кейсов — тест-комплектов(test suite).

Что такое тест-кейс

Допустим, что перед сборами на рыбалку мы составили следую­щий список:

1. Удочка.

2. Коробка с запасными поплавками и леской.

3. Банка с червями.

 

35



 


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

4. Стакан граненый.

5. Бутылка "Абсолюта".

6. Огурец соленый.

Затем при деятельном участии жен, детей и котов мы наконец собрались в дорогу и перед выходом взяли список и проверили рюкзак на наличие каждого из 6 предметов.

Так вот.

Каждая из 6 строк списка — это и есть тест-кейс(test case).

Сам список является тест-комплектом(test suite).

Процесс придумывания и написания каждой строки списка называется созданием тест-кейса (test case generation).

Процесс проверки рюкзака на наличие определенного пред­мета — исполнением тест-кейса (test case execution).

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

Главная и неотъемлемая часть тест-кейса — это ожидаемый результат,например "огурец соленый", т.е. тест-кейс может полностью состоять только из ожидаемого результата.

Структура тест-кейса

Проблема в том, что для нахождения бага (что является смыслом любого тестирования) кроме ожидаемого нам нужен и фактиче­ский результат. В случае с огурцом мы просто заглядываем в рюкзак и смотрим, на месте ли этот "фрукт". В случае же тести­рования ПО, как правило, необходима инструкция, как прийтик фактическому результату.

Пример

Допустим, тестировщику А. Боброву, который только что начал рабо­тать в нашем стартапе www.testshop.rs, дали для исполнения следую­щий тест-кейс:

"Оплата может быть произведена картой VISA". Сразу же возникает по крайней мере две проблемы:


38


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


• для исполнения тест-кейса нужна тестировочная карта VISA, которой у него нет;

• он не знает, как проверить, был ли действительно осуще­ствлен платеж, даже если бы у него была карта.

Единственное, что более или менее понятно, — это процесс по­купки в интернет-магазине (найти товар, добавить в корзину и т.д.), что в данной ситуации помогает немного. Естественно, что никакого тестирования не будет, так как пробиться к фактиче­скому результату так же трудно, как доказать инспектору ГАИ, что брать взятки аморально.

Пример

Допустим, тестировщику А. Боброву, который только что начал рабо­тать в нашем стартапе www.testshop.rs, дали для исполнения следую­щий тест-кейс: Шаги:

1. Открой www.main.testshop.rs

2. Введи в поле "Имя пользователя": "testuser1"

3. Введи в поле "Пароль": "pa$$wOrd"

4. Нажми кнопку "Войти"

5. Введи в поле "Поиск": "book117"

6. Нажми кнопку "Найти"

7. Кликни линк "Добавить в корзину"

8. Кликни линк "Корзина"

9. Кликни линк "Оплатить"

 

10. Выбери из меню "Вид карты": "VISA"

11. Введи в поле "Номер карты": "9999-5148-2222-1277"

12. Введи в поле "Действительна до": "12/07"

13. Введи в поле "CW2": "778"

14. Нажми кнопку "Завершить заказ"

15. Запиши номер заказа__________

16. Запроси базу данных:

select result from cc_transaction where id = <номер заказа >;

Ожидаемый результат: "10"

Очевидно, что тест-кейс из последнего примера вполне может быть исполнен любым, кто знает, как напечатать "pa$$wOrd".

В последнем примере (который мы назовем тест-кейс с картой) к ожидаемому результату (ОР)добавились шаги(steps), которые должны привести нас к фактическому результату (ФР),необ­ходимому, чтобы узнать, есть баг или нет. Совокупность шагов называется процедурой(procedure).

Если провести аналогию, то

шаги— это ступеньки лестницы;


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


39


ожидаемый результат— это некий предмет, который мы должны найти,если поднимемся по этим ступенькам;

фактический результат —это то, чтомы реально нашли

после того, как поднялись по этим ступенькам.

Постановка мозгов

Исходя из основной компьютерной концепции ввод/вывод (на языке оригинала input/output):

шаги — это инструкция по вводу;

исполнение шагов — это ввод;

ожидаемый результат — это ожидаемый вывод;

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

Исполнение тест-кейса завершается сравнением вывода факти­ческого и вывода ожидаемого.

Исход исполнения тест-кейса (test case result)

Каждый тест-кейс, исполнение которого завершено, дает нам од­но из двух:

1. Положительный исход(PASS), если ФР равен ОР,
либо

2. Отрицательный исход(FAIL), если ФР не равен ОР: най­
ден баг!

Иногда возникает ситуация, когда мы заблокированы (test case execution is blocked), так как не можем пройти ВСЕ шаги тест-кейса. Например, мы не можем продвинуться дальше, если кноп­ки "Завершить заказ" из шага 14 не существует на соответствую­щей веб-странице. В таком случае мы рапортуем баг (в данном случае баг об отсутствии кнопки "Завершить заказ") и отклады­ваем исполнение тест-кейса до устранения бага.

Полезные атрибуты тест-кейса

УНИКАЛЬНЫЙID (Unique ID)

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


40


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


качества. Рациональное обоснование: со временем появится не­обходимость вести статистику по тест-кейсам, обновлять, удалять или переносить в другой документ некоторые из них, прикрывать спину и т.д.

ПРИОРИТЕТ ТЕСТ-КЕЙСА (Test Case Priority)

Это важность тест-кейса. Важность отражается по шкале от 1 до п, где 1 — это высший приоритет, а п — это низший приоритет. Думаю, что рационально делать п = 4.

Допустим, тест-кейс, проверяющий, работает ли кнопка "Купить", будет 1-го приоритета, а тест-кейс, проверяющий цвет шрифта линка "Гостевая книга", будет 4-го приоритета. Концептуально, думаю, понятно.

Зачем это делается? Допустим, у нас есть два тест-кейса: один 1-го приоритета и другой — 3-го приоритета, оба тестируют не­кую функциональность А, и есть время для исполнения только одного из них. Естественно, что мы выберем тест-кейс 1-го при­оритета. Приоритезация тест-кейсов особо полезна при регрес­сивном тестировании, о котором мы не раз будем говорить.

Вопрос:Как присваиваются приоритеты?

Ответ:Конечно, все зависит от компании, но, как правило, автор тест-кейса просто решает, насколько жизненно важна, опреде-ляюща и критична вещь, проверяемая данным тест-кейсом.

ИДЕЯ(IDEA)

Это описаниеконкретной вещи, проверяемой тест-кейсом (в даль­нейшем эту конкретную вещь мы также будем называть "идея тест-кейса").

Пример

В тест-кейсе с картой ожидаемым результатом является значение "10" в колонке result строки с нашей транзакцией. Поймет ли, ЧТО мы тес­тируем, человек, который не знает, что программисты www.testshop.rs обозначают первую цифру результата транзакции индексом кредитной карты (где "1" — это VISA, "2" MasterCard, "3" Switch), а вторую — флагом успеха (где "О" — это успех, а "1" — ошибка) и соответственно "10" означает, что транзакция с картой VISA была успешной?

Дело в том, что "непосвященным" может стать даже автор тест-кейса, скажем, через месяц после написания, так как все в мире тленно и забываемо (кроме, конечно, первой школьной любви


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


41


Ани В.)- Поэтому в началетест-кейса следует написать на чело­веческом языке: "Оплата может быть произведена картой VISA", чтобы любой, кто возьмет этот тест-кейс в руки, не ломал голову, а сразу понял, что проверяется этим тест-кейсом.

ПОДГОТОВИТЕЛЬНАЯ ЧАСТЬ(SETUP and ADDITIONAL INFO)

Кулинарный рецепт, как правило, включает две части:

1. Список ингредиентов и количество/вес каждого из них;

2. Инструкция по тому, как жарить, парить и варить несчаст­ных из пункта 1.

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

В подготовительную часть тест-кейса могут включаться:

• данные о существующем эккаунте пользователя (legacy user account) или инструкции по созданию нового эккаунта (new user account);

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

• запросы к базе данных (SQL queries), используемые в тест-кейсе;

• комментарии в помощь тестировщику, например о ню­ансах, которые могут встретиться при исполнении тест-кейса;

• другие вещи, облегчающие исполнениеи поддержкутест-кейса (о поддержке мы еще поговорим).

ИСТОРИЯ РЕДАКТИРОВАНИЯ(Revision History) Очень полезная вещь.

Пример

Допустим, у Макса Крылова живет попугай-жако Вася. Макс учит его хорошим фразам:

"Вася хороший";

"Amicus Plato, sed magis arnica Veritas" ("Платон мне друг, но истина дороже");

"Beatles forever" («ВИА "Битлз" будет вечно жить в наших сердцах»).


42


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


Приходит друг Лежа и, пока Макс на правах радушного хозяина несется к ларькам станции метро "Юго-Западная" и обратно, учит альтерна­тивной мудрости честно впитывающего знания Васю:

"Все козлы";

"Simia quantum similis turpissima bestia nobis!" ("Как похожа на нас мерзейшая тварь — обезьяна!");

"Move bitch, get out the way" ("Уйди с дороги, противная").

В итоге после возвращения домой Макса встречает не добрый, милый попугайчик, а негативно настроенная машина, и вечером ему (Максу) придется доказывать своей жене, что это не он, а подлец Леха изменил лексикон бедолаги Василия.

Для того чтобы иметь сведения о рождении и истории развития каждого тест-кейса, мы ведем лаконичный журнал изменений, где отражаем: Кто? Что? Зачем? Когда? Почему?

Атрибуты истории редактирования:

Created on <date> by <name> — Тест-кейс создан <дата> <кем>;

Modified on <date> by <name> — Тест-кейс изменен <да-та> <кем>;

Change — Что, зачем и почему было изменено. В наших примерах мы не печатаем само слово "change", а просто заполняем значение этого атрибута в поле справа от "Created on..." или "Modified on...".

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

 

ТС ID/Priority

CCPG0001

1

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

Эккаунт: testuser1/paSSwOrd Наименование товара: book117 Данные карты:

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

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

CVV2: 778

SQL1: select result from cc_transaction where id = <номер заказа>;

Revision History

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

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

       

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


43


 

Execution part

PROCEDURE EXPECTED RESULT
1. Открой www.main.testshop.rs > "10"
2. Введи имя пользователя.  
3. Введи пароль.  
4. Нажми кнопку "Войти".  
5. Введи наименование товара в поле  
поиска.  
6. Нажми кнопку "Найти".  
7. Кликни линк "Добавить в корзину".  
8. Кликни линк "Корзина".  
9. Кликни линк "Оплатить".  
10. Выбери вид карты.  
11. Введи номер карты.  
12. Введи срок окончания действия.  
13. Введи CVV2.  
14. Нажми кнопку "Завершить заказ".  
15. Запиши номер заказа  
16. Запроси базу данных с SQL1  
и запиши результат  

Идем дальше.


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

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






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