Сценарии

Представление сценариев, удобное для ручного тестирования – тест-план в виде текстового документа, в котором каждый тестовый пример представляет один раздел. Для каждого тестового примера в этот документ записывается следующая информация:

· идентификатор;

· описание теста и его цель;

· ссылки на тестируемую часть системы;

· ссылки на используемую проектную документацию, в частности тест-требования;

· перечисление действий сценария;

· ожидаемая реакция системы на каждый пункт сценария.

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

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

 

Сообщение «Загрузка» пропадает через приемлемое время

 

Степень приемлемости здесь будет зависеть от терпеливости тестировщика, и обеспечить повторяемость тестирования будет затруднительно. Более удачной формой описания той же самой ожидаемой реакции будет

 

Сообщение «Загрузка» исчезает с экрана не более, чем через 10 секунд после появления.

 

Ниже приведен пример описания тестового примера в виде сценария, предназначенного для ручного тестирования:

 

Группа тестов: Работа с учетными записями

Тестовый пример: 1289-15

Назначение: Проверка того, что учетная запись пользователя проверяется перед началом передачи данных и в случае ввода записи по умолчанию при максимальной защите системы передачи не происходит

Тест-требования: 8.5.8.1, 8.5.8.2

Предусловия для теста: Система должна быть приведена в состояние «Максимальная защита» и сброшена в настройки по умолчанию

Критерий прохождения теста: Все ожидаемые значения совпадают с реальными

Сценарий тестирования:

Шаг сценария Ожидаемый результат
Запустить терминальный клиент и соединиться с системой по адресу 127.0.0.1 Должно появиться приглашение терминала TRANSFER>
Запустить процесс передачи данных при помощи ввода команды SEND DATA Должно появиться приглашение DATA TRANSFER INITIATED и следующими двумя строками Enter your credentials… Login:
Ввести имя учетной записи default Должна появиться строка Password:
Ввести пароль default Должно появиться сообщение Default user blocked – system set to High security и соединение с терминалом должно быть прервано

 

Как можно видеть, такая форма представления действительно неудобна для автоматизации тестирования и предназначена исключительно для ручного тестирования. Иногда такие тест-планы совмещают с отчетами о проведении тестирования, добавляя в таблицу описания сценария третью и четвертые колонки – «Реальный результат» и «Соответствует», в который заносятся реальная реакция системы и указание на совпадение/несовпадение результатов соответственно. В конце описания каждого тестового примера добавляется графа «Пройден/не пройден», в которую заносится информация о том, пройден ли тестовый пример в целом. В конце всего тест-плана совмещенного с отчетом помещается графа «Тестовых примеров пройдено/всего», в которую заносится число пройденных тестовых примеров и общее их число.

Сценарии тестирования для автоматического тестирования часто описывают на том или ином языке программирования. Например, методы в тестирующих классах Microsoft Visual Studio Team Edition представляют собой именно пошаговые описания действий, которые необходимо выполнить тестовому окружению для проведения тестирования. Возможна и более близкая к естественному языку форма подготовки тестовых примеров. Например, при тестировании логической функции с уровнем покрытия MC/DC и описании тестовых примеров на одном из диалектов Visual Basic Script возможно записать сценарий тест-плана в такой форме:

 

'----------------------------------------------------------------

' TEST CASES

'----------------------------------------------------------------

' 8 testcases

' 1 2 3 4 5 6 7 8

' -----------------------------------------------

' computed - - 0 0 0 - - -

' good1 0 1 0 0 0 0 0 0

' computed2 - - - - 0 - - -

' good2 1 1 1 0 0 1 1 1

' delay - - - - - 0 - -

' pack1 1 1 1 1 1 1 0 0

' pack2 0 0 0 0 0 0 0 1

' -----------------------------------------------

' output_message 1 0 0 1 0 0 0 1

 

 

'-------------------------------------------------------------------

' Testcase #1:

Call Test_Message_Call (-, 0, -, 1, -, 1, 0, 1)

'-------------------------------------------------------------------

' Testcase #2:

Call Test_Message_Call (-, 1, -, 1, -, 1, 0, 0)

'-------------------------------------------------------------------

' Testcase #2:

Call Test_Message_Call (0, 0, -, 1, -, 1, 0, 0)

'-------------------------------------------------------------------' Testcase #4:

Call Test_Message_Call (0, 0, -, 0, -, 1, 0, 1)

'-------------------------------------------------------------------' Testcase #5:

Call Test_Message_Call (0, 0, 0, 0, -, 1, 0, 0)

'-------------------------------------------------------------------' Testcase #6:

Call Test_Message_Call (-, 0, -, 1, 0, 1, 0, 0)

'-------------------------------------------------------------------' Testcase #7:

Call Test_Message_Call (-, 0, -, 1, -, 0, 0, 0)

'-------------------------------------------------------------------' Testcase #8:

Call Test_Message_Call (-, 0, -, 1, -, 0, 1, 1)

 

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