exponenta event banner

Сбор показателей тестирования на основе требований с использованием непрерывной интеграции

Обзор

Показатели тестирования на основе требований позволяют оценить статус и качество операций тестирования на основе требований (RBT). Результаты можно визуализировать с помощью панели мониторинга тестирования модели. Набор этих показателей может быть включен в рабочие процессы непрерывной интеграции (CI). Непрерывный сбор этих показателей позволяет контролировать ход выполнения и качество проекта. В этом примере GitLab используется для размещения источника проекта, а Дженкинс - для сборки и тестирования проекта, а также архивирования результатов.

Требования

  • Использование проекта MATLAB

  • Использование тестового жгута Simulink Test Manager

Настройка проекта в системе управления версиями

Настройка GitLab

Создайте проект GitLab для управления исходным кодом проекта. Дополнительные сведения см. в разделе https://docs.gitlab.com/ee/README.html.

  1. Установите клиент Git.

  2. Настройка рабочего процесса ветвления. С помощью GitLab из основной ветви создайте временную ветвь для реализации изменений в файлах модели. Инженеры по интеграции могут использовать результаты теста Дженкинса, чтобы решить, следует ли объединять временную ветвь в главную ветвь. Дополнительные сведения см. в разделе https://git-scm.com/book/en/Git-Branching-Branching-Workflows.

  3. В разделе Параметры > Репозиторий защитите главную ветвь, принудительно используя запросы на слияние, когда разработчики хотят объединить свои изменения в главную ветвь.

  4. В разделе Настройки на странице Интеграции добавьте Webhook к URL-адресу проекта Дженкинса. Этот webhook запускает задание сборки на сервере Дженкинса.

Добавить проект

В этом примере используется проект CrureDashingExample. Чтобы создать рабочую копию этого файла, введите в командной строке dashboardCCProjectStart.

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

Фильтрация производных артефактов

При сборе метрик создаются файлы, которые обычно не требуется возвращать в систему управления версиями. Git позволяет игнорировать файлы, добавляя фильтры в текстовый файл с именем .gitignore, расположенный в корневом каталоге. Можно добавить образец файла, присоединенного к этому примеру, который будет фильтровать файлы, созданные этим примером, которые не нужно добавлять в систему управления версиями. Дополнительная информация о gitignore https://git-scm.com/docs/gitignore.

Настройка проекта в инструменте непрерывной интеграции

Инструмент непрерывной интеграции автоматизирует построение и тестирование проекта. Для автоматического создания результатов тестирования на основе требований можно использовать множество различных инструментов путем выполнения одних и тех же общих шагов. В этом примере используйте Jenkins в качестве средства автоматизации. Для запуска примера необходимо установить плагины GitLab и MATLAB для Дженкинса.

Создание проекта

Инструменту CI потребуется интеграция с репозиторием системы управления версиями проекта. Эта интеграция позволяет инструменту CI прослушивать изменения и получать доступ к создаваемому проекту. Дженкинс предоставляет проект Freestyle, который служит родовым шаблоном для проектов, которые могут работать с любым управлением версиями (SCM). В проекте Freestyle добавьте информацию системы управления версиями, чтобы разрешить SCM доступ к размещенному проекту.

  1. Нажмите «Создать элемент», введите имя и выберите проект freestyle

  2. В проекте Дженкинса нажмите кнопку Настроить.

  3. На вкладке «Общие» укажите имя проекта.

  4. На вкладке Управление исходным кодом в поле URL репозитория укажите URL репозитория GitLab.

  5. На вкладке Триггеры построения (Build Triggers) выберите команду Построить (Build), когда изменение будет перенесено в GitLab.

  6. Настройте среду построения для использования установленной версии MATLAB, необходимой для проекта.

Строительство и испытания

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

Щелкните Добавить шаг построения (Add build step) и выберите команду Выполнить команду MATLAB (Run MATLAB Command) Введите команду

openProject(pwd);collectModelTestingResults();runTests();collectModelTestingResults();

Архивирование и потребление метрических результатов

Результаты метрик можно архивировать на этапе построения, а затем повторно импортировать в MATLAB при необходимости их просмотра. В этом примере сценарий сбора результатов сохраняет метрические данные в derived каталог. Поскольку некоторые метрики основаны на экспортированных результатах Simulink Test, следует также архивировать экспортированные .mldatx файлы.

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

  • Все файлы, расположенные в <project-root>/derived справочник

  • Все результаты теста, экспортированные в <project-root>/testresults/.mldatx файлы.

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

Щелкните Добавить действие после построения и выберите Архивировать артефакты. Введите путь derived/**,testresults/*.mldatx для архивирования всех файлов, сохраненных в этой папке.

Наконец, нажмите кнопку Save, чтобы сохранить и закрыть конфигурацию.

Выполнение задания построения в Дженкинсе

Теперь Дженкинс настроен на выполнение нового задания сборки каждый раз, когда новые изменения проекта передаются в репозиторий GitLab. Можно также запустить сборку вручную, нажав кнопку «» Построить сейчас «» на странице проекта Дженкинса.

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

Дженкинс будет хранить все файлы, созданные и заархивированные для каждой успешной сборки, и они могут быть просмотрены по отдельности или загружены вместе в одном zip-файле. Для просмотра результатов в MATLAB:

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

  2. Получение результатов заархивированной метрики из расположения архива.

  3. Загрузить и скопировать/извлечь derived и все файлы в корневом каталоге проекта.

  4. Загрузите архивированные экспортированные файлы результатов Simulink Test и скопируйте/извлеките эти файлы.

  5. Откройте проект в MATLAB и откройте панель мониторинга тестирования модели. На панели инструментов отображаются результаты построения CI.

Альтернативная интеграция CI с использованием командной строки

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

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

matlab -c %LICENSE_PATH% -nosplash -logfile output.log -batch "openProject(pwd);collectModelTestingResults();runTests();collectModelTestingResults(); exit;"