НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




07.05.2013

Результаты сравнения качества кода открытых и проприетарных проектов

Компания Coverity, развивающая инструментарий для автоматического анализа кода на предмет наличия проблем безопасности и ошибок, опубликовала отчёт с результатами изучения 450 млн строк кода, охватывающих 118 наиболее активно разрабатываемых открытых проектов и 256 проприетарных продуктов.

В среднем уровень дефектов в открытом и закрытом коде оказался примерно на одном уровне - 0.69 против 0.68 ошибок на 1000 строк кода, что значительно ниже требований промышленных стандартов качества, в которых допускается 1 ошибка на 1000 строк кода. В проектах размером от 500 тысяч до 1 млн строк кода открытое ПО почти в два раза опередило проприетарное ПО по качеству, показав коэффициент наличия ошибок 0.44 против 0.98. Для проектов до 100 тысяч строк кода данные показатели составили 0.4 и 0.51, от 100 до 500 тысяч - 0.60 и 0.66. В проектах, размером более 1 млн строк кода более высокое качество наблюдается в проприетарном ПО - коэффициент ошибок в открытом ПО составил 0.75, а в проприетарном - 0.66.

Что касается типов проблем, выявленных в процессе анализа кода, то 36% всех выявленных проблем относятся к категории ошибок высокой степени опасности. Распределение типов проблем выглядит следующим образом (уже исправлено/ещё не исправлено):

Проблемы с порядком вычислений (Control Flow Issues) 3,464 / 5,826

Разыменование NULL-указателя (Null Pointer Dereferences) 2,724 / 6,846

Неинициализированные переменные (Uninitialized Variables) 1,374 / 1,692

Повреждения памяти (Memory Corruptions) 2,264 / 3,151

Проблемы с обработкой ошибок (Error Handling Issues) 1,432 / 5,461

Утечка ресурсов (Resource Leaks) 2,544 / 4,826

Проблемы с обработкой целочисленных значений (Integer Handling Issues) 2,512 / 3,791

Некорректный доступ к памяти (Memory - Illegal Access) 1,693 / 4,299

Небезопасная обработка данных (Insecure Data Handling) 751 / 1,372

Некорректные выражения (Incorrect Expression) 766 / 1,421

Проблемы с одновременным доступом (Concurrent Access Violations) 175 / 206

Ошибки использования API (API Usage Errors) 257 / 359

Зависания программ (Program Hangs) 127 / 180

Несоответствия иерархии класса (Class Hierarchy Inconsistencies) 4 / 9.

Анализ качества ядра Linux показал, что в выпущенных за 2012 год версиях ядра Linux 3.2-3.7 было зафиксировано 5803 дефектов, при этом уже исправлено 5170 проблем. В 2011 году число дефектов для ядер 2.6.38-3.1 составило 2331, но исправлено было только 1283 проблем. Средний коэффициент наличия ошибок во всех подсистемах ядра составил 0.66 (от 0.32 до 0.9, в зависимости от подсистемы ядра), в то время как 5 лет назад данный коэффициент превышал граничный показатель в 1 ошибку на 1000 строк кода. В новых версиях ядра число ошибок уменьшается, например, в ядре 3.8 коэффициент наличия ошибок составляет 0.59.

Система Coverity Scan была создана в 2006 году по инициативе Министерства национальной безопасности США для обеспечения и усиления безопасности информационной инфраструктуры Соединённых Штатов, в которой используются различные Open Source проекты. В настоящее время программа тестирования Coverity Scan охватывает около 300 открытых проектов, суммарный размер кода которых превышает 68 млн строк. При автоматическом анализе данного кода было выявлено 47 тысяч дефектов, из которых уже исправлены 21 тысяча.


Источники:

  1. OpenNET








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь