Опубликован: 05.03.2005 | Уровень: специалист | Доступ: платный
Практическая работа 4:

Системное тестирование

Пошаговое описание случая использования

Пошаговое описание приведено на рис. 4.2.

Пример use case

Рис. 4.2. Пример use case

Список альтернативных путей

В пошаговом описании случая использования рассматривался оптимистический сценарий, например при анализе статуса склада в пунктах 3 и 11 считалось, что поступил подшипник. Но необходимо рассмотреть и возможные альтернативные сценарии:

3, 11 - анализ статуса склада:

3.a, 11.a - подшипник в манипуляторе.

3.b, 11.b - склад свободен.

3.c, 11.c - ошибочное состояние.

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

8, 16, 22, 24, 26 - получение сообщения о выполнении команды:

8.a, 16.a, 22.a, 24.a, 26.a - нет склада.

8.b, 16.b, 22.b, 24.b, 26.b - нет сообщения.

8.с, 16.c, 22.c, 24.c, 26.c - команда выполнена с ошибкой.

Список альтернативных вариантов для рассмотренного случая использования можно продолжить.

Спецификация тестового случая №1

Состояние окружения (входные данные):

Статус склада ( StoreStat=32 ). Пришел подшипник.

Статус обмена с терминалом подшипника ( 0 - есть подшипник) и его параметры ( RollerPar="0 NewUser Depot1 123456 1 12 1 1" ).

Статус обмена с терминалом оси ( 1 - нет оси) и ее параметры ( AxlePar="1 NewUser Depot1 123456 1 0 12 12" ).

Статус команды ( CommandStatus=0 ). Команда успешно принята.

Сообщение от склада ( StoreMessage=1 ). Команда успешно выполнена.

Ожидаемая последовательность событий (выходные данные):

Система запрашивает статус склада (вызов функции GetStoreStat ) и получает 32.

Система запрашивает параметры подшипника (вызов функции GetRollerPar ) и получает 0 NewUser Depot1 123456 1 12 1 1.

Система запрашивает параметры оси (вызов функции GetAxlePar ) и получает 1 NewUser Depot1 123456 1 0 12 12.

Система добавляет в очередь команд склада на последнее место команду SendR (получить из приемника в ячейку) (вызов функции SendStoreCom ) и получает сообщение о том, что команда успешно принята - 0.

Система запрашивает склад о результатах выполнения команды (вызов функции GetStoreMessage ) и получает сообщение о том, что команда успешно выполнена - 1.

Система запрашивает статус склада (вызов функции GetStoreStat ) и получает 32.

Система запрашивает параметры подшипника (вызов функции GetRollerPar ) и получает 0 NewUser Depot1 123456 1 12 1 1.

Система запрашивает параметры оси (вызов функции GetAxlePar ) и получает 1 NewUser Depot1 123456 1 0 12 12.

Система добавляет в очередь команд склада на первое место команду GetR (получить из приемника в ячейку) (вызов функции SendStoreCom ) и получает сообщение о том, что команда успешно принята - 0.

Система запрашивает склад о результатах выполнения команды (вызов функции GetStoreMessage ) и получает сообщение о том, что команда успешно выполнена - 1.

Изменяем состояние окружения (входные данные):

Статус обмена с терминалом подшипника ( 1 - нет подшипника) и его параметры ( RollerPar="1 NewUser Depot1 123456 1 12 1 1" ).

Статус обмена с терминалом оси ( 0 - есть ось) и ее параметры ( AxlePar="0 NewUser Depot1 123456 1 0 12 12" ).

Ожидаемая последовательность событий (выходные данные):

Система запрашивает статус склада (вызов функции GetStoreStat ) и получает 32.

Система запрашивает параметры подшипника (вызов функции GetRollerPar ) и получает 1 NewUser Depot1 123456 1 12 1 1.

Система запрашивает параметры оси (вызов функции GetAxlePar ) и получает 0 NewUser Depot1 123456 1 0 12 12.

Система добавляет в очередь команд склада на последнее место команду SendR (вызов функции SendStoreCom ) и получает сообщение о том, что команда успешно принята - 0.

Система запрашивает склад о результатах выполнения команды (вызов функции GetStoreMessage ) и получает сообщение о том, что команда успешно выполнена - 1.

Система добавляет в очередь команд склада на последнее место команду SendR (вызов функции SendStoreCom ) и получает сообщение о том, что команда успешно принята - 0.

Система запрашивает склад о результатах выполнения команды (вызов функции GetStoreMessage ) и получает сообщение о том, что команда успешно выполнена - 1.

Система добавляет в очередь команд склада на последнее место команду Term (вызов функции SendStoreCom ) и получает сообщение о том, что команда успешно принята - 0.

Система запрашивает склад о результатах выполнения команды (вызов функции GetStoreMessage ) и получает сообщение о том, что команда успешно выполнена - 1.

Во всех последующих разделах будет подробно рассматриваться именно этот тестовый случай!

Описание процесса системного тестирования

Рассмотрим процесс системного тестирования:

Анализ. Тестируемая система анализируется (проверяется) на наличие определенных свойств, которым надо уделить особое внимание, и определяются соответствующие тестовые случаи.

Построение. Выбранные на стадии анализа тестовые случаи переводятся на язык программирования.

Выполнение и анализ результатов. Производится выполнение тестовых случаев. Полученные результаты анализируются, чтобы определить, успешно ли прошла система испытания на тестовом наборе.

Процесс запуска тестовых случаев и анализа полученных результатов должен быть подробно описан в тестовых процедурах.

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

  • Ручное тестирование.
  • Автоматизация выполнения и проверки результатов тестирования с помощью скриптов.
  • Автоматическая генерация тестов на основе формального описания.
Федор Антонов
Федор Антонов
Оплата и обучение
Сергей Чурбанов
Сергей Чурбанов
Какие подходы используются для обоснования истинности программ?
Максим Галанцев
Максим Галанцев
Россия
Денис Максимов
Денис Максимов
Россия, г. Нижний Новгород