Жизненный цикл тестирования в TF

Жизненный цикл выполнения теста с помощью Trade Federation состоит из четырех отдельных этапов, разработанных на основе формально определенных интерфейсов.

Определенные интерфейсы

  • Поставщик сборок. Предоставляет сборку для тестирования, при необходимости скачивая нужные файлы.
  • Подготовитель цели готовит тестовую среду, в том числе устанавливает программное обеспечение и настраивает устройство.
  • Тестирование. Выполняет тесты и собирает результаты. Это может быть любой тест JUnit, хотя наш интерфейс IRemoteTest специально разработан для работы в среде Trade Federation.
  • Прослушиватель вызова теста (отчеты о результатах). Ожидает результаты теста, обычно для того, чтобы переслать их в хранилище или показать исполнителю тестов.

Основной объект тестирования в TF – это конфигурация (config). Конфигурация – это XML-файл, в котором объявляются компоненты жизненного цикла теста.

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

Здесь удобно отметить, что конфигурация вместе с аргументами командной строки (предоставляемыми Test Runner) называется командой. Когда TF связывает команду с объектом ITestDevice и выполняет ее, полученный объект называется вызовом. Иными словами, вызов включает в себя полное выполнение теста TF на протяжении всего его жизненного цикла.

Дополнительные компоненты конфигурации

Выходные данные и ошибки этапа

Каждый этап вызова выполняется последовательно и имеет определенную цель. В этом разделе описаны обычные выходные данные и ошибки на каждом этапе.

Поставщик

На этом этапе создается и выводится объект IBuildInfo , который содержит все ссылки на файлы, необходимые для настройки и запуска тестов.

На этом этапе чаще всего возникает ошибка, связанная с тем, что не удается скачать или найти нужные файлы.

Если на этом этапе возникает ошибка, она сразу же сообщается, и тестирование не проводится.

Подготовка цели

На этом этапе задаются необходимые состояния для тестируемого объекта. На этом этапе можно изменить настройки устройства или хоста, необходимые для выполнения теста.

Распространенные ошибки на этом этапе обычно связаны с невозможностью настроить устройство в заданном состоянии (например, сбой прошивки) и невозможностью найти необходимые файлы для настройки.

Если на этом этапе произойдет ошибка, будет выполнена очистка целевого устройства, появится сообщение об ошибке и тестирование не будет запущено.

Тесты

На этом этапе выполняются запрошенные тесты на подготовленном ранее целевом устройстве и сообщаются все результаты тестирования.

На этом этапе часто возникают ошибки, связанные с недоступностью целевого объекта или частичным выполнением тестов. Эти ошибки связаны с инфраструктурой и влияют на выполнение теста в целом, а не на отдельные тестовые сценарии.

Ошибка на этом этапе приводит к остановке выполнения теста, очистке целевого объекта, сообщению об ошибке и получению частичных результатов.

Отчеты о результатах

На этом этапе результаты и ошибки передаются в настроенные сервисы (например, на серверы и в локальные файлы).

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