Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Нахождение и исправление ошибок при разработке открытого ПО

Естественно, что открытое программное обеспечение, как и всякое другое, содержит ошибки. Но работа над ними организована отлично от проприетарного ПО. Исследователи открытого ПО Себастьян Эльбаум и Луюнь Джао после изучения около двухсот проектов пришли к выводу о том, что при успешной разработке открытого ПО часто действует принцип: "выпускай релизы быстро и часто" вместо того, чтобы досконально отлаживать промежуточные версии [1]. В результате частого выпуска промежуточных версий код открытого ПО непрерывно совершенствуется множеством разработчиков, предлагающих усовершенствования и исправления.

Закон Линуса (сформулированный Рэймондом): "При достаточном количестве глаз, ошибки выплывают на поверхность", — предполагает участие большого числа программистов, без которых основная группа разработчиков буквально завалилась бы работой по тестированию кода и исправлению ошибок. Это подтверждает необходимость устойчивой модели сообщества разработчиков для создания качественного открытого программного обеспечения.

Исследование [2] показало, что:

  • не более 20% разработчиков открытого ПО составляют планы тестирования;
  • только 40% проектов используют специальный инструментарий для тестирования;
  • менее 50% открытых проектов используют инструменты для "покрытия кода".

Но хотя при разработке открытого ПО не следуют классическим структурированным методам тестирования, это не мешает разработке качественных программ. Тестирование производится специфическими для открытого ПО способами.

Согласно данным исследования Москуса [3] к тестированию открытой системы привлекаются ее пользователи, которые делают это очень тщательно. Существование большого круга опытных пользователей, присылающих информацию об ошибках, приобретает огромное значение. Кроме того, такое расклад гарантирует тестирование ПО на многих платформах. Существует мнение, что открытое ПО имеет низкую плотность ошибок по сравнению с проприетарным именно потому, что тестируется более масштабно и тщательно.

Впрочем, не во всех открытых проектах тестирование отдается на откуп пользователей. В проекте Mozilla имеет место жесткий процесс проверки качества кода и имеются специальные тестовые группы [1]. В этом проекте определяющее значение получили автоматические регрессионные тесты, которые запускались каждую ночь, чтобы гарантировать надежность системы для Windows, Linux и Mac OS.

Выбор методологии тестирования сильно зависит от опыта и финансирования разработчиков. Формальные методы и автоматизация тестирования являются дорогостоящим удовольствием. Некоторые известные открытые проекты могут их себе позволить, но большинство — нет, и привлечение пользователей остается для них единственным вариантом тестирования ПО. Если же финансирование позволяет, то имеются основания объединить методики: ручное структурное тестирование, автоматические регрессионные тесты и пользовательское неформальное тестирование.

Пока нет формальных исследований, сравнивающих затраты на тестирование и обеспечение качества в финансируемых открытых проектах и в проектах, выполняемых бесплатно, а также в открытых и проприетарных продуктах. Не ясно, какой из этих подходов обеспечивает более высокое качество. Но Бартон Миллер со своими коллегами считают, что продукты, которые разрабатываются и тестируются бесплатно добровольцами, могут быть более качественными, чем проприетарные продукты [4].

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

  1. C. Reis, R. de Mattos Fortes, An Overview of the Software Engineering Process and Tools in the Mozilla Project. Proc. Open Source Software Development Workshop, C. Gacek, B. Arief, eds., Dependability Interdisciplinary Research Collaboration, 2002.
  2. L. Zhao, S. Elbaum, A Survey on Quality Related Activities in Open Source. Software Eng. Notes, vol. 25, no. 3, 2000.
  3. A. Mockus, R. Fielding, J. Herbsleb, A Case Study of Open Source Software Development: The Apache Server. Proc. 22nd Int’l Conf. Software Eng., IEEE CS Press, 2000.
  4. B. Miller et al., Fuzz Revisited: A Re-Examination of the Reliability of UNIX Utilities and Services, tech. report, Computer Sciences Dept., Univ. of Wisconsin, 2000.
Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2010-03-22 18:52:16

Метки материала: по, программное обеспечение, open source, открытое по, проприетарное по, разработка программ

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.