The OpenNET Project / Index page

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

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

Компания Coverity, развивающая инструментарий для автоматического анализа кода на предмет наличия проблем безопасности и ошибок опубликовала отчёт (PDF, 1 Мб) с результатами изучения 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. Главная ссылка к новости (http://www.coverity.com/compan...)
  2. OpenNews: Результаты анализа системой Coverity безопасности и качества открытого кода
  3. OpenNews: Результаты исследования безопасности и качества открытого кода
  4. OpenNews: Обобщение опыта Coverity по статистическому анализу миллиардов строк кода
  5. OpenNews: Исследование Coverity показало улучшение качества открытого кода
  6. OpenNews: Отчет по итогам анализа кода 250 открытых проектов
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: coverty, test, quality, php, postgresql, kernel
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 20:37, 07/05/2013 [ответить] [смотреть все]
  • +3 +/
    Средняя температура по больнице
     
     
  • 2.3, pavlinux, 20:44, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]
  • +8 +/
    Это Фроникс - ср. темп. по больнице, а Coverity серьёзные посаны.  
     
     
  • 3.45, Карбофос, 10:50, 08/05/2013 [^] [ответить] [смотреть все]
  • +/
    поднимают ли они вопли по поводу возвращаемого значения от printf, вот в чём воп... весь текст скрыт [показать]
     
  • 2.8, Аноним, 21:05, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • –3 +/
    Не по больнице, а по исходному коду.
     
  • 1.4, Ordu, 20:48, 07/05/2013 [ответить] [смотреть все]  
  • –5 +/
    И какой смысл в этих числах Выборка-то нерепрезентативная ведь ни один пропиет... весь текст скрыт [показать]
     
     
  • 2.9, Аноним, 21:18, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Неверно, ты забыл про код на пыхе выложенный на гитхабе и сорсфордже :-D
     
  • 2.10, SubGun, 21:26, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Это министерство национальной безопасности, для него все открыто
     
     
  • 3.18, Ordu, 22:31, 07/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Не знаю, что для него открыто, но список софта, приведённый по ссылке из статьи,... весь текст скрыт [показать]
     
     
  • 4.22, Аноним, 22:51, 07/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Майкрософт предоставляет спецслужбам доступ к исходникам всех своих поделок, в т... весь текст скрыт [показать]
     
     
  • 5.29, ананим, 00:58, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Но в сабже упоминания о нём нет Т е публикации подобной аналитики толи запреще... весь текст скрыт [показать]
     
     
  • 6.76, Евгений, 19:13, 12/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Нет
     
  • 5.46, прхожий, 12:08, 08/05/2013 [^] [ответить] [смотреть все]  
  • –3 +/
    Слышал звон,да не понял где он Никогда еще майкрософт не предоставлял доступ к... весь текст скрыт [показать]
     
     
  • 6.47, PereresusNeVlezaetBuggy, 12:13, 08/05/2013 [^] [ответить] [смотреть все]  
  • +3 +/
    Хм Пруф ... весь текст скрыт [показать]
     
  • 6.73, еще один аноним, 15:25, 11/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Ты чего-то перегнул Если ты знаешь, КАКИЕ КОНКРЕТНЫЕ СТРОКИ в какой конкретной ... весь текст скрыт [показать]
     
  • 6.77, Michael Shigorin, 04:03, 15/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Не понял -- проходи ц Это Вы не в курсе Предоставляли по программе чего-то т... весь текст скрыт [показать]
     
  • 2.12, Anonymous1, 21:46, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +10 +/
    Американский проприетарщик, отказывающий инициативе Министерства национальной безопасности США? Немного странно это, и небезопасно для бизнеса этого проприетарщика...
    Или Вы свято верите в те песни о демократии и неприкосновенности бизнеса, которые они для других стран звонко поют?
     
     
  • 3.31, ананим, 01:03, 08/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Тогда где аналитика по винде и пр продуктам мс Очевидно что сабж для наиболее ... весь текст скрыт [показать]
     
     
  • 4.74, еще один аноним, 15:29, 11/05/2013 [^] [ответить] [смотреть все]  
  • +/
    возмжно потому она подробная аналитика по винде и всяким мсофисам и проходит о... весь текст скрыт [показать]
     
  • 2.15, Mike Lee, 22:14, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +11 +/
    Ты не поверишь, но они за это Coverity и прочий Klocwork еще и деньги платят.
     
     
  • 3.38, AnonuS, 02:11, 08/05/2013 [^] [ответить] [смотреть все]  
  • +4 +/
    Ты зря ему это сказал, у него от соприкосновения с реальной жизнью может случитс... весь текст скрыт [показать]
     
  • 2.16, VoDA, 22:30, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Проприетарщики сами приплачивают чтобы их софт проверили На основании этих пров... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.19, Ordu, 22:38, 07/05/2013 [^] [ответить] [смотреть все]  
  • –4 +/
    То есть Coverity может подгонять выборку по своему разумению Тогда она вообще м... весь текст скрыт [показать]
     
  • 1.11, Sylvia, 21:34, 07/05/2013 [ответить] [смотреть все]  
  • +2 +/
    >требований промышленных стандартов качества, в которых допускается 1 ошибка на 1000 строк кода

    пугающие стандарты...

     
     
  • 2.14, Аноним, 22:01, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Это о чем то говорит, ведь по этим стандартам винду делали.
     
     
  • 3.40, dr Equivalent, 06:22, 08/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Со стандартами у них всегда проблемы были, этот - не исключение.
     
  • 1.13, Lightnin_Hopkins, 21:47, 07/05/2013 [ответить] [смотреть все]  
  • +2 +/
    А в самом этом Coverity какой коэффициент?
     
     
  • 2.17, VoDA, 22:31, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Скорее около нуля - они сами себя должны постоянно сканить ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, Карбофос, 23:53, 07/05/2013 [^] [ответить] [смотреть все]  
  • +/
    а если их фаззингом?
     
  • 1.20, Аноним, 22:43, 07/05/2013 [ответить] [смотреть все]  
  • –1 +/
    Неужели так сложно инициализировать переменные начальными значениями ... весь текст скрыт [показать]
     
     
  • 2.24, Карбофос, 23:51, 07/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    там фишка вот в чём переменная инициализируется в специальной функции, где-то в... весь текст скрыт [показать] [показать ветку]
     
  • 2.36, Ordu, 01:57, 08/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Иногда сложно Случаются такие гадостные ситуации, когда инициализация объекта о... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.63, Аноним, 19:30, 09/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Строго говоря, в чистом функциональном программировании им места, вроде, нет Ка... весь текст скрыт [показать]
     
     
  • 4.72, Ordu, 23:16, 10/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Какое это имеет отношение к языкам C и C Говоря о стиле программирования, я и... весь текст скрыт [показать]
     
  • 1.21, Аноним, 22:50, 07/05/2013 [ответить] [смотреть все]  
  • +1 +/
    Число найденных ошибок в OpenBSD не сообщается, но известно, что несколько разра... весь текст скрыт [показать]
     
     
  • 2.26, PereresusNeVlezaetBuggy, 00:21, 08/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Угу Собственно, единственное упоминание за 2013 год в CVS-логах - про OpenSMTPD... весь текст скрыт [показать] [показать ветку]
     
     
     
     
     
     
     
    Часть нити удалена модератором

  • 8.39, Аноним, 02:21, 08/05/2013 [ответить] [смотреть все]  
  • +4 +/
    Необходимым условием для возможности использования ОС в госорганах,в том числе и... весь текст скрыт [показать]
     
     
  • 9.50, PereresusNeVlezaetBuggy, 12:30, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Вами опять в качестве доказательства приведён целый ряд, очевидно самостоятельно... весь текст скрыт [показать]
     
     
  • 10.52, Аноним, 13:36, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Надоело играться с самой секурной ОС всех времён,и решил... весь текст скрыт [показать]
     
     
  • 11.53, PereresusNeVlezaetBuggy, 13:55, 08/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    gt оверквотинг удален Ни о каких судебных тяжбах речи не шло, это снова ваш... весь текст скрыт [показать]
     
     
  • 12.54, Аноним, 14:20, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Дискуссия предпологает высказывание и продвижение каждым участником своего виден... весь текст скрыт [показать]
     
     
  • 13.56, шестиклассник, 17:57, 08/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Отсутствие пробела после запятой неимоверно режет глаза.
     
  • 13.57, PereresusNeVlezaetBuggy, 18:21, 08/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Видение предмета может быть обосновано, а может быть не обосновано Намеренное и... весь текст скрыт [показать]
     
     
  • 14.58, Аноним, 19:10, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Да,нигде официальные представители госструктур ну понятно,что это,здесь не цепля... весь текст скрыт [показать]
     
     
  • 15.59, PereresusNeVlezaetBuggy, 20:48, 08/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Либо указание конкретного факта использования, либо полное перечисление, какие О... весь текст скрыт [показать]
     
  • 10.64, Аноним, 19:34, 09/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Так про внедрения в неамериканских госорганах все знают просто http www openb... весь текст скрыт [показать]
     
     
  • 11.65, Аноним, 23:02, 09/05/2013 [^] [ответить] [смотреть все]  
  • +/
    О А мы и не знали Вообщем, среди того списка серьёзных проектов заведений нет ... весь текст скрыт [показать]
     
     
  • 12.66, PereresusNeVlezaetBuggy, 23:08, 09/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Уже смешно Зачем сравнивать Разные ОС, ставят перед собой несколько разные з... весь текст скрыт [показать]
     
     
  • 13.67, Аноним, 00:17, 10/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Скорее так ЛАД на свете больше,чем двухколёсных карет на конной тяге и что ... весь текст скрыт [показать]
     
     
  • 14.68, PereresusNeVlezaetBuggy, 09:53, 10/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    То, что сравнивать по популярности - глупо Установок винды больше, чем Debian, ... весь текст скрыт [показать]
     
     
  • 15.69, Аноним, 11:09, 10/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Миллионы мух действительно не ошибались,когда выбирали windows как ос для дескто... весь текст скрыт [показать]
     
     
  • 16.70, PereresusNeVlezaetBuggy, 11:41, 10/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Вы, похоже, как и многие, зациклились на виртуализации, причём именно x86-виртуа... весь текст скрыт [показать]
     
     
  • 17.71, Аноним, 19:00, 10/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Увы да Потому,что виртуализация представленная в линукс-наиболее приемлемая для ... весь текст скрыт [показать]
     
  • 8.43, Sergey722, 09:40, 08/05/2013 [ответить] [смотреть все]  
  • +/
    А я вот например понял, что Вам очень хочется до копаться до кого-то и самоутв... весь текст скрыт [показать]
     
     
  • 9.48, Brain, 12:16, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Юридический подход в судах, не?
     
  • 9.49, PereresusNeVlezaetBuggy, 12:20, 08/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Просто меня раздражает намеренное использование некорректной аргументации, а осо... весь текст скрыт [показать]
     
  • 1.28, Аноним, 00:36, 08/05/2013 [ответить] [смотреть все]  
  • –1 +/
    Очередная игрушка бумагоукладчиков - сертификаторов.
     
     
  • 2.37, _yurkis__, 02:09, 08/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +6 +/
    Мусье не приемлет статических анализаторов кода и качество оного безошибочно (с точностью до 0,00001) чувчтвует жопой?
     
  • 1.41, Главные Редакторы, 08:38, 08/05/2013 [ответить] [смотреть все]  
  • +/
    Если так просто найти все ошибки, то почему их все до сих пор не исправили?
     
  • 1.42, Антоним, 09:35, 08/05/2013 [ответить] [смотреть все]  
  • +1 +/
    Что открытый код не может быть проприетарным? И кто пишет открытый код? Те же, кто пишет проприетарный
     
     
  • 2.78, Michael Shigorin, 04:08, 15/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    открытый свободный... весь текст скрыт [показать] [показать ветку]
     
  • 1.44, robux, 10:26, 08/05/2013 [ответить] [смотреть все]  
  • +/
    Интересные исследования.
    В целом, как я понял открытые проекты по качеству делают закрытые до 1 млн. строк. Это вроде логично, так как на добровольных основах трудно объять необъятное. Но!

    Но практика использования ядра Linux и ядра Windows (а это явно больше 1 млн. строк кода) показывает, что линукс-то сука понадёжнее будет.

    Так что все эти исследования - продвижение крупных пропритарщиков, толкающих своё закрытое УГ с зондами от ЦРУ. А также это война против мелких проприетарщиков, которые отказываются внедрять зонды и только мешаются под ногами у спецслужб.

     
  • 1.55, Аноним, 17:25, 08/05/2013 [ответить] [смотреть все]  
  • +/
    Любопытно было бы взглянуть на географическое распределение результатов Типа ... весь текст скрыт [показать]
     
  • 1.60, Аноним, 22:58, 08/05/2013 [ответить] [смотреть все]  
  • +/
    Дайте Нам Вашу программу Мы ею отсканируем свои исходники и, может быть, дади... весь текст скрыт [показать]
     
  • 1.62, Игрулькин, 14:42, 09/05/2013 [ответить] [смотреть все]  
  • –1 +/
    Я хоть и прогер, но всё равно не въехал в суть "ошибок". Что такое "Проблемы с порядком вычислений"? Сложил раньше, чем умножил? Записал данные, но забыл открыть файл? Не ясно. Кроме того, громадное количество ошибок просто в принципе не отлавливаемы - ошибки алгоритма. Именно о них спотыкается конечный юзер. А всякие "ссылки через NULL" - это так, детские болезни заплесневелых си-сипипей. Давно уже пора на Ди переходить, там такой маразм не водится.
     
  • 1.75, Андрей Карпов, 18:18, 12/05/2013 [ответить] [смотреть все]  
  • +/
    Хочу тоже вставить пару слов, так как тема мне близка В комментариях мешанина и... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor