Открытый Исходный Код Лучше, Чем Проприетарный Код


На основе сканирования миллионов строк кода Coverity обнаружила, что в 2013 году плотность дефектов в открытом исходном коде была ниже, чем в проприетарном коде. Это может быть менее чем обнадеживающим, учитывая продолжающуюся угрозу сердечного кровотечения.

Служба Coverity Scan, которая была первоначально инициирована в 2006 году Министерством внутренней безопасности США , позволяет разработчикам с открытым исходным кодом тестировать свой код Java, C и C++ по мере его написания, отмечать дефекты и предоставлять им информацию, необходимую для их обнаружения.

Прошлогодний отчет Coverity Scan 2012 показал, что открытый исходный код имеет такое же хорошее качество кода, как и проприетарный код, при этом проприетарный код имеет среднюю плотность дефектов 0,68 по сравнению с 0,69 для открытого исходного кода. Этот вывод был основан на анализе более 450 миллионов строк программного кода из 118 проектов

За последний год количество проектов, использующих сервис, значительно увеличилось, так что Coverity Scan теперь насчитывает более 1500 проектов.

В своем анализе кода C/C++ отчет за 2013 год охватил более 250 миллионов строк открытого исходного кода из 741 наиболее активных проектов C/C++, а также почти 700 миллионов строк кода из анонимной выборки почти 300 клиентов Coverity. 

С точки зрения плотности дефектов, т. е. дефектов, остающихся на конец года, впервые качество кода с открытым исходным кодом превысило качество кода с проприетарным кодом C/C++ со скоростью 0,59 (в отличие от 0,72) на 1000 строк кода.

Посмотрите на общее количество обнаруженных дефектов (т. Е. исправленных, а также невыполненных), показывает, что проприетарный код имеет коэффициент дефектов 1,87 дефектов на 1000 строк по сравнению только с 0,77 для открытого исходного кода, но проприетарные проекты с гораздо большей вероятностью исправят дефекты. Более 60% дефектов проприетарного кода были исправлены по сравнению с менее чем четвертью дефектов с открытым исходным кодом.

С мая 2013 года Coverity Scan включила поддержку Java и привлекла более 100 проектов с открытым исходным кодом, включая проекты с большими данными, такие как Apache Hadoop, Apache HBase и Apache Cassandra.

Что касается различий между кодом Java и C/C++, то в отчете говорится::

Общая плотность дефектов в проектах Java составила 2,72, что значительно выше, чем плотность дефектов .59 в проектах C/ C++ в 2013 году. Существует несколько факторов, влияющих на уровень плотности. Во-первых, алгоритмы анализа для Java и C/C++ различаются. Анализ, который мы предоставляем для службы сканирования, включает в себя популярные шашки FindBugs, которые очень полезны. Многие из проверок FindBugs генерируют большое количество результатов, в частности, в области сомнительного кода, производительности и плохих практик. Еще одним фактором, который следует учитывать при оценке плотности дефектов программ Java, является продолжительность времени, в течение которого служба сканирования была доступна для проектов. Нередко можно наблюдать более высокие показатели плотности дефектов на ранних стадиях участия проекта в сервисе, за которыми следует снижение плотности дефектов с течением времени.

Отчет выделяет HBase в качестве эталона качества Java.:

Coverity помогла HBase (базе данных Hadoop) исправить более 220 дефектов, включая гораздо более высокий процент дефектов с высокой степенью воздействия, чем в других проектах Java (66% для HBase против 13% для всех других проектов Java).

Одновременно с публикацией отчета за 2013 год Coverity объявила сегодня, что открыла доступ к службе сканирования Coverity, что позволяет всем, кто интересуется программным обеспечением с открытым исходным кодом, просматривать ход выполнения участвующих проектов в качестве наблюдателей за проектами. Этот статус позволяет индикаторам просматривать данные высокого уровня, включая количество выдающихся дефектов, исправленных дефектов и плотность дефектов.

Зак Самоха, старший директор по продуктам для Coverity, объяснил с инициативой:

“Мы наблюдаем экспоненциальный рост числа людей, которые попросили присоединиться к службе сканирования Coverity, просто для того, чтобы отслеживать обнаруженные и исправленные дефекты. Во многих случаях эти люди работают в крупных корпоративных организациях, которые используют программное обеспечение с открытым исходным кодом в своих коммерческих проектах. Открыв сервис сканирования для этих людей, мы теперь обеспечиваем новый уровень видимости качества кода проектов с открытым исходным кодом, которые они включают в свою цепочку поставок программного обеспечения.” 


Добавить комментарий