The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Исследование Coverity показало отставание качества проприета..."
Отправлено opennews, 16-Апр-14 23:43 
Компания Coverity, развивающая инструментарий для автоматического анализа кода на предмет наличия проблем безопасности и ошибок опубликовала (http://www.coverity.com/press-releases/coverity-scan-report-.../) отчёт (PDF (http://softwareintegrity.coverity.com/rs/coverity/images/201...), 390 Kб) с результатами изучения 936 млн строк кода на C/C++, охватывающих 740 наиболее активно разрабатываемых открытых проектов (252 млн строк кода) и 493 проприетарных продуктов (684 млн строк кода).


Впервые за многолетнюю практику проведения аналогичных исследований, по своему качеству открытое ПО заметно опередило проприетарное - уровень дефектов в открытом коде составил 0.59 ошибок на 1000 строк кода, в то время как в проприетарном ПО данный показатель составил 0.72 (в прошлом году при сравнении примерно в два раза меньшей кодовой базы соотношение было 0.69 против 0.68). При этом, следует иметь в виду, что требования промышленных стандартов качества допускают наличие 1 ошибки на 1000 строк кода.

Если рассматривать корреляцию уровня качества в зависимости от размера проектов, то наибольший уровень ошибок наблюдается в проектах размером от 500 тысяч до 1 млн строк - 0.70 ошибок на 1000 строк для открытого кода и 0.84 для проприетарного. Для проектов размером более 1 млн строк кода уровень качества составляет 0.65 для открытого кода и 0.71 для проприетарного, от 100 до 500 тысяч - 0.50 и 0.81,  до 100 тысяч строк - 0.35 и 0.38.


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


-  Утечка ресурсов (Resource Leaks) 9,503

-  Разыменование NULL-указателя (Null Pointer Dereferences) 6,573
- Проблемы с порядком вычислений (Control Flow Issues) 5,175

-  Проблемы с обработкой ошибок (Error Handling Issues) 4,500

-  Неинициализированные переменные (Uninitialized Variables) 3,398

-  Некорректный доступ к памяти (Memory - Illegal Access) 2,591

-  Повреждения памяти (Memory Corruptions) 2,555

-  Проблемы с обработкой целочисленных значений (Integer Handling Issues) 2,448
-  Неинициализированные переменные (Uninitialized variables) 1,997

-  Некорректные выражения (Incorrect Expression) 1,912
-  Проблемы с сопровождением кода (Code maintainability issues) 982
-  Игнорирование рекомендаций по безопасному программированию (Security best practices violations) 759

-  Небезопасная обработка данных (Insecure Data Handling) 705  

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

-  Зависания программ (Program Hangs) 324


-  Проблемы с одновременным доступом (Concurrent Access Violations) 164
-  Проблемы с производительностью (Performance inefficiencies) 153
-  Предупреждения при парсинге (Parse warnings) 260

-  Несоответствия иерархии класса (Class Hierarchy Inconsistencies)  17

При рассмотрении тенденций в изменении качества кода ядра Linux в 2013 год отмечается сокращение среднего времени на устранения выявленных ошибок со 122 до 6 дней. Уровень дефектов в ядре составляет 0.61 ошибок на 1000 строк кода, при том, что этот показатель впервые спустился ниже 1 в 2008 году. Из других интересных выводов упоминается то, что разработчики на C/C++ устраняют важные ошибки более активно, что разработчики на Java. Если для проектов на C/C++ устранено 46% выявленных утечек ресурсов, то для Java-проектов было исправлено всего 13% таких проблем. Подобное поведение объясняется излишним доверием Java-разработчиков к предоставляемым языком средствам защиты, таких как сборщик мусора.

Система Coverity Scan была создана в 2006 году по инициативе Министерства национальной безопасности США для обеспечения и усиления безопасности информационной инфраструктуры Соединённых Штатов, в которой используются различные Open Source проекты. В настоящее время программа тестирования Coverity Scan (http://scan.coverity.com/) охватывает около 1700 (https://scan.coverity.com/projects) открытых проектов. С марта прошлого года в число проверяемых проектов включены разработки на языке Java, в том числе были проверены проекты Apache Hadoop, HBase и Cassandra.  При автоматическом анализе кода открытых проектов с 2006 год выявлено более 94 тысяч дефектов, при этом в 2013 году авторами проектов было исправлено 50 тысяч проблем. Более 11 тысяч исправлений приходятся на 4 крупнейших проекта -  NetBSD, FreeBSD, LibreOffice и ядро Linux.

URL: http://www.coverity.com/press-releases/coverity-scan-report-.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=39587

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру