|
Лабораторная работа 5. Статический анализ кода
Цель: освоение статического анализа кода с использованием утилит CppCheck, Clang-Tidy, SonarCube.
Необходимо выполнить следующий перечень задач:
- Создать issue по статическому анализу кода с текстом лабораторной работы, создать запрос на слияние.
- Получить изменения с удаленного репозитория (git pull) и переключиться на новую ветку (git checkout ...).
- Изучить документацию по утилите CppCheck (см. доп.литературу).
- Добавить в конфигурацию CI/CD задачу запуска CppCheck (пример). Проверить получение отчета о статическом тестировании в запросе на слиянии.
- Изучить документацию по утилите Clang-Tidy (см. доп.литературу).
- Добавить скрипт для запуска Clang-Tidy (пример) в репозиторий и в конфигурации CI/CD задачу запуска Clang-Tidy (пример).
- Выполнить авторизацию в sqube.cs.petrsu.ru через Gitlab.
- В профиле пользователя на Gitlab выполнить создание Access токена с доступом в api и read_user.
- В SonarQube добавить интеграцию с Gitlab используя созданный ранее токен.
- В SonarQube добавить проект из Gitlab, выполнить первоначальную настройку и получить токен и скелет конфигурационного файла sonar-project.properties.
- Модифицировать конфигурационный файл sonar-project.properties в соответствии с примером и добавить в репозиторий.
- Добавить токен (SONAR_TOKEN) и адрес SonarQube (SONAR_HOST_URL) в настройки проекта.
- Добавить в конфигурацию CI/CD задачу экспорта результата стат.анализа в SonarQube (пример).
- Добавить в конфигурацию CI/CD задачу экспорта отчета о покрытии кода тестами (пример).
- Проверить:
- Сборочная линия имеет правильную последовательность запуска задач (пример).
- В запросе на слияние есть раздел с Code Quality (пример).
- В запросе на слияние есть покрытие кода тестами (пример).
- Слить с основной веткой через веб интерфейс.
- Проверить:
- Сборочная линия имеет правильную последовательность запуска задач (пример).
- В gitlab pages есть отчет о покрытии кода тестами (Deploy - Pages).
- В SonarQube есть отчет о результатах статического анализа.
- Сделать финальное оформление:
- Создать issue по доработке проекта;
- создать запрос на слияние;
- добавить тесты для увеличения покрытия кода тестами (за исключением функции main());
- добавить ссылки на SonarQube и Gitlab Pages в README.md в виде бейджей.
- Сдать лабораторную работу преподавателю и ответить на вопросы.
Дополнительная литература
|