Сбор метрик проверки на основе требований с помощью непрерывного интегрирования

Обзор

Основанные на требованиях метрики проверки позволяют вам оценить состояние и качество вашей основанной на требованиях деятельности по проверке (RBT). Можно визуализировать результаты с помощью панели мониторинга тестирования модели. Набор этих метрик может быть включен в рабочие процессы непрерывного интегрирования (CI). Непрерывный набор этих метрик помогает вам контролировать прогресс и качество проекта. Этот пример использует GitLab, чтобы разместить источник проекта, и Jenkins, чтобы создать и протестировать проект, а также архивировать результаты.

Требования

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

  • Использование тестовой обвязки Simulink Test Manager

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

Setup GitLab

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

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

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

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

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

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

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

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

Производная фильтрация программных продуктов

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

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

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

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

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

  1. Нажмите New Item, введите имя и выберите freestyle проект

  2. В проекте Jenkins нажмите Configure.

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

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

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

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

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

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

Нажмите Add build step и выберите Run MATLAB Command. Введите команду

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

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

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

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

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

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

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

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

Наконец, для сохранения и закрытия строения необходимо нажать кнопку «Сохранить».

Выполнение задания сборки в Jenkins

Теперь Jenkins сконфигурирована для выполнения нового задания сборки каждый раз, когда новые изменения в проекте были зафиксированы в репозитории GitLab. Можно также вручную запустить сборку, нажав на Build Now на странице проекта Jenkins.

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

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

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

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

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

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

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

Альтернативное интегрирование СИ с использованием командной строки

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

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

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

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