Практическая работа. Тема: Использование инструментария анализа качества




Практическая работа

Тема: Использование инструментария анализа качества

Целью работы является изучение инструментов анализа качества ПО.

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

Для выполнения работы изучите методические рекомендации ниже.

Структура отчета

Тема:

МДК:

Дата:

Цель:

Выполнил: ФИО

Группа: 33

Специальность: 09.02.07 Информационные системы и программирование

Преподаватель: Шамина З.П.

Ход работы:

Описание всех элементов практической работы со скриншотами.

Вывод:

Оценка:

 

Методические рекомендации

В основе модели качества SonarQube лежит реализация методологии SQALE (Software Quality Assessment based on Lifecycle Expectations) с определенными дополнениями. Как известно, методология SQALE фокусируется в основном на сложности поддержки кода (maintainability) и не учитывает риски проекта. Например, если сегодня в проекте обнаружилась критическая проблема безопасности, строгое следование методологии SQALE обязывает вас устранить все уже существующие проблемы с надежностью (reliability), возможностью изменений (changeability), тестируемостью (testability) и т. д., и только затем вернуться к новой критической проблеме. На самом деле, если потенциальные проблемы существуют в коде давно и не проявляют себя в виде пользовательских баг-репортов, гораздо важнее сфокусироваться на исправлении новых багов.

С учетом этого, разработчики SonarQube модифицировали модель качества, основанную на SQALE, чтобы акцентировать внимание на следующих важных моментах:

· Модель качества должна быть максимально простой в использовании.

· Баги и уязвимости не должны теряться среди проблем поддерживаемости (maintainability).

· Наличие серьезных багов и уязвимостей в проекте должно приводить к тому, что требования Quality Gate не выполнены.

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

· Вычисление стоимости устранения проблем (использование модели анализа SQALE) важно и должно выполняться.

Стандартный Quality Gate SonarQube использует следующие значения метрик для определения того, что код успешно прошел проверки:

· 0 новых багов.

· 0 новых уязвимостей.

· Коэффициент технического долга на новом коде <= 5%.

· Покрытие нового кода не ниже 80%.

Команда Sonar определила семь смертных грехов разработчи- ков, увеличивающих технический долг:

· Баги и потенциальные багги.

· Нарушение стандартов кодирования.

· Дублирование кода.

· Недостаточное покрытие модульными тестами.

· Плохое распределение сложности.

· Спагетти-дизайн.

· Недостаточно или слишком много комментариев.

Платформа SonarQube предназначена для того, чтобы помогать бороться с этими семью грехами.

Рассмотрим более подробно основные возможности SonarQube.

· Главная страница

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

 

 

Содержимое главной страницы можно настроить под ваши це- ли с помощью большого набора встроенных виджетов, позволяю- щих визуализировать состояние кода проектов в SonarQube.

Метрики проекта

Для получения более детальной информации о состоянии проекта перейдем на страницу метрик проекта:

 

 

Здесь представлена информация о следующих метриках кода: Reliability (Надежность), Security (Безопасность), Maintainability (Поддерживаемость), Coverage (Покрытие тестами), Duplications (Дублирование), Size (Размер кодовой базы), Complexity (Циклома- тическая сложность), Documentation (Документирование кода) и Issues (Ошибки).

Перейдя к метрике Reliability, мы получаем информацию об общем количестве обнаруженных багов и новые баги, обнаружен- ные во время последнего анализа, рейтинг надежности кода по шкале от A до E, где E – наихудший рейтинг, свидетельствующий о том, что был найден по крайней мере один blocker баг, а также время, необходимое на устранение всех найденных ошибок:

 

Платформа SonarQube позволяет анализировать метрики кода сверху вниз, от уровня проекта в целом до отдельных модулей и файлов. Так, например, если вы кликните на рейтинг надежности (Reliability Rating), вы увидите список файлов проекта, отсортированных по возрастанию рейтинга надежности. Это позволит сфокусироваться на наиболее проблемных участках кода:

 

 

Затем вы можете перейти к файлу с исходным кодом и к конкретным участкам кода, в которых обнаружены ошибки:

 
 

 

Такая навигация сверху вниз доступна и для других метрик.

На странице метрики Security доступна информация об общем количестве уязвимостей, новых уязвимостях, рейтинге безопасно- сти (также по шкале от A до E), и времени, которое потребуется на устранение уязвимостей:

 
 

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

 

 

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

 

 

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

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

 

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

 

 

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

 

 

Страница Size содержит информацию о размере проекта: количество строк кода, выражений, функций, классов, файлов и директорий:

 

На странице Complexity представлена информация о суммарной цикломатической сложности проекта, а также о средней сложности функций и файлов:

 

 

Страница Documentation предоставляет информацию о комментариях в коде: отношение строк с комментариями к общему количеству строк в проекте, количество строк с комментариями, количество публичных API и уровень документирования публичных API:

 

Последняя вкладка в разделе метрик проекта – Issues – содержит общее количество найденных проблем в коде (сумма количества багов, уязвимостей и code smells), а также распределение проблем по состоянию: открытые, переоткрытые, подтвержденные, ложные срабатывания и won't fix:

 

· Навигация по ошибкам и коду

После анализа метрик кода посмотрим, как SonarQube позволяет работать с найденными проблемами в коде. Для этого перейдем в раздел Issues:

 

Здесь представлены все найденные проблемы в коде с широкими возможностями фильтрации, что позволяет сфокусироваться на наиболее важных проблемах. Следует отметить, что SonarQube позволяет сохранять настройки фильтров, чтобы повторно их ис- пользовать.

По двойному клику на сообщении об ошибке вы можете перейти к коду, в котором была найдена проблема. Также доступно детальное описание ошибки и рекомендации, как ее исправить:

Обратите также внимание, что, благодаря интеграции с системами контроля версий, видно, кто и когда внес изменения в код, вызвавшие срабатывание анализатора:

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

 

· Rules, Quality Profiles и Quality Gates

Диагностические правила (Rules), профили качества (Quality Profiles) и границы качества (Quality Gates) – ключевые понятния платформы SonarQube. Каждый плагин для SonarQube, осуществляющий статический анализ кода, содержит репозиторий с описанием диагностических правил, которые этот плагин выполняет. На- рушения этих правил используются для определения технического долга в коде и вычисления времени на устранение проблем. Для удобства использования правила объединяются в профили качества (Quality Profiles). По умолчанию, SonarQube создает дефолтный профиль качества для каждого поддерживаемого языка, но вы можете создавать свои профили качества с тем набором диагностических правил, которые вам могут быть полезны. Например, для анализа критически важных проектов, требования к качеству кода которых самые строгие, можно определить профиль качества, содержащий все доступные диагностики, а для менее критичных проектов можно определить менее строгий профиль качества, содержащий только серьезные ошибки, что позволит не отвлекаться на незначительные code smells.

Quality Gate – это индикатор соответствия (или несоответствия) кода проекта заданным пороговым значениям метрик. По умолчанию, все проекты, добавленные в SonarQube, используют стандартный quality gate, в котором определены следующие метрики и их пороговые значения:

· Новые баги = 0

· Новые уязвимости = 0

· Коэффициент технического долга на новом коде <= 5%

· Покрытие нового кода >= 80%

 

Контрольные вопросы

1. Какие действия необходимо выполнить, чтобы определить метрики качества кода?

2. Каким образом определяется покрытие кода?



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-07-17 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: