Отладку программ - в массы

Отладку программ - в массы

Ученые Калифорнийского университета Беркли и Стэнфордского университета выпустили версии нескольких пакетов ПО open-source, модифицированных таким образом, что отладочная информация по ним собирается в едином центре. Это позволяет пользователям таких программ принимать участие в работе по устранению ошибок.

  Стивен Шанкленд (Stephen Shankland), zdnet.ru
  
Ученые Калифорнийского университета Беркли и Стэнфордского университета выпустили версии нескольких пакетов ПО open-source, модифицированных таким образом, что отладочная информация по ним собирается в едином центре. Это позволяет пользователям таких программ принимать участие в работе по устранению ошибок.

Если проекту HREF="http://www.cs.berkeley.edu/~liblit/sampler/" target="_blank">Cooperative Bug Isolation удастся привлечь достаточное число людей к использованию специальных версий программ, то эти люди, по существу, станут глазами разработчиков, помогая им выявить больше подводных камней в глубинных слоях ПО. «На самом деле, мы стараемся направить часть ресурсов пользователей на практический поиск багов, чтобы обеспечить инженеров той информацией, которая выведет их прямо на эти баги», — пояснил участник проекта, старшекурсник Беркли Бен Либлит.

Microsoft давно применяет программу Dr. Watson для сбора отладочной информации через интернет, но проект Беркли-Стэнфорда накладывает на эту проблему отпечаток подхода open-source. Программисты получают так называемую программу-сэмплер, которую можно добавить к инструментам разработки, чтобы помогать процессу отладки. Когда сэмплер введен в основную программу (это делается при помощи слегка модифицированной версии широко применяемого инструмента программирования GCC), она становится «оборудованной» инструкциями сбора данных в процессе исполнения программы. Например, эти инструкции фиксируют, какой путь выбирает программа каждый раз, когда оказывается на развилке.

Важным условием успеха проекта служит гарантия того, что программа-сэмплер не замедлит работу основной программы; авторы проекта поставили перед собой цель ограничить замедление 5%-ным уровнем. Сэмплер регистрирует информацию эпизодически, по схеме случайной выборки. Каждый раз без исключений регистрируется только факт нормального или аномального завершения работы программы.

Затем отладчик сравнивает два набора данных: решения, принимавшиеся компьютером при правильной работе программы, и решения, принимавшиеся перед сбоем. Хотя в большинстве случаев эти решения оказываются идентичными, есть надежда, что при выявлении разницы отладчик сможет указать подозрительные места в программе. «Трудно сказать, насколько ценной окажется эта информация, но я думаю, что идея сбора статистики по большом числу прогонов очень удачна», — говорит аналитик Illuminata Джонатан Юнис.

Мобилизация пользователей
Теперь к технической и математической задачам добавилась еще одна, которую нужно решить исследователям: как привлечь к сотрудничеству пользователей. «Это социальная проблема, — говорит Либлит. — Удастся ли поставить под ружьё большое число пользователей и сделать информацию действительно представительной?.. Чтобы анализировать статистику, требуется большое число прогонов».

Одним из способов привлечения участников может стать выпуск проектами open-source или даже коммерческими компаниями версий с обратной связью своего ПО. Но пока члены проекта не планируют широкого распространения программ с сэмплерами. «Если удастся привлечь к этому Red Hat, будет просто здорово», — говорит Либлит, признавая, однако, что его мир экспериментальных исследований отличается от корпоративного мира, где программисты ведут себя осторожно.

Пока проект выпустил HREF="http://www.cs.berkeley.edu/~liblit/sampler/downloads/" target="_blank">шесть программ на платформе Linux: систему e-mail Evolution, систему немедленного обмена сообщениями Gaim, электронную таблицу Gnumeric, графический редактор Gimp, музыкальный плеер Rhythmbox и файл-менеджер Nautilus.

В индустрии ПО в целом инженерам очень не хватает отладочных данных, и любое увеличение их количества будет благом, говорит Юнис: «Любые конкретные данные улучшат современное положение вещей, когда таких данных почти нет».

Cooperative Bug Isolation Project — часть проекта Беркли HREF="http://osq.cs.berkeley.edu/" target="_blank">Open Source Quality, начатого в 2000 году.

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!