Жизненный цикл теста, выполняемого с использованием Trade Federation, состоит из четырех отдельных этапов, разработанных на основе формально определенных интерфейсов.
Определенные интерфейсы
- Поставщик сборки : предоставляет сборку для тестирования, при необходимости загружая соответствующие файлы.
- Целевой подготовительный модуль : подготавливает тестовую среду, возможно, включая установку программного обеспечения и настройку устройства.
- Тест : выполняет тест(ы) и собирает результаты теста. Это может быть любой тест JUnit, хотя наш интерфейс IRemoteTest специально разработан для хорошей работы в среде Trade Federation.
- Прослушиватель вызовов тестов (отчеты о результатах) : прослушивает результаты тестов, обычно с целью пересылки результатов теста в репозиторий или отображения их программе выполнения тестов.
Фундаментальным объектом тестирования в TF является конфигурация (config). Конфигурация — это XML-файл, в котором объявляются компоненты жизненного цикла теста.
Такое разделение жизненного цикла теста предназначено для возможности повторного использования. Используя этот дизайн, разработчик может создать тест один раз, а затем интегратор может создать различные конфигурации для запуска этого теста в разных средах. Например, они могут создать конфигурацию, которая будет запускать тест на локальном компьютере и выводить результат на стандартный вывод. Затем они могли бы создать вторую конфигурацию, которая будет выполнять тот же тест, но использовать другой прослушиватель тестового вызова для хранения результатов теста в базе данных. Третья конфигурация может быть разработана для непрерывного запуска этого теста из какой-нибудь испытательной лаборатории.
Здесь удобно отметить, что конфигурация вместе с ее аргументами командной строки (предоставленными средством выполнения тестов) называется командой . Когда TF объединяет команду с ITestDevice
и выполняет ее, последующий объект известен как вызов . Короче говоря, вызов включает в себя полное выполнение теста TF на протяжении всего его жизненного цикла.
Дополнительные компоненты конфигурации
- Восстановление устройства : механизм восстановления связи с устройством в случае потери.
- Logger : собирает передаваемые данные регистрации.
Вывод этапа и ошибки
Каждый этап вызова выполняется последовательно и имеет определенную цель. В этом разделе описаны обычные выходные данные и ошибки каждого этапа.
Поставщик сборки
На этом этапе создается и выводится объект IBuildInfo
, содержащий все необходимые ссылки на файлы для настройки и запуска тестов.
Самая распространенная ошибка на этом этапе — невозможность скачать или найти запрошенные файлы.
Ошибка на этом этапе приводит к прямому сообщению об ошибке без запуска тестов.
Подготовка мишени
На этом этапе устанавливаются необходимые состояния тестируемой цели. На этом этапе можно изменить настройку устройства или хоста по мере необходимости для данного тестового вызова.
Распространенные ошибки на этом этапе обычно связаны с неспособностью привести устройство в заданное состояние (например, неудавшаяся перепрошивка) и неспособностью найти необходимые файлы для настройки.
Ошибка на этом этапе приводит к запуску целевой очистки, сообщению об ошибке и отсутствию запуска тестов.
Тесты
На этом этапе запрошенные тесты выполняются на заранее подготовленной цели и выдаются отчеты обо всех результатах выполнения тестов.
Распространенные ошибки на этом этапе обычно связаны с недоступностью тестируемой цели или с какой-либо ошибкой, вызывающей частичное выполнение тестов. Эти ошибки представляют собой проблемы инфраструктуры, которые влияют на само выполнение теста, а не на сбой одного тестового примера.
Ошибка на этом этапе приводит к остановке выполнения теста, запуску целевой очистки, сообщению об ошибке и получению частичных результатов.
Отчетность о результатах
На этом этапе результаты и ошибки сообщаются настроенным службам (например, серверам и локальным файлам).
Хотя отдельные репортеры результатов могут иметь ошибки, они изолированы друг от друга (один репортёр не видит ошибок другого). Эти ошибки влияют только на отчеты о результатах отдельного репортера, и ошибки можно просмотреть в журналах.