Исследование: качество кода открытых продуктов продолжает улучшаться
Исследование программного кода, проводимое ежегодной компанией Coverity, в текущем году выявило значительное улучшение качества кода популярных открытых программных продуктов. Исследователи говорят, что за точку отсчета они брали данные прошлогоднего исследования opensource-продуктов.
В процессе анализа Scan Report on Open Source Software 2008 эксперты Coverity проанализировали более 55 млн строк программного кода, входящего в 250 наиболее популярных открытых программных продуктов, таких как ядро Linux, веб-сервер Apache, СУБД MySQL, сетевая система Samba, веб-браузер Firefox, а также интерпретаторы скриптовых языков PHP и Ruby.
"Мы проанализировали исходные коды при помощи нашего статического продукта для исследований Coverity Prevent, который идентифицирует типичные ошибки и дефекты программного обеспечения, а также концепций, используемых при разработке конкретного продукта", - говорит Девид Маквелл, исследователь Coverity. "На сей раз мы можем утверждать что многие программисты действительно внимательно и строго подходят к процессу написания кода", - говорит он.
Исследователи говорят, то в прошлогоднем тестировании было выявлено, что в среднем на 1000 строк кода приходится 1 ошибка, сейчас же этот показатель улучшен на 16%, причем улучшение касается не только безопасности кода, но и его качества работы.
Тем не менее, в Coverity говорят, что в процессе анализа все-таки было обнаружено 8500 программных дефектов, что лучше, чем в прошлом году (>10 000), однако все же не идеально. Наиболее распространенной ошибкой стали неверные указатели и ссылки в коде.
Удивительным исследователи называют и тот факт, что никакой корреляционной зависимости между функциональностью проекта и количеством ошибок в нем нет. Однако в 72% случаев такая зависимость наблюдается между показателями объемa кода - количество ошибок.
Также специалисты отмечают, что наибольшее количество ошибок было зафиксировано в кодах, написанных на C, второе место досталось языку C++.
Комментировать