Компания Coverity — разработчик инструментов для анализа программного кода — в 2006 году получило контракт от U.S. Department of Homeland Security, в соответствии с которым ей предстояло улучшить качество open source продуктов, которыми всё чаще пользуются правительственные структуры. Проведённое компанией исследование показало, что общее число дефектов в open source продуктах снижается.
Coverity создал веб-сайт, через который open source проекты передавались компании для анализа кода. Компания присваивала проектам оценку в зависимости от того, сколько дефектов им удалось обнаружить.
"Плотность ошибок" в проектах, просканированных через веб-сайт, упала на 16% за последние три года, и порядка 11200 дефектов было исправлено. Четырём проектам был присвоен топ-уровень "Степень 3" после того, как все ошибки, обнаруженные на уровнях 1 и 2 были исправлены. Это Samba, tor, OpenPAM и Ruby.
По данным Coverity, за это время сайт проанализировал более 60 млн. уникальных строк кода из 280 проектов. На более чем 180 проектах разработчики активно работают по сканированию open source проектов.
Сервис сканирования от Coverity задействует статический анализ, который используется для проверки безопасности кода или проблем с производительностью без необходимости запускать приложение. Этот способ предпочтителен, так как тестировать все возможные варианты использования сложных программ во время их работы предполагает написание большого числа специальных тест-кейсов, что потребовало бы много времени.
Инструменты статического анализа не укажут на ошибки в бизнес процессе, но зато они способны оценить техническое качество кода, а также использование в проекте best practices, которые ожидают от кода, прошедшего хорошую проверку. Инструменты позволяют найти "структурные анти-паттерны" в коде и плохие практики разработки, которые могут ухудшить производительность и безопасность кода, привести к утечкам памяти или переполнению буфера, а также выявить более экзотические условия ошибок, такие как ошибки вследствие параллельного выполнения кода на многоядерном процессоре.
itcareer
©