Использование SonarQube в Positive Technologies
Соловьев Алексей
Программист отдела DevOps
asolovyev@ptsecurity.com
linkedin.com/in/aasolovyev
Черепанов Сергей
Программист отдела DevOps
scherepanov@ptsecurity.com
План доклада
• Что такое SonarQube
• Для чего нужны анализаторы кода
• Принцип работы
• Поддерживаемые языки
• Что находит
• Метрики
• Минусы
• Профит
Что такое SonarQube
• Платформа для анализа кода, управления его качеством
• Позволяет непрерывно проводить анализ кода
• Работает с множеством языков, используя плагины
Для чего нужны анализаторы кода
• Анализ текущего состояния кодовой базы
• Уменьшение количества багов/уязвимостей в будущем
• Повышение качества кода
Принцип работы
Поддерживаемые языки
C/C++ ($) ABAP ($) Web
JavaScript VB.NET XML
C# VB6 TypeScript
Java Python Go (SonarQube 6.0 +)
COBOL ($) RPG Multilanguage
PL/SQL Flex
PL/I($) Objective-C
PHP Swift
Korea
2015
Technological
Advantages and
Visionary Approach
Что находит
•Дефекты кода
•Уязвимости
• код
Korea
2015
Technological
Advantages and
Visionary Approach
Что находит
Метрики, снимаемые с кода
Reliability Оценка надёжности проекта, основанная на встречающихся багах
Security Оценка безопасности проекта, основанная на встречающихся уязвимостях
Maintainability Оценка поддерживаемости проекта. Для этого применяется оценка технического долга проекта и
информация о «плохом» коде в проекте
Duplications Предоставляет информацию о повторениях кода, рассматривает повторения строк, блоков кода, а также
файлов, в которых встречаются повторения
Complexity Оценка сложности проекта, основанная на числе путей исполнения кода. Когда путь исполнения в
функции разделяется, сложность увеличивается на единицу
Documentation Оценка количества комментариев в коде
Issues Предоставляет информацию о количестве проблем, их типе и статусе
Quality Gates Итоговая оценка качества проекта. Критерии для прохождения проектом контроля качества можно
настроить отдельно для каждого проекта
Tests Оценка покрытия кода тестами
Метрики
Метрики
Пример страницы проекта
Минусы
• Некорректная работа с LDAP-группами
• Высокая стоимость плагинов
• Отсутствие иерархичности проектов по веткам кода
Профит от использования SonarQube за полгода
• Повысилось качество нового кода
• Найдены старые баги и уязвимости
• Сократилось время, затрачиваемое на ревью кода
• Повысилась культура написания кода
Спасибо!
Вопросы?
Соловьев Алексей
Программист отдела DevOps
asolovyev@ptsecurity.com
www.linkedin.com/in/aasolovyev
Черепанов Сергей
Программист отдела DevOps
scherepanov@ptsecurity.com

Использование анализатора кода SonarQube

  • 1.
    Использование SonarQube вPositive Technologies Соловьев Алексей Программист отдела DevOps asolovyev@ptsecurity.com linkedin.com/in/aasolovyev Черепанов Сергей Программист отдела DevOps scherepanov@ptsecurity.com
  • 2.
    План доклада • Чтотакое SonarQube • Для чего нужны анализаторы кода • Принцип работы • Поддерживаемые языки • Что находит • Метрики • Минусы • Профит
  • 3.
    Что такое SonarQube •Платформа для анализа кода, управления его качеством • Позволяет непрерывно проводить анализ кода • Работает с множеством языков, используя плагины
  • 4.
    Для чего нужныанализаторы кода • Анализ текущего состояния кодовой базы • Уменьшение количества багов/уязвимостей в будущем • Повышение качества кода
  • 5.
  • 6.
    Поддерживаемые языки C/C++ ($)ABAP ($) Web JavaScript VB.NET XML C# VB6 TypeScript Java Python Go (SonarQube 6.0 +) COBOL ($) RPG Multilanguage PL/SQL Flex PL/I($) Objective-C PHP Swift
  • 7.
    Korea 2015 Technological Advantages and Visionary Approach Чтонаходит •Дефекты кода •Уязвимости • код
  • 8.
  • 9.
    Метрики, снимаемые скода Reliability Оценка надёжности проекта, основанная на встречающихся багах Security Оценка безопасности проекта, основанная на встречающихся уязвимостях Maintainability Оценка поддерживаемости проекта. Для этого применяется оценка технического долга проекта и информация о «плохом» коде в проекте Duplications Предоставляет информацию о повторениях кода, рассматривает повторения строк, блоков кода, а также файлов, в которых встречаются повторения Complexity Оценка сложности проекта, основанная на числе путей исполнения кода. Когда путь исполнения в функции разделяется, сложность увеличивается на единицу Documentation Оценка количества комментариев в коде Issues Предоставляет информацию о количестве проблем, их типе и статусе Quality Gates Итоговая оценка качества проекта. Критерии для прохождения проектом контроля качества можно настроить отдельно для каждого проекта Tests Оценка покрытия кода тестами
  • 10.
  • 11.
  • 12.
  • 13.
    Минусы • Некорректная работас LDAP-группами • Высокая стоимость плагинов • Отсутствие иерархичности проектов по веткам кода
  • 14.
    Профит от использованияSonarQube за полгода • Повысилось качество нового кода • Найдены старые баги и уязвимости • Сократилось время, затрачиваемое на ревью кода • Повысилась культура написания кода
  • 15.
    Спасибо! Вопросы? Соловьев Алексей Программист отделаDevOps asolovyev@ptsecurity.com www.linkedin.com/in/aasolovyev Черепанов Сергей Программист отдела DevOps scherepanov@ptsecurity.com