<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Результаты сравнения качества кода открытых и проприетарных проектов]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=28600&amp;type=atom" />
	<updated>2013-06-08T06:35:06Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=28600</id>
		<entry>
			<title type="html"><![CDATA[Результаты сравнения качества кода открытых и проприетарных проектов]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=349308#p349308" />
			<content type="html"><![CDATA[<p>Компания Coverity, развивающая инструментарий для автоматического анализа кода на предмет наличия проблем безопасности и ошибок <a href="http://www.coverity.com/company/press-releases/read/annual-coverity-scan-report-finds-open-source-and-proprietary-software-quality-better-than-industry-average-for-second-consecutive-year">опубликовала</a> отчёт (<a href="http://wpcme.coverity.com/wp-content/uploads/2012-Coverity-Scan-Report.pdf">PDF</a>, 1 Мб) с результатами изучения 450 млн строк кода, охватывающих 118 наиболее активно разрабатываемых открытых проектов и 256 проприетарных продуктов.</p><p>В среднем уровень дефектов в открытом и закрытом коде оказался примерно на одном уровне - 0.69 против 0.68 ошибок на 1000 строк кода, что значительно ниже требований промышленных стандартов качества, в которых допускается 1 ошибка на 1000 строк кода. В проектах размером от 500 тысяч до 1 млн строк кода открытое ПО почти в два раза опередило проприетарное ПО по качеству, показав коэффициент наличия ошибок 0.44 против 0.98. Для проектов до 100 тысяч строк кода данные показатели составили 0.4 и 0.51, от 100 до 500 тысяч - 0.60 и 0.66. В проектах, размером более 1 млн строк кода более высокое качество наблюдается в проприетарном ПО - коэффициент ошибок в открытом ПО составил 0.75, а в проприетарном - 0.66.</p><p>Что касается типов проблем, выявленных в процессе анализа кода, то 36% всех выявленных проблем относятся к категории ошибок высокой степени опасности. Распределение типов проблем выглядит следующим образом (уже исправлено/ ещё не исправлено):</p><ul><li><p>Проблемы с порядком вычислений (Control Flow Issues) 3,464 / 5,826</p></li><li><p>Разыменование NULL-указателя (Null Pointer Dereferences) 2,724 / 6,846</p></li><li><p>Неинициализированные переменные (Uninitialized Variables) 1,374 / 1,692</p></li><li><p>Повреждения памяти (Memory Corruptions) 2,264 / 3,151</p></li><li><p>Проблемы с обработкой ошибок (Error Handling Issues) 1,432 / 5,461</p></li><li><p>Утечка ресурсов (Resource Leaks) 2,544 / 4,826</p></li><li><p>Проблемы с обработкой целочисленных значений (Integer Handling Issues) 2,512 / 3,791</p></li><li><p>Некорректный доступ к памяти (Memory - Illegal Access) 1,693 / 4,299</p></li><li><p>Небезопасная обработка данных (Insecure Data Handling) 751 / 1,372</p></li><li><p>Некорректные выражения (Incorrect Expression) 766 / 1,421</p></li><li><p>Проблемы с одновременным доступом (Concurrent Access Violations) 175 / 206</p></li><li><p>Ошибки использования API (API Usage Errors) 257 / 359</p></li><li><p>Зависания программ (Program Hangs) 127 / 180</p></li><li><p>Несоответствия иерархии класса (Class Hierarchy Inconsistencies) 4 / 9.</p></li></ul><p>Анализ качества ядра Linux показал, что в выпущенных за 2012 год версиях ядра Linux 3.2-3.7 было зафиксировано 5803 дефектов, при этом уже исправлено 5170 проблем. В 2011 году число дефектов для ядер 2.6.38-3.1 составило 2331, но исправлено было только 1283 проблем. Средний коэффициент наличия ошибок во всех подсистемах ядра составил 0.66 (от 0.32 до 0.9, в зависимости от подсистемы ядра), в то время как 5 лет назад данный коэффициент превышал граничный показатель в 1 ошибку на 1000 строк кода. В новых версиях ядра число ошибок уменьшается, например в ядре 3.8 коэффициент наличия ошибок составляет 0.59.</p><p>Система Coverity Scan была создана в 2006 году по инициативе Министерства национальной безопасности США для обеспечения и усиления безопасности информационной инфраструктуры Соединённых Штатов, в которой используются различные Open Source проекты. В настоящее время программа тестирования <a href="http://scan.coverity.com/">Coverity Scan</a> охватывает <a href="http://scan.coverity.com/all-projects.html">около 300</a> открытых проектов, суммарный размер кода которых превышает 68 млн строк. При автоматическом анализе данного кода было выявлено 47 тысяч дефектов из которых уже исправлено 21 тысяча.</p><p>Источник: <a href="http://www.opennet.ru/opennews/art.shtml?num=36877">http://www.opennet.ru/opennews/art.shtml?num=36877</a></p>]]></content>
			<author>
				<name><![CDATA[Rizado]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23158</uri>
			</author>
			<updated>2013-06-08T06:35:06Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=349308#p349308</id>
		</entry>
</feed>
