Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Использование 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

More Related Content

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

  • 1. Использование SonarQube в Positive Technologies Соловьев Алексей Программист отдела DevOps asolovyev@ptsecurity.com linkedin.com/in/aasolovyev Черепанов Сергей Программист отдела DevOps scherepanov@ptsecurity.com
  • 2. План доклада • Что такое SonarQube • Для чего нужны анализаторы кода • Принцип работы • Поддерживаемые языки • Что находит • Метрики • Минусы • Профит
  • 3. Что такое SonarQube • Платформа для анализа кода, управления его качеством • Позволяет непрерывно проводить анализ кода • Работает с множеством языков, используя плагины
  • 4. Для чего нужны анализаторы кода • Анализ текущего состояния кодовой базы • Уменьшение количества багов/уязвимостей в будущем • Повышение качества кода
  • 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 Что находит •Дефекты кода •Уязвимости • код
  • 9. Метрики, снимаемые с кода Reliability Оценка надёжности проекта, основанная на встречающихся багах Security Оценка безопасности проекта, основанная на встречающихся уязвимостях Maintainability Оценка поддерживаемости проекта. Для этого применяется оценка технического долга проекта и информация о «плохом» коде в проекте Duplications Предоставляет информацию о повторениях кода, рассматривает повторения строк, блоков кода, а также файлов, в которых встречаются повторения Complexity Оценка сложности проекта, основанная на числе путей исполнения кода. Когда путь исполнения в функции разделяется, сложность увеличивается на единицу Documentation Оценка количества комментариев в коде Issues Предоставляет информацию о количестве проблем, их типе и статусе Quality Gates Итоговая оценка качества проекта. Критерии для прохождения проектом контроля качества можно настроить отдельно для каждого проекта Tests Оценка покрытия кода тестами
  • 13. Минусы • Некорректная работа с LDAP-группами • Высокая стоимость плагинов • Отсутствие иерархичности проектов по веткам кода
  • 14. Профит от использования SonarQube за полгода • Повысилось качество нового кода • Найдены старые баги и уязвимости • Сократилось время, затрачиваемое на ревью кода • Повысилась культура написания кода
  • 15. Спасибо! Вопросы? Соловьев Алексей Программист отдела DevOps asolovyev@ptsecurity.com www.linkedin.com/in/aasolovyev Черепанов Сергей Программист отдела DevOps scherepanov@ptsecurity.com