Апрель, 4

Знаменатель

(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Лабораторная работа 5. Статический анализ кода

Цель: освоение статического анализа кода с использованием утилит CppCheck, Clang-Tidy, SonarCube.

Необходимо выполнить следующий перечень задач:
  1. Создать issue по статическому анализу кода с текстом лабораторной работы, создать запрос на слияние.
  2. Получить изменения с удаленного репозитория (git pull) и переключиться на новую ветку (git checkout ...).
  3. Изучить документацию по утилите CppCheck (см. доп.литературу).
  4. Добавить в конфигурацию CI/CD задачу запуска CppCheck (пример). Проверить получение отчета о статическом тестировании в запросе на слиянии.
  5. Изучить документацию по утилите Clang-Tidy (см. доп.литературу).
  6. Добавить скрипт для запуска Clang-Tidy (пример) в репозиторий и в конфигурации CI/CD задачу запуска Clang-Tidy (пример).
  7. Выполнить авторизацию в sqube.cs.petrsu.ru через Gitlab.
  8. В профиле пользователя на Gitlab выполнить создание Access токена с доступом в api и read_user.
  9. В SonarQube добавить интеграцию с Gitlab используя созданный ранее токен.
  10. В SonarQube добавить проект из Gitlab, выполнить первоначальную настройку и получить токен и скелет конфигурационного файла sonar-project.properties.
  11. Модифицировать конфигурационный файл sonar-project.properties в соответствии с примером и добавить в репозиторий.
  12. Добавить токен (SONAR_TOKEN) и адрес SonarQube (SONAR_HOST_URL) в настройки проекта.
  13. Добавить в конфигурацию CI/CD задачу экспорта результата стат.анализа в SonarQube (пример).
  14. Добавить в конфигурацию CI/CD задачу экспорта отчета о покрытии кода тестами (пример).
  15. Проверить:
    • Сборочная линия имеет правильную последовательность запуска задач (пример).
    • В запросе на слияние есть раздел с Code Quality (пример).
    • В запросе на слияние есть покрытие кода тестами (пример).
  16. Слить с основной веткой через веб интерфейс.
  17. Проверить:
    • Сборочная линия имеет правильную последовательность запуска задач (пример).
    • В gitlab pages есть отчет о покрытии кода тестами (Deploy - Pages).
    • В SonarQube есть отчет о результатах статического анализа.
  18. Сделать финальное оформление:
    1. Создать issue по доработке проекта;
    2. создать запрос на слияние;
    3. добавить тесты для увеличения покрытия кода тестами (за исключением функции main());
    4. добавить ссылки на SonarQube и Gitlab Pages в README.md в виде бейджей.
  19. Сдать лабораторную работу преподавателю и ответить на вопросы.

Дополнительная литература