Американская компания Coverity, занимающаяся разработкой платформ для автоматизированного тестирования ПО, обнародовала отчет о результатах исследования СПО на предмет обнаружения ошибок в коде. Тестирование проводилось в 2011 г. с помощью системы Coverity Scan, которая была создана в 2006 г. по совместной инициативе Coverity и Министерства национальной безопасности США (U.S. Department of Homeland Security) с целью поддержания безопасности информационной инфраструктуры Соединенных Штатов, в которой широко используется СПО.

В отчете приведены результаты тестирования 45 наиболее активно развивающихся Open Source проектов.

Отмечается, что в отчет также впервые включены данные анализа кода пропроетарных программных продуктов, что позволило исследователям объективно оценить качества СПО по сравнению с коммерческим ПО. Образцы 41 проприетарных продуктов, включенных в исследования, были получены от анонимных пользователей.

Сообщается, что в общей сложности с помощью системы Coverity Scan было просканировано с проведением детального анализа свыше 37 млн. строк СПО и более 300 млн. строк пропроетарного ПО.

В среднем каждый открытый проект включал 832 тыс. строк кода; при этом на 1 тыс. строк открытого кода приходилось в среднем 0,45 ошибок, в то время как для проприетарного ПО этот показатель качества составлял 0,64. Таким образом, считают аналитики Coverity, тестирование показало примерно идентичное качество как СПО, так и проприетарных программных продуктов.

В отчёте приведены результаты детального анализа кода трех продуктов СПО: ядра Linux 2.6, PHP 5.3 и PostgreSQL 9.1. Проекты были выбраны исходя из различий в размерах кода и их типов.

Так, при анализе 7 млн. строк кода Linux 2.6 на 1 тыс. строк приходилось 0,62 ошибок, что, по данным Coverity, примерно эквивалентно такому же показателю (0,64) проприетарной ОС.

В PHP 5.3, размер кода которого составляет свыше 500 тыc. строк кода, выявлено 97 ошибок, из которых 15 признаны опасными. Показатель качества кода интерпретатора PHP — 0,2 ошибки на 1 тыс. строк кода.

В СУБД PotgreSQL 9.1, объём кода которого составляет 1,1 млн. строк кода, выявлено 233 ошибки, из которых 116 опасных. Показатель качества кода СУБД составляет 0,21 ошибки на 1 тыс. строк кода;

В целом же по индустрии, по данным того же источника, показатель качества ПО в среднем соответствует 1,0 (число ошибок) на тысячу строк кода. Таким образом, отмечают аналитики Coverity, уровень качества кода протестированных СПО-проектов оказался значительно выше средних показателей по индустрии.