Компания Coverity подвела итоги двухлетнего исследования, в ходе которого оценивалось качество кода распространенных открытых продуктов.
Данные, представленные в отчете Scan Report on Open Source Software 2008, базируются на информации, полученной в ходе анализа более чем 55 миллионов строк кода, входящего в состав примерно 250 пакетов open source. Эксперты Coverity, в числе прочего, проверяли исходники веб-сервера Apache, ядра операционной системы Linux, браузера Firefox, открытых средств разработки, системы управления базами данных PostgreSQL и пакета Samba, позволяющего использовать Unix- или Linux-серверы в сетях Microsoft. Анализ осуществлялся при помощи решения Coverity Prevent, считающегося одним из самых авторитетных и придирчивых программных инструментов проверки.
Согласно отчету Scan Report on Open Source Software 2008, плотность дефектов (количества ошибок на определенное число строк кода) в продуктах open source за последние два года уменьшилась на 16%. В численном выражении это эквивалентно устранению примерно 8500 багов в программных пакетах, отобранных для исследования.
Результаты, полученные специалистами компании Coverity, также позволяют говорить о том, что корреляционной зависимости между функциональностью того или иного пакета и числом ошибок в его коде нет. Вместе с тем, согласно отчету Scan Report on Open Source Software 2008, количество багов пропорционально размеру кода продукта. В компании Coverity подчеркивают, что на основании информации о размере исходников специалисты могут с 72-процентной точностью предсказать, сколько ошибок в нем будет выявлено в ходе анализа.
Нужно заметить, что улучшение качества кода открытых продуктов отчасти стало результатом реализации программы Vulnerability Discovery and Remediation Open Source Hardening Project, начатой Министерством национальной безопасности Соединенных Штатов в 2006 году. В рамках данной инициативы Стэнфордскому университету, компаниям Symantec и Coverity был выделен грант в размере 1,24 миллиона долларов для поддержки проектов с открытым кодом.
|