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

Positive Hack Days
Positive Hack DaysPositive Hack Days
Использование 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
1 de 15

Recomendados

От экспериментального программирования к промышленному: путь длиной в 10 лет por
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
637 vistas19 diapositivas
Дефицит ресурсов тестирования... или нет? por
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?SQALab
1K vistas19 diapositivas
Уязвимое Android-приложение: N проверенных способов наступить на грабли por
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Development User Group
1.7K vistas45 diapositivas
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей por
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
2.6K vistas22 diapositivas
WP как экспериментальная платформа por
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
682 vistas41 diapositivas
Winium — это как Selenium, только под Windows por
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsSQALab
4.8K vistas49 diapositivas

Más contenido relacionado

La actualidad más candente

Highway to Сontinuous Integration, Денис Трифонов (2GIS) por
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Ontico
1.6K vistas57 diapositivas
GUI-автоматизация в Telerik Test Studio por
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioSQALab
2.3K vistas22 diapositivas
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов por
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
1.1K vistas19 diapositivas
Альтернативные способы изучения программирования с нуля por
Альтернативные способы изучения программирования с нуляАльтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляCOMAQA.BY
4.5K vistas31 diapositivas
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро... por
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...Sergey Ponomarev
559 vistas21 diapositivas
Мастер-класс «Трущобы Application Security» por
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
893 vistas6 diapositivas

La actualidad más candente(20)

Highway to Сontinuous Integration, Денис Трифонов (2GIS) por Ontico
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Ontico1.6K vistas
GUI-автоматизация в Telerik Test Studio por SQALab
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
SQALab2.3K vistas
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов por SQALab
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
SQALab1.1K vistas
Альтернативные способы изучения программирования с нуля por COMAQA.BY
Альтернативные способы изучения программирования с нуляАльтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуля
COMAQA.BY 4.5K vistas
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро... por Sergey Ponomarev
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
Sergey Ponomarev559 vistas
Мастер-класс «Трущобы Application Security» por Positive Hack Days
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
Positive Hack Days893 vistas
Тестируем мобильное приложение в суровых реалиях Интернета por SQALab
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
SQALab1.2K vistas
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования por CodeFest
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest2.4K vistas
Эвристические методы защиты приложений por Positive Hack Days
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
Positive Hack Days911 vistas
Требования по безопасности в архитектуре ПО por Positive Hack Days
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
Positive Hack Days784 vistas
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика por QAFest
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QAFest3.2K vistas
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество? por CEE-SEC(R)
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
CEE-SEC(R)682 vistas
Лучшие практики на практике por Denis Tuchin
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
Denis Tuchin1.5K vistas
Денис Чистяков: Workflow. Работа над проектом в Яндексе por Yandex
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Yandex3.4K vistas
Автоматическое тестирование Web api por Igor Lyubin
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
Igor Lyubin316 vistas
Robot Framework: универсальный инструмент автоматизатора por SQALab
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
SQALab4.3K vistas
Повышение качества тестов и автоматическая валидация REST API документации por CEE-SEC(R)
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)1.5K vistas
Scrum глазами тестировщика или как создать стратегию для любой задачи por IT61
Scrum глазами тестировщика или как создать стратегию для любой задачиScrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачи
IT61387 vistas
Как Cluster Membership Software может помочь QA por SQALab
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
SQALab10.6K vistas
Free Desktop QA Engineers: implement automation testing por Alexandr Zinovyev
Free Desktop QA Engineers: implement automation testingFree Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testing
Alexandr Zinovyev126 vistas

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

Инструменты автоматизации тестирования - дефективные por
Инструменты автоматизации тестирования - дефективныеИнструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективныеSQALab
1.6K vistas25 diapositivas
Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H... por
Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H...Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H...
Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H...Innovecs
700 vistas26 diapositivas
Шаги мануальщика к автоматизации на крупном проекте por
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеSQALab
1.7K vistas22 diapositivas
Code review как средство обеспечения качества программного обеспечения por
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияSQALab
1.3K vistas13 diapositivas
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops por
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
1.6K vistas54 diapositivas
QAFest. Роль тестирования в Devops por
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsАнастасия Асеева
657 vistas54 diapositivas

Similar a Использование анализатора кода SonarQube(20)

Инструменты автоматизации тестирования - дефективные por SQALab
Инструменты автоматизации тестирования - дефективныеИнструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективные
SQALab1.6K vistas
Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H... por Innovecs
Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H...Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H...
Improvement of PHP code quality (by Alexander Makhomet) - Web Back-End Tech H...
Innovecs700 vistas
Шаги мануальщика к автоматизации на крупном проекте por SQALab
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
SQALab1.7K vistas
Code review как средство обеспечения качества программного обеспечения por SQALab
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспечения
SQALab1.3K vistas
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops por QAFest
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest1.6K vistas
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те... por COMAQA.BY
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
COMAQA.BY 406 vistas
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG por DataArt
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt433 vistas
Андрей Чебукин "Построение успешных API" por Fwdays
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
Fwdays853 vistas
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн... por SQALab
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
SQALab5.2K vistas
Опыт Автоматизации тестирования por Agile Ukraine
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
Agile Ukraine414 vistas
Кирилл Комлев. О реализации continuous integration для web проектов por Olesya_V
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V651 vistas
Анализ инструментов автоматизации мобильного тестирования por SQALab
Анализ инструментов автоматизации мобильного тестированияАнализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
SQALab1.4K vistas
Automation from the trenches por Gleb Rybalko
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko352 vistas
Как мы измеряем наши проекты por Rambler Android
Как мы измеряем наши проектыКак мы измеряем наши проекты
Как мы измеряем наши проекты
Rambler Android469 vistas

Más de Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes por
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
2.6K vistas26 diapositivas
Как мы собираем проекты в выделенном окружении в Windows Docker por
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
1.1K vistas26 diapositivas
Типовая сборка и деплой продуктов в Positive Technologies por
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
902 vistas29 diapositivas
Аналитика в проектах: TFS + Qlik por
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
883 vistas16 diapositivas
Развитие сообщества Open DevOps Community por
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
901 vistas18 diapositivas
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци... por
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
758 vistas31 diapositivas

Más de Positive Hack Days(20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes por Positive Hack Days
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Positive Hack Days2.6K vistas
Как мы собираем проекты в выделенном окружении в Windows Docker por Positive Hack Days
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
Positive Hack Days1.1K vistas
Типовая сборка и деплой продуктов в Positive Technologies por Positive Hack Days
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
Positive Hack Days902 vistas
Аналитика в проектах: TFS + Qlik por Positive Hack Days
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
Positive Hack Days883 vistas
Развитие сообщества Open DevOps Community por Positive Hack Days
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
Positive Hack Days901 vistas
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци... por Positive Hack Days
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Positive Hack Days758 vistas
Автоматизация построения правил для Approof por Positive Hack Days
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
Positive Hack Days1.5K vistas
Формальные методы защиты приложений por Positive Hack Days
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
Positive Hack Days887 vistas
Теоретические основы Application Security por Positive Hack Days
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
Positive Hack Days738 vistas
Уязвимое Android-приложение: N проверенных способов наступить на грабли por Positive Hack Days
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Positive Hack Days813 vistas
Формальная верификация кода на языке Си por Positive Hack Days
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
Positive Hack Days1.1K vistas
Механизмы предотвращения атак в ASP.NET Core por Positive Hack Days
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
Positive Hack Days813 vistas
SOC для КИИ: израильский опыт por Positive Hack Days
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
Positive Hack Days775 vistas
Honeywell Industrial Cyber Security Lab & Services Center por Positive Hack Days
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
Positive Hack Days647 vistas
Credential stuffing и брутфорс-атаки por Positive Hack Days
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
Positive Hack Days596 vistas
Практический опыт защиты финансовых транзакций клиентов Банка por Positive Hack Days
Практический опыт защиты финансовых транзакций клиентов БанкаПрактический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов Банка
Positive Hack Days318 vistas
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских... por Positive Hack Days
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Positive Hack Days347 vistas
Эффективный контроль сотрудников por Positive Hack Days
Эффективный контроль сотрудниковЭффективный контроль сотрудников
Эффективный контроль сотрудников
Positive Hack Days305 vistas
Подход к обеспечению безопасности IoT в Enterprise por Positive Hack Days
Подход к обеспечению безопасности IoT в EnterpriseПодход к обеспечению безопасности IoT в Enterprise
Подход к обеспечению безопасности IoT в Enterprise
Positive Hack Days447 vistas

Использование анализатора кода 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