Показатели и метрики оценки
В разделе приведены основные понятия качества кода и метрики его оценки.
-
Чистота кода — подход к качеству кода, который устраняет ошибки написания кода, возникающие при использовании традиционных подходов.
-
Проект — набор данных о настройке, анализе, тенденциях конкретного репозитория. Проект создает пользователь с правами администратора в SonarQube.
-
Домашняя страница проекта — начальное окно входа в любой проект. Она отображается после создания проекта в SonarQube. На этой странице отображается следующие показатели:
- статус проекта;
- текущее состояние качества кода;
- качество кода, проверенного с начала отчетного периода.
Показатели помогают оценить, готов ли проект к выпуску сегодня и что нужно улучшить для прохождения Quality Gates. -
Портфолио — основной инструмент мониторинга для менеджеров и технических специалистов, следящих за статусом проектов. Возможность дальнейшей работы определяется по параметрам качества проекта: значение Пропущено означает готовность проекта, а значение Ошибка указывает на наличие ошибок и неготовность проекта. Пример портфолио представлен на рисунке ниже.
Увеличить
-
Правила — модули, которые выполняются в исходном коде для поиска проблем. Правила фиксируются в Профиле качества (Quality Profiles). Панель Правила представлена на рисунке ниже.
Увеличить
-
Quality Gates — набор проверок качества, которые помогают понять, готов ли код к выпуску на данный момент. Чтобы оценить готовность кода, определяется набор логических условий на основе пороговых значений, по которым измеряются проекты. Например: нет новых проблем с блокировщиком, покрытие кода новым кодом больше 80%. Возможно использование нескольких наборов, для более точного контроля кода разных проектов. Панель Quality Gates представлена на рисунке ниже.
Увеличить
Параметры оценки кода приведены в таблице ниже.
Параметр | Описание |
---|---|
Сложность (complexity) | Параметр, рассчитанный на основе количества ветвлений кода. Когда поток управления функции разделяется, счетчик сложности увеличивается на единицу. Каждая функция имеет минимальную сложность равную 1. Это вычисление различается в зависимости от языка, поскольку ключевые слова и функции имеют специфичные для языка детали |
Дублированные строки (duplicated_lines) | Количество строк с дублированным кодом |
Замечания (violations) | Общее количество проблем в проекте |
Технический долг (sqale_index) | Время для исправления всех недостатков кода (в минутах) |
Ошибки (bugs) | Общее количество нарушений в кодировании |
Уязвимости (vulnerabilities) | Количество найденных известных уязвимостей безопасности исполнения в коде |
Покрытие кода (branch_coverage) | Плотность возможных условий в структурах управления потоком, которые выполнялись во время выполнения модульных испытаний. Параметр показывает, было ли каждое логическое выражение оценено как истинное и ложное |