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-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor