﻿# Как YADRO использует PVS\-Studio в процессе контроля качества кода для телеком\-оборудования

Мы продолжаем рассказывать, как компании используют PVS\-Studio\. В этом кейсе — опыт компании YADRO\.

![1385_Yadro_case_ru/image1.png](https://import.viva64.com/docx/blog/1385_Yadro_case_ru/image1.png)

## О компании

YADRO — ведущий производитель высокотехнологичного оборудования в России\. Компания ориентирована на разработку и производство высокопроизводительных вычислительных платформ, систем обработки и хранения данных, сетевого и телекоммуникационного оборудования, персональных устройств\.

Подразделение Телеком реализует полный цикл создания телекоммуникационного оборудования: от аппаратной платформы до программного обеспечения\. В состав подразделения входят специализированные команды, сопровождающие процесс разработки и отвечающие за надёжность и безопасность конечных продуктов\.

Департамент обеспечения безопасной разработки осуществляет контроль качества программного обеспечения базовых станций, радиомодулей, GSM\-контроллеров и систем управления, используемых в сетевой инфраструктуре\. 

## Задача

Подразделение Телеком в составе компании YADRO было сформировано в 2022 году и приступило к разработке продуктов телекоммуникационного оборудования\. 

По мере того, как решения развивались, возникла необходимость выстраивать системные процессы безопасности и внедрять их на ранних этапах жизненного цикла разработки\. Статический анализ стал естественной отправной точкой\. Как метод проверки, позволяющий выявлять уязвимости непосредственно на этапе написания кода, он лёг в основу широкой системы обеспечения качества и безопасности\.

>  "К 2023 году программное обеспечение телеком\-продуктов достигло зрелости, при которой стало возможным системно применять методы анализа кода\. Статический анализ был выбран одним из первых применяемых методов — это соответствует принципам подхода [shift\-left](https://pvs-studio.ru/ru/blog/terms/7013/)", — Павел Недошивин, инженер по информационной безопасности\.

Перед командой отдела безопасности продуктов встала задача не просто внедрить инструменты анализа кода, а выстроить процессы безопасной разработки, которые будут масштабироваться вместе с продуктовой линейкой\. Количество продуктов, команд и реализуемых функций постоянно увеличивается, а вместе с ними растёт число репозиториев и объём кода, требующего регулярной проверки\.

> "У нас постоянно появляются новые функции и новые продукты, поэтому мы расширяем покрытие security\-тестами, в том числе статическим анализом", — Павел Недошивин, инженер по информационной безопасности\.

Отдельным вызовом стало вовлечение разработчиков: важно было не просто внедрить инструмент, а сделать его частью повседневного рабочего процесса\.

Дополнительную сложность создавала инфраструктура: часть телеком\-продуктов работает на собственной операционной системе, что требовало от инструмента статического анализа гибкости и способности адаптироваться к специфике среды разработки\.

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

## Решение

По итогам сравнительного анализа нескольких инструментов команда остановила выбор на PVS\-Studio для статического анализа C и C\+\+ кода\.

Внедрение началось с исследования и применения диагностических правил группы General Analysis, и по мере освоения возможностей инструмента команда последовательно расширяла его использование:

> "Мы начали с правил общего назначения, а затем исследовали и подключили правила по стандартам [MISRA](https://pvs-studio.ru/ru/docs/manual/6966/) и [OWASP](https://pvs-studio.ru/ru/docs/manual/6536/)\. Регулярные обновления поддержки стандартов в PVS\-Studio позволяют нам поддерживать код в чистом и актуальном состоянии", — Павел Недошивин, инженер по информационной безопасности\.


> В релизе 7\\\.41 был завершён очередной этап расширения покрытия диагностическими правилами анализатора PVS\\\-Studio стандарта MISRA C 2023\\\. На первую половину 2026 года обеспечено покрытие на уровне 86%\\\. В дальнейшем планируется повысить покрытие стандарта MISRA C\\\+\\\+ 2023\\\. Подробнее о статусе поддержки стандартов MISRA в анализаторе PVS\\\-Studio можно прочитать \[здесь\]\(https://pvs\-studio\.ru/ru/pvs\-studio/sast/misra/\)\\\.




> PVS\\\-Studio поддерживает \[классификацию своих диагностических правил\]\(https://pvs\-studio\.ru/ru/pvs\-studio/sast/owasptopten/\) согласно редакции рейтинга OWASP Top 10 версии 2021\\\.



Настройка инструмента под специфику инфраструктуры потребовала отдельной проработки нескольких технических задач и дополнительной конфигурации анализатора под потребности проектов, однако сложности удалось преодолеть\. Сейчас команда подразделения придерживается единого подхода:

> "Мы один раз сконфигурировали анализатор и стараемся распространять эту конфигурацию на все продукты — так нам удалось определить оптимальные настройки для наших проектов", — Павел Недошивин, инженер по информационной безопасности\.

Статический анализ полностью интегрирован в CI/CD и запускается автоматически, в том числе при создании merge request'ов\.:

> "Работа с выдаваемыми предупреждениями была передана непосредственно разработчикам и сейчас многие их них активно работают с PVS\-Studio самостоятельно", — Павел Недошивин, инженер по информационной безопасности\.

На практике PVS\-Studio показал высокую эффективность в поиске дефектов, которые напрямую влияют на безопасность, стабильность и качество кода\. Особенно часто анализатор помогает выявлять нарушения правил стандарта MISRA, включая отсутствие const\-модификаторов, неинициализированные переменные и логические ошибки, например присваивания в условиях или ветки с заведомо ложными выражениями\. 

Такие проблемы не только повышают риск дефектов в работе программы, но и усложняют чтение и сопровождение кода\. Использование PVS\-Studio позволило команде системно обнаруживать и устранять подобные ошибки\.

>  "Неинициализированные переменные одно время были нашей настоящей проблемой\. Но благодаря PVS\-Studio мы всё это выявили и скорректировали подходы команд к написанию кода", — Павел Недошивин, инженер по информационной безопасности\.

Кроме того, команда отдела безопасности продуктов регулярно собирает обратную связь от разработчиков, использующих анализатор, и передаёт её в отдел поддержки PVS\-Studio: вопросы точности срабатываний, запросы на доработку логики анализатора и интеграции с другими инструментами разработки\.

За время сотрудничества команда PVS\-Studio реализовала ряд улучшений по запросам специалистов YADRO:

1. **Расширение функциональности**\. Добавлена настройка, отключающая изменение кода возврата анализатора при скором истечении лицензии; исправлено ошибочное поведение конвертера отчётов при преобразовании пустого отчёта в формат `fullhtml`\.
1. **Доработки анализатора**\. Устранена регрессия диагностического правила [V550](https://pvs-studio.ru/ru/docs/warnings/v550/), возникшая при обновлении парсера; доработано диагностическое правило [V2528](https://pvs-studio.ru/ru/docs/warnings/v2528/) для выдачи более точной позиции предупреждения; исправлено ложное срабатывание [V2564](https://pvs-studio.ru/ru/docs/warnings/v2564/) из\-за некорректной обработки возвращаемых значений лямбда\-функций, а также устранены несколько случаев аварийного завершения работы анализатора\.
1. **Доработки сторонних интеграций**: Расширены критерии уникальности для предупреждений, экспортируемых в отчёты для DefectDojo\.

Многие улучшения PVS\-Studio появляются благодаря обратной связи от [Enterprise](https://pvs-studio.ru/ru/order/license/)\-пользователей\. Полный список улучшений, реализованных по запросам пользователей, мы публикуем [здесь](https://pvs-studio.ru/ru/pvs-studio/support/)\.

## Результаты

**Политика нулевой терпимости к ошибкам в коде**

Выстраивая процессы безопасной разработки с момента основания подразделения Телеком, команда сформировала чёткие практики контроля качества кода\. Одна из ключевых — политика нулевой терпимости к предупреждениям PVS\-Studio высокого уровня:

> "У нас политика нулевой терпимости к предупреждениям уровня High и Critical\. Мы просто запрещаем заливать в продакшн код, в котором PVS\-Studio находит предупреждения этих уровней", — Павел Недошивин, инженер по информационной безопасности\.

**Снижение количества предупреждений как метрика улучшения качества кода**

Команда подразделения оперативно обновляет анализатор с каждым новым релизом PVS\-Studio несмотря на то, что каждое обновление может добавлять новые предупреждения для уже существующего кода\. Это отражает подход команды к качеству: каждое обновление анализатора рассматривается как возможность улучшить кодовую базу\. Устойчивая динамика снижения количества выдаваемых предупреждений служит для команды практическим индикатором результата\.

> "Мы отслеживаем, насколько код стал чище: смотрим на количество выдаваемых предупреждений и на сколько процентов оно снижается", — Павел Недошивин, инженер по информационной безопасности\.

**Распространение экспертизы внутри подразделения**

Команда отдела безопасности продуктов накопила глубокую экспертизу в работе с анализатором и активно передаёт её командам разработки: проводит обучения, разбирает типичные предупреждения и помогает улучшать качество написания кода\.

> "Мы периодически проводим обучения в рамках общих security info\-sharing сессий в дивизионе: рассказываем про популярные предупреждения и типичные ошибки в коде\. Стараемся следить за тем, чтобы разработчики проактивно их замечали и не допускали", — Павел Недошивин, инженер по информационной безопасности\.

## Заключение

Опыт компании YADRO показывает, что выстроить системные и масштабируемые процессы безопасной разработки можно даже в условиях быстрого роста: когда продуктовая линейка расширяется, команды множатся, а требования к качеству кода только растут\. Системный подход, чёткая политика контроля и последовательная работа с командами разработки позволили подразделению Телеком удерживать высокие стандарты качества кода, не жертвуя скоростью развития продуктов\.

В этом команде помогает анализатор PVS\-Studio, а сам инструмент продолжает развиваться вместе с её потребностями\.

Хотите оценить эффективность внедрения статического анализа в вашей компании? Протестируйте бесплатную пробную версию PVS\-Studio по [ссылке](https://pvs-studio.ru/ru/pvs-studio/try-free/) и свяжитесь с нами для получения [информации о ценах](https://pvs-studio.ru/ru/order/)\.