Недавно выпущенный отчет о проверке Coverity за 2012 год показывает, что открытый исходный код и проприетарный код соперничают за первое место, когда дело доходит до уменьшения обнаруженных дефектов.
Служба Coverity Scan была инициирована в 2006 году Министерством внутренней безопасности США в качестве крупнейшего исследовательского проекта государственного и частного секторов в мире, ориентированного на качество и безопасность программного обеспечения с открытым исходным кодом.
DHS завершила проект, но Coverity продолжает предлагать свою технологию тестирования разработки в качестве бесплатной услуги сообществу с открытым исходным кодом. C C++ и с начала 2013 года проекты на основе Java могут применяться для сканирования и получения отчетов о дефектах. LibreOffice, MariaDB, NetBSD, NGINX, Git, zsh, Thunderbird и Firefox входят в число известных проектов, проверенных Coverity Scan.
В последнем отчете подробно анализируется более 450 миллионов строк программного кода, что является самым большим объемом выборки, изученным в отчете на сегодняшний день. Среди его ключевых выводов обнадеживает тот факт, что второй год подряд как открытый исходный код, так и проприетарный код, сканируемый Coverity, достигли плотности дефектов ниже одной на каждую тысячу строк кода, что является стандартным для отрасли уровнем плотности дефектов и обеспечивает индекс 1,0.
Проприетарный код имеет среднюю плотность дефектов 0,68, открытый исходный код в среднем 0,69, а Linux, описанный Coverity как «эталон качества», достиг 0,59.
Особенно интересным выводом является то, что по мере того, как проекты выходят за рамки миллиона строк кода, происходит переключение в производительности открытого исходного и проприетарного кода. Качество лучше для небольших проектов с открытым исходным кодом с плотностью дефектов.44 в проектах с объемом кода от 500 000 до 1 000 000 строк, чем для более крупных проектов, в которых плотность дефектов выросла до .75. Противоположное явление наблюдается в проприетарном коде, в котором меньшие проекты имели плотность дефектов .98, которая уменьшилась до 0,66, когда они превысили пороговое значение.
Coverity заключает:
Это несоответствие может быть объяснено различной динамикой в группах разработчиков с открытым исходным кодом и проприетарных разработчиков, а также точкой, в которой эти команды реализуют формализованные процессы тестирования разработки.
Это проиллюстрировано в этой части инфографики, обобщающей выводы доклада. Нажмите на него, чтобы увидеть полную инфографику:
Несмотря на низкую плотность дефектов, оставшиеся дефекты являются серьезными. Менее 10% исправленных дефектов затронули открытый исходный код — 20 720 из 229 219 дефектов, но из них 36% были классифицированы как высокий риск, что означает, что они могут представлять значительную угрозу для общего качества и безопасности программного обеспечения, если их не обнаружить. Наиболее распространенными были утечки ресурсов, повреждение памяти и незаконный доступ к памяти, которые трудно обнаружить без автоматизированного анализа кода.
Директор по маркетингу Coverity Дженнифер Джонсон прокомментировала:
«В отчете за этот год был один всеобъемлющий вывод, который превзошел все остальные: тестирование разработки больше не является приятным, это необходимо. Растущее число проектов с открытым исходным кодом и коммерческих проектов, в которых используется статический анализ, подняло планку для всей отрасли. Как мы видим из года в год, дефекты высокого риска продолжают беспокоить организации; проще говоря, если вы не проводите тестирование разработки, вы находитесь в невыгодном положении в конкурентной борьбе.”
Конечно, статический анализ не находит всех ошибок, поэтому эти оценки являются нижней границей для ошибок на тысячу строк.