Сценарии
Представление сценариев, удобное для ручного тестирования – тест-план в виде текстового документа, в котором каждый тестовый пример представляет один раздел. Для каждого тестового примера в этот документ записывается следующая информация:
· идентификатор;
· описание теста и его цель;
· ссылки на тестируемую часть системы;
· ссылки на используемую проектную документацию, в частности тест-требования;
· перечисление действий сценария;
· ожидаемая реакция системы на каждый пункт сценария.
Подразумевается, что действия сценария должны быть описаны таким образом, чтобы их мог воспроизвести человек с практически любым уровнем подготовки. Описание ожидаемой реакции системы должно также быть записано таким образом, чтобы можно было однозначно судить о том – соответствует реакция ожидаемой или нет.
Так, неудачной ожидаемой реакцией при ручном тестировании была бы запись
Сообщение «Загрузка» пропадает через приемлемое время
Степень приемлемости здесь будет зависеть от терпеливости тестировщика, и обеспечить повторяемость тестирования будет затруднительно. Более удачной формой описания той же самой ожидаемой реакции будет
Сообщение «Загрузка» исчезает с экрана не более, чем через 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)
При такой форме представления сценарий каждого тестового примера состоит из последовательности вызовов функций (в данном случае функция всего одна), которые передают данные в среду тестирования.