Coverity: по качеству открытое ПО не уступает проприетарному

6 март, 2012 - 15:28Елена Дериева

Согласно оценкам Gartner, к 2016 г. открытое ПО будет входить в портфель критически важных для бизнеса приложений на 99% предприятий рейтинга Global 2000 (в 2010 г. на 75%). Принимая во внимание, что проекты с открытым кодом все чаще становятся частью коммерческих, возникает вопрос, каким образом эта тенденция может сказаться на качестве будущих приложений.

С целью повышения защищенности информационной инфраструктуры США, работающей на ПО с открытым кодом еще в 2006 г. по инициативе Министерства государственной безопасности США начал работу проект Coverity Scan. Частная компания Coverity, разработчик инструментов автоматической проверки безопасности и качества приложений на основе сканирования и анализа исходного кода, выполняет масштабное тестирование, в том числе, важнейших для открытого сообщества продуктов: Android, Linux и Apache, PHP, Firefox.

Тестирование прошлого года, результаты которого сведены в недавно опубликованном «Отчете корректности программного обеспечения с открытым кодом 2011», позволило аналитикам прийти к важному для разработчиков и, возможно, не слишком ожидаемому для крупных софтверных компаний выводу: времена, когда открытый код уступал по качеству проприетарному безвозвратно ушли. Используемые во многих проектах современные инструменты тестирования и управления качеством позволяют создавать открытые решения, в которых дефектов и потенциальных уязвимостей обнаруживается не больше, чем у ведущих вендоров. И вообще, подчеркивают эксперты, такой показатель как плотность дефектов (число проблемных точек на тысяче строк кода) в большой степени зависит от размера базы исходных кодов, числа разработчиков и используемых средств тестирования, а не от того, по какой модели создается ПО.

В 2011 г. Coverity проанализировала 45 проектов и более чем 37 млн строк кода, причем 32 млн принадлежит проектам, которые изучались и в предыдущие годы. При среднем размере приложения в 832 тыс строк кода, наибольшее число программ находится в диапазоне 100-500 тыс строк, и только 2 продукта достигали 7 млн строк. По результатам годового тестирования, специалисты Coverity пришли к заключению, что качество активных проектов open source выше, чем в среднем по индустрии: в проприетарных базах исходных текстов средняя плотность дефектов составляет 0,64%, в среднем по наиболее популярным приложениям с открытым кодом — 0,45%, а, например, в Linux 2.6 (содержащем около 7 млн строк) — 0,62%. В таких областях как медоборудование, автомобили, энергетика, промышленная автоматизация, аэрокосмическая промышленность число выявляемых в ПО ошибок существенно меньше средних показателей (плотность дефектов около 0,32%), в остальных — 0,68%. Впрочем, подчеркивают в Coverity, такое положение вещей можно легко объяснить — те, кто создает ПО для областей, связанных с личной безопасностью, раньше чем остальные разработчики внедряют инструменты раннего выявления дефектов и управления качеством. Впрочем, показатели дефектов коррелируют и с объемом проекта, и с числом задействованных разработчиков.

Правда, даже получив отчеты о присутствии дефектов в программе, разработчики не всегда торопятся их исправить: за прошлый год было исправлено чуть больше 6 тыс дефектов, в то время как более 16 тыс остались в приложениях. Кстати, среди последних немало таких, которые оказывают большое влияние на работоспособность программы: неинициализированные переменные, ошибки памяти, несанкционированный доступ к памяти, пр.

В числе других знаковых трендов эксперты отмечают:

— открытые проекты всех размеров могут успешно внедрять методики тестирования в процессе разработки;

— открытые проекты, которые внедрили системы статистического анализа и тестирования в процессе разработки, постоянно повышают качество;

— проприетарные базы исходных текстов, при создании которых использовались средства автоматизированного тестирования, имеют качество выше среднего в целом по индустрии ПО;

— open source базы исходных текстов по качеству сравнимы с проприетарными, в особенности, если речь идет о базах одного размера.

Coverity по качеству открытое ПО не уступает проприетарному

Высокорисковые дефекты существенно влияют на отказы приложений, стабильность их работы и производительность. Они в значительной степени зависят от типа ПО и размера проекта