Методика тестирования ядра

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

Архитектура инфраструктуры, используемой для автоматического тестирования ядра

Инфраструктура реализует поддержку автоматического тестирования версий ядра, обеспечивая решение следующих задач:

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

Инфраструктура состоит из следующих подсистем:

  • подсистема сборки образов ядра,
  • подсистема сборки сред сборки ядра,
  • подсистема сборки сред сборки тестов,
  • подсистема сборки сред выполнения тестов,
  • подсистема хранения результатов,
  • подсистема хранения бинарных артефактов,
  • подсистема тестирования ядра,
  • подсистема управления задачами верификации.

Подсистема сборки образов ядра

Подсистема обеспечивает автоматическую сборку заданной версии ядра в заданной конфигурации.

Подсистема через свой интерфейс получает задания на сборку заданной версии ядра в заданной конфигурации из подсистемы управления задачами верификации. Для полученного задания подсистема определяет необходимую для сборки ядра конфигурацию среды и загружает ее из подсистемы хранения бинарных артефактов. Из подсистемы хранения исходных кодов подсистема загружает исходный код собираемой версии ядра.

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

Подсистема сборки сред сборки ядра

Подсистема обеспечивает автоматическую сборку бинарных артефактов, необходимых для формирования сред сборки ядра.

Подсистема через свой интерфейс получает из подсистемы управления задачами верификации задания на сборку среды сборки ядра, определяет и получает исходные коды, конфигурации и бинарные артефакты, необходимые для выполнения сборки, из подсистемы хранения исходных кодов и подсистемы хранения бинарных артефактов соответственно.

Артефакты выполненной сборки среды для сборки ядра загружаются в подсистему хранения бинарных артефактов. Также подсистема сохраняет данные о выполнении полученных заданий и обеспечивает интерфейс для доступа к ним.

Подсистема сборки сред сборки тестов

Подсистема обеспечивает автоматическую сборку бинарных артефактов, необходимых для формирования сред сборки тестов.

Подсистема через свой интерфейс получает из подсистемы управления задачами верификации задания на сборку среды сборки тестов, определяет и получает исходные коды, конфигурации и бинарные артефакты, необходимые для выполнения сборки, из подсистем хранения исходных кодов и хранения бинарных артефактов соответственно.

Артефакты выполненной сборки среды сборки тестов загружаются в подсистему хранения бинарных артефактов. Также подсистема сохраняет данные о выполнении полученных заданий и обеспечивает интерфейс для доступа к ним.

Подсистема сборки сред выполнения тестов

Подсистема обеспечивает автоматическую сборку бинарных артефактов, необходимых для формирования сред выполнения тестов.

Подсистема через свой интерфейс получает из подсистемы управления задачами верификации задания на сборку среды выполнения тестов, определяет и получает исходные коды, конфигурации и бинарные артефакты, необходимые для выполнения сборки, из подсистем хранения исходных кодов и хранения бинарных артефактов соответственно.

Артефакты выполненной сборки среды выполнения тестов загружаются в подсистему хранения бинарных артефактов. Также подсистема сохраняет данные о выполнении полученных заданий и обеспечивает интерфейс для доступа к ним.

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

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

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

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

На диаграмме выше представлена схема архитектуры подсистемы, которая состоит из следующих компонентов:

  • очередь заданий, реализующая интерфейс получения тестовых заданий;
  • планировщик выполнения тестов, обеспечивающий отправку тестовых заданий из очереди в подсистему выполнения тестов;
  • подсистема выполнения тестов, обеспечивающая выполнение тестов на подключенных конечных устройствах, которые могут быть двух видов:
    • эмулируемые устройства,
    • аппаратные устройства.

Подсистема хранения результатов

Подсистема обеспечивает хранение результатов верификации и предоставление интерфейсов для доступа к ним.

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

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

Подсистема хранения бинарных артефактов

Подсистема обеспечивает хранение бинарных артефактов и предоставление интерфейсов для доступа к ним.

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

Подсистем получает данные из следующих подсистем:

  • подсистема сборки ядра,
  • подсистема сборки сред сборки ядра,
  • подсистема сборки сред сборки тестов,
  • подсистема сборки сред выполнения тестов.

Те же подсистемы в процессе своей работы используют данные подсистемы хранения бинарных артефактов. Также данные подсистемы хранения бинарных артефактов использует подсистема тестирования.

Подсистема управления задачами верификации

Подсистема обеспечивает создание заданий на верификацию и управление их выполнением.

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

Также при необходимости подсистема формирует и отправляет на выполнение задания на сборку сред, необходимых для выполнения автоматической верификации, в подсистему сборки сред сборок ядра, подсистему сборки сред сборок тестов, подсистему сборки сред выполнения тестов.