486.46K

SonarQube for AEX Soft

1.

SonarQube

2.

Цель
Получить инструмент контроля качества разрабатываемого кода. Снизить
количество явных багов, уязвимостей и code smell. А также не допустить попадание
подобного кода в продакшн среду.

3.

Что такое
S onarQube?
SonarQube – это система с открытым исходным кодом, которая сканирует ваш
исходный код в поисках потенциальных ошибок, уязвимостей и проблем с
поддержкой, а затем представляет результаты в отчете, который позволит вам
выявить потенциальные проблемы в приложении.
Заголовок
Система состоит из двух компонентов: анализатор, который локально собирает
проект и проводит анализ и сервер, который собирает результаты анализа, хранит
статистику, историю и позволяет настраивать параметры и правила проведения
анализа.

4.

Схема реал изации
Каждый запрос за слияние (pull request, merge request) с основной веткой разработки обязательно должен
быть проверен через SonarQube.
Запуск анализа основной ветки разработки в выбранный временной период для исключения возможных
отклонений/ошибок при анализе каждого запроса на слияние.
Что анализируем:
• количество code smell
• количество явных багов
• количество уязвимостей
Если любой из показателей больше выставленного в Qaulity Gate, то запрос на слияние блокируется до
момента устранения всех замечаний анализатора.

5.

Пример настройки Qaulity Gate

6.

Также нужно настроить профил и анал иза в разделе “Quality Profiles” исх одя из наших требований к языку программирования.

7.

Пример успешно выполненного анализа pull request:

8.

Пример анал иза с ошибками в pull request:

9.

Страница Maintainability содержит информацию о техническом долге в проекте:

10.

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

11.

И затем непосредственно к коду, который требует внимания:

12.

На странице Coverage представлена информация о покрытии кода тестами:

13.

Страница Duplications содержит информацию о дублировании кода в проекте:

14.

С помощью этой метрики вы легко можете обнаружить повторяющиеся строки, блоки кода и даже целые файлы:

15.

Интеграция с системами контроля версий позволяет также автоматически назначать баги в SonarQube на тех разработчиков,
которые их допустили. Также вы можете назначать баги на разработчиков вручную, изменять их тип (bug, vulnerability или code
smell), важность, теги, добавлять комментарии. Для большего удобства использования доступна функция массового изменения
багов:

16.

Пример встраивания SonarQube в Pipeline:

17.

Итог
Б л агодаря внедрению автомат ического анал иза кода через SonarQube мы можем снизить
кол ичест во ошибок и багов, а код нашего проекта станет более чисты м. Б локировка запрос а на
сл ияние не дает возможности разработчику сл ить заведомо неисправны й ф ункционал в основную
ветку разработки. Тем самы м мы снизим затрат ы на код ревь ю и упростим работ у QA отделу.
Б л агодаря дл ител ь ному испол ь зованию SonarQube команда разработ ки приучается писать код в
едином стиле, что дел ает напис анны й код понятней всей команде и снижение ТТМ(Time to market) на
30-50% исходя из практики кампаний испол ь зующих сонар дл ител ь ное время
English     Русский Правила