Опубликован: 28.11.2007 | Уровень: специалист | Доступ: платный | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»
Лекция 5:

Повторяемость тестирования

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

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

Тестовые примеры из предыдущего раздела можно разбить на две группы:

Тестирование старта системы: тестовый пример 1
Тестирование перезагрузки системы: тестовые примеры 2-3

Разбиение тестовых примеров на группы удобно и с точки зрения установки начального состояния тестового окружения для выполнения тестов - так, перед выполнением группы тестов можно инициализировать значения переменных или состояние системы, необходимое для выполнения всей группы. Например, если система работает в двух режимах - нормальном и сервисном, то перед выполнением группы тестов для нормального режима работы системы устанавливать нормальный режим, а перед выполнением тестов для сервисного режима - сервисный. Такие установки называются настройками группы тестов по умолчанию ( group defaults, test group defaults ).

Перед выполнением каждого тестового примера может потребоваться установка одних и тех же переменных в одни и те же значения. Для того, чтобы не дублировать эти установки в описании каждого тестового примера, в тест-плане можно определить настройки по умолчанию для каждого теста ( test case defaults ), например, следующим образом:

Первоначальные установки тестового окружения
   Установить значение флага Флаг_Система_Стартовала = FALSE
Настройки по умолчанию для группы:
   Установить сервисный режим работы системы 
Настройки по умолчанию для тестового примера:
   Обнулить значения выходных переменных тестового окружения, 
   в котором сохраняются настройки системы
Группа 1: Тестирование старта системы (режим FACTORY_SETTINGS)
Тестовый пример 1
   1.  Включить систему в режиме FACTORY_SETTINGS
   2.  Установить значение флага Флаг_Система_Стартовала = TRUE 
   3.  Проверить, что настройки имеют значения по умолчанию (в реальном 
       тест-плане здесь должны быть проверки конкретных значений переменных)
Группа 2: Тестирование перезагрузки системы (режим COLD_START)
Тестовый пример 2
   1.  Проверить, что флаг Флаг_Система_Стартовала = TRUE, иначе 
       прервать тестирование с выдачей диагностического сообщения
   2.  Перезагрузить систему (вызвать ее старт в режиме COLD_START)
   3.  Проверить, что настройки имеют значения по умолчанию 
     (в реальном тест-плане здесь должны быть проверки 
      конкретных значений переменных).
Тестовый пример 3
   1.  Проверить, что флаг Флаг_Система_Стартовала = TRUE, иначе 
       прервать тестирование с выдачей диагностического сообщения
   2.  Изменить значения настроек системы 
     (в реальном тест-плане здесь должны быть проверки 
      конкретных значений переменных).
   3.  Перезагрузить систему (вызвать ее старт в режиме COLD_START)
   4.  Проверить, что настройки имеют последние введенные значения 
     (в реальном тест-плане здесь должны быть проверки 
      конкретных значений переменных).

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

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

Пример предусмотренной тестовой зависимости был рассмотрен в предыдущем разделе - корректность выполнения тестов определялась порядком их выполнения. Такая тестовая зависимость требует документирования и сопровождения, как и сами описания тестовых примеров. Существует два вида документирования тестовых зависимостей:

  • явное определение допустимого порядка выполнения тестовых примеров;
  • определение допустимого порядка выполнения тестовых примеров при помощи предусловий.

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

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

Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

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

Александр Медов
Александр Медов

Здравствуйте, какова полная сумма предоставленной услуги с печатью документа и отправкой по почте?

Евгений Летенков
Евгений Летенков
Россия, Москва, РУДН, 2005
Алексей Корзинин
Алексей Корзинин
Россия