АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Почитай

Читайте также:
  1. Если вам не нравится Маркс, то почитайте Гегеля.
  2. ПОЧИТАЙ МАТЬ СВОЮ

Обзор систем отслеживания ошибок

Skip to end of sidebar

Blog Posts: Март 2010

Teamlead перешел на Confluence 3.2

Обзор систем отслеживания ошибок

Вышла новая версия Confluence 3.2

DocsVision 4.5 сертифицируется по техническому и экспортному контролю (ФСТЭК)

Весеннее обновление DocsVision с Teamlead бесплатно!

Запущен сервис Teamlead LiveChat

Опубликован официальный релиз DocsVision 4.5

<< Февраль 2010

Апрель 2010 >>

Go to start of sidebar

Skip to end of metadata

Added by Антон Колин (Teamlead), last edited by Антон Колин (Teamlead) on апр 07, 2010 (view change)

show comment

Go to start of metadata

 

Самые большие ошибки, подобно толстым канатам, часто состоят из множества мелких. Возьмите канат и разделите его на нити, из которых он состоит, и вы сможете легко порвать их одну за другой. Вы подумаете: "Вот и все, что было!". Но скрутите эти нити вместе, и вы получите нечто потрясающее.

 

Введение

 

Идеальных программ не существует. Все люди грешны и все программисты делают ошибки в своих проектах. Даже идеально протестированная программа может дать сбой. Почему? Дело в том, что наши программы живут в окружении других программ, написанных другими программистами. Причем сейчас не идет речь о совместимости с ОС и аппаратными ресурсами. Вам сильно повезло, если вы знаете, с какими программами (интерфейсами) предстоит взаимодействовать вашему творению. Но ошибки могут быть и здесь.

 

Например, я сталкивался с ситуацией, когда моя программа, которую я много раз тестировал и прогонял по всевозможным юнит тестам, при переезде на другой сервер начинала работать совершенно неправильно. В чем может быть проблема? Во-первых, на сервере стояла более новая ОС, но для моей программы это было не страшно. Выяснилось, что ошибка происходит на несколько звеньев раньше в процессе вычислений. И скрипт, написанный другим программистом под более старую версию ОС, выдавал некорректные данные для моей программы. Это пример показывает, что ошибки в программе могут вызываться «внешним миром», в котором она живет. Однако мне повезло, ведь я прекрасно знал, что может влиять на работу программы. Ошибку я нашел достаточно быстро, т.к. мне хватило лишь проверки входных данных, чтобы узнать место в системе, где появился сбой.

 

Но бывает иначе. Ошибка, похожа на мину замедленного действия, которая ждет своего часа и находится в самых неожиданных местах. Достаточно вспомнить пример с выходом Service pack 3 для Windows XP. У небольшой группы пользователей это обновление ОС вызывало постоянную перезагрузку компьютера. Выяснилось, что все пострадавшие были владельцами компьютеров Hewlett-Packard с процессором AMD. Бывший менеджер по политике безопасности Microsoft Джеспер Йоханссон в своем блоге высказал возможные причины ошибки. Он предположил, что HP использовала при первоначальной инсталляции один и тот же образ как для компьютеров на базе Intel, так и на базе AMD. В результате получилось, что в обоих случаях за управление питанием компьютера отвечает файл intelppm.sys, однако Microsoft создавала этот файл для работы на процессорах Intel, для процессоров AMD служит файл amdk8.sys. Это показывает, какими изощренными могут быть сбои, когда программный продукт предназначен для огромного числа пользователей. И ошибка не всегда может заключаться в программе.

 

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

 

 

Задача регистрации и обработки данных об ошибках, возникших при работе ПО, кажется простой лишь на первый взгляд. Дело в том, что еще до запуска сам программист может находить пачками ошибки в работе своей программы. От версии к версии количество известных ошибок может уменьшаться или увеличиваться. «Старые ошибки убрали, добавили новые», так звучит один их старых анекдотов о программистах. Для контроля ошибок был создан замечательный продукт - система отслеживания ошибок.

 

Что это такое?

 

Система отслеживания ошибок (англ. bug tracking system) — прикладная программа, разработанная с целью помочь разработчикам программного обеспечения (программистам, тестировщикам и др.) учитывать и контролировать ошибки (баги), найденные в программах, а также следить за процессом устранения этих ошибок. Так описаны в Wikipedia bug tracking system (далее BTS).

 

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

 

Можно привести пример Энди Ханта, автора книги «Программист-прагматик»: он разрабатывал графический редактор, и в ходе разработки появилась специфическая ошибка, которую обнаружил тестировщик. Программа «падала» когда тестировщик проводил кистью прямую линию. Программист утверждал, что программа работает замечательно и у него ошибка не проявляется. Несколько дней между тестером и программистом продолжался спор. Наконец, все собрались в одной комнате, тестировщик провел линию от ВЕРХНЕГО ПРАВОГО угла до НИЖНЕГО ЛЕВОГО. Программа зависла. Программист охнул и признался, что он проводил черту только из НИЖНЕГО ЛЕВОГО к ВЕРХНЕМУ ПРАВОМУ углу. Этот пример иллюстрирует, насколько важны подробные отчеты и сбор полной информации об ошибках.

 

Как правило, BTS позволяет хранить информацию об ошибке в следующем виде:

кто сообщил о проблеме;

дата и время, когда была обнаружена проблема;

серьёзность проблемы;

описание неправильного поведения программы;

кто занимается устранением проблемы;

состояние ошибки.

 

Это минимальный набор требований к БД BTS, на самом же деле многие системы багтрэкинга позволяют вести намного более подробный учет ошибок. В чем то, они напоминают системы управления проектами. А многие из них интегрированы с такими системами.

 

Необходимо заметить, что системы отслеживания ошибок могут быть полезны не только для программистов. Отчеты о «работе над ошибками» могут использовать менеджеры проекта. Фактически такие отчеты позволяют судить о производительности программистов, при работе по улучшению работы ПО. При обработке отчетов необходимо учитывать приоритет ошибок и сложность их устранения. Менеджер должен понимать, что некоторые ошибки могут быть трудно устранимы, в силу архитектуры системы. Бессмысленно требовать скорейшего устранения ошибок в системных модулях: непродуманные действия по устранению одной ошибки могут породить сотни других ошибок.

 

Обзор

 

В данном обзоре я рассмотрю несколько наиболее распространенных систем отслеживания ошибок:

BUGS

Bugzilla

JIRA

Trac

Track Studio

 

BUGS - the Bug Genie

 

www.thebuggenie.com

 

Это свободная система отслеживания ошибок, распространяемая по Mozilla Public License 1.1. Для управления предоставляется веб-интерфейс. Система кроссплатформенная, написана на PHP. Проект достаточно успешно развивается, последняя версия BUGS вышла в марте 2008.

 

BUGS предоставляет базовый набор инструментов для регистрации ошибок, расстановки приоритетов, формировании задач для разработчиков. Эта система позволяет оповещать всех разработчиков, которые могут быть связаны с ошибкой. Система отслеживает ошибки в зависимости от версии и конфигурации ПО. Все ошибки сохраняются в единую БД, представляющую собой базу знаний об ошибках в проекте. Далее по этой БД можно формировать подробные отчеты. BUGS поддерживает возможность устанавливать blocker bugs - ошибки, которые могут блокировать выпуск релиза.

 

В последних версиях разработчики BUGS улучшили формат отчетов. Что особенно приятно: BUGS обладает user-friendly интерфейсом. Для работы с этой BTS вам не потребуется копаться в горах мануалов.

 

Недостаток BUGS - отсутствие распределенной многопользовательской работы. Невозможно работать удаленно с несколькими серверами или несколькими БД. В силу этого можно рекомендовать, BUGS для небольших команд разработчиков. Благо BUGS это open source продукт и требует для своей работы стандартный набор: Apache, PHP, MySQL.

 

Bugzilla

 

www.bugzilla.org

 

Bugzilla – это одна из наиболее популярных систем багтрэкинга. В 1998 году Netscape представила первый релиз этой системы. Bugzilla является свободным ПО и распространяется по Mozilla Public License. Собственно, разработку этой системы сейчас ведет Mozilla Foundation.

 

Bugzilla пользуются более 800 (!) компаний по всему миру. Среди них встречаются такие гиганты как NASA, Id Software, Red Hat, Novell и другие. Почему же эта система пользуется такой популярностью?

 

В Bugzilla нет той огромной функциональности, присущей Enterprise BTS. Однако эта система включает достаточно большой набор функций, которые необходимы для контроля ошибок в небольшом и среднем проекте.

 

Разработчик Bugzilla Max Kanat-Alexander в своем блоге указал, что одна из системных проблем Bugzilla – это выбор Perl в качестве языка программирования. Макс указывает, что принцип Perl TMTOWTDI(There More Than One Way To Do It) не всегда помогает в разработке, т.к. позволяет быстро реализовывать некоторые вещи, представляющие не всегда лучший выход из проблемы. Также Макс говорит о проблеме «читабельности» кода на Perl, которая усложняет поддержку перловых программ. Кроме того, программы, написанные на Perl, далеко не лучшим образом работают с памятью. Подробнее со всеми замечаниями можно ознакомиться здесь: http://avatraxiom.livejournal.com/58084.html.

 

Возвращаясь к обзору Bugzilla, отмечу, что, несмотря на все проблемы, Bugzilla работает достаточно устойчиво и предоставляет разработчикам неплохой базовый функционал:

отслеживать ошибки и изменения кода

общаться с членами команды

размещать и описывать патчи

производить контроль качества продуктов

 

Система предоставляет отличную базу знаний для ошибок, по которой можно весьма легко формировать отчеты. Bugzilla имеет стандартный веб-интерфейс.

 

С помощью Bugzilla достаточно просто управлять пользователями, обмениваться сообщениями с другими разработчиками внутри системы. Очень понравилось, что Bugzilla умеет визуализировать информацию: менеджерам очень понравятся всевозможные таблицы, графики и диаграммы, вид которых можно настраивать.

 

Bugzilla можно интегрировать с другими программами, для управления проектами:

CVS

Perforce SCM

Subversion

Tinderbox/Tinderbox2

 

К недостаткам Bugzilla можно отнести сложность установки, зависимость от модулей Perl, сложность администрирования и несколько неприглядный интерфейс. Bugzilla для работы требует Apache, Perl и базу MySQL.

 

Систему Bugzilla можно рекомендовать достаточно широкому кругу пользователей, которых устроит стандартный набор функций. Этот проект активно развивается (последняя версия вышла в мае 2008), так что скоро можно будет ожидать добавления новых функций, которые сделают систему удобнее для использования. Bugzilla проверена временем, а это важный аргумент в пользу этой системы.

 

JIRA

 

www.atlassian.com/software/jira/

 

Систему отслеживания ошибок JIRA называют «bug tracking системой номер один». Попробуем разобраться, почему эта система от компании Atlassian заслужила такого звания.

 

Ответ будет простым: JIRA обладает на сегодняшний день наиболее широкой функциональностью среди систем отслеживания ошибок. В целом JIRA повторяет архитектуру Bugzilla. Процесс баг трэкинга следующий:

 

Создаваясь, сообщение обязательно имеет Assignie – ответственного, адресата (если такового не указать система в зависимости от настроек конкретного проекта либо автоматом «направит» сообщение, то есть адресует его, лидеру проекта (указывается при создании проекта), либо укажет необходимость выбрать адресата, если проект настроен так, чтобы сообщения не могли быть безадресными. «Получатель» может перенаправить его далее или вернуть писавшему ("петля разработчик-тестировщик").

 

Каждому Issue можно поставить приоритет важности, адресовать на себя, добавить комментарий. При чём как общий комментарий, видимый всеми, так и комментарий направленный одному человеку – очень приятная фишка, когда ведущий разработчик переадресует сообщение своему коллеге, указывая какую-то техническую подробность, которая нужна только ему.

 

Сообщения можно установить статус IN PROGRESS – в начале работы над ним, и соответственно указав, когда работы над ним закончены. Особо хочется указать на работу с версиями и статусами с точки зрения просмотра списков сообщений. Система поддерживает возможность создания персонифицированных сообщений.

 

Аккаунты пользователей управляются как администратором, так и самим пользователем. Пользователи могут быть объединены в группы – то есть совершенно привычная структура. При чём как отдельному пользователю так и группе можно запретить/разрешить одно вполне конкретное действие (к примеру такая экзотика, как запрет на удаление аттачей и создание комментариев для менеджеров из других проектов).

 

JIRA идеально подходит для крупных проектов, с большим штатом тестировщиков. Используя JIRA можно работать под различными ОС, создавать и вести «схемы безопасности» для каждого из проектов. То есть можем создать группу пользователей на конкретный проект, раздать на этот же проект права, или использовать стандартную схему безопасности на этот проект. JIRA можно успешно интегрировать с subversion.

 

Эта BTS обладает одним существенным недостатком: она платная. Стоимость установки JIRA на один сервер начинается от $1200. Однако, это не такая высокая цена для компании, которая способна оплатить штат тестировщиков. JIRA можно смело рекомендовать разработчикам больших распределенных проектов.

 

Trac

 

trac.edgewall.org

 

Trac – это открытое ПО, являющиеся одновременно инструментом для управления проектом и системой отслеживания ошибок. Проект Trac разрабатывается компанией Edgewall Software и распространяется по Modified BSD license.

 

Интерфейс Trac фактически представляет wiki. Система использует в работе SVN репозиторий, так что использовать его имеет смысл только вместе с svn. Что же умеет Trac?

разделение проекта на этапы (milestones)

контроль выполнения (roadmap)

все изменения по проекту заносятся на временную шкалу (timeline)

поддержка RSS

 

Отчеты об ошибках можно заносить в тикеты. Среди прочего Trac позволяет: учет ошибок, замечаний, пожеланий с возможностью фильтрации и занесение соответственно в milestone, roadmap. В Trac реализован модуль просмотра репозитория, это существенно облегчает работу с SVN.

 

Trac был написан на Python и является кроссплатформенной системой. Эту систему можно рекомендовать широкому кругу разработчиков, которые хотят внедрить комплексную систему управления проектами, включающую отслеживание ошибок.

 

 

Track Studio

 

www.trackstudio.ru

 

Track Studio я включил в этот обзор, т.к. этот проект разработан российской компанией «ГРАН». Всегда интересно сравнивать зарубежные и российские разработки. Тем более, когда наш продукт ни в чем не уступает западным аналогам. Track Studio написан на Java и работает на UNIX и Windows NT. Как и Trac это не классическая система отслеживания ошибок, а комплексная система позволяющая управлять проектами и требованиями к ПО.

 

В отличие от JIRA, оптимизированной для работы с внешними клиентами, Track Studio позволяет эффективно организовать работу внутри компании (например, обработку обращений клиентов). Track Studio позволяет эффективно управлять тысячами проектов: проекты можно организовывать в иерархию, можно делать поиск проектов по параметрам, к проектам можно прикладывать файлы (например, с техническим заданием), для проектов можно создавать пользовательские поля (дата релиза, клиент, номер договора) и многое другое. Одно из преимуществ состоит в том, что Track Studio хорошо поддерживает БД Oracle. В ORACLE нельзя создать текстовые поля длиннее 4000 байт, однако описания проблем и различные служебные данные в JIRA и Track Studio могут достигать десятков килобайт. Track Studio разбивает длинные текстовые поля на куски по 1800 символов, которые хранит отдельными записями в специальной таблице. Этот способ является быстрым, простым в реализации и очень удобным в использовании.

 

Какие недостатки у Track Studio? В Track Studio сложно осуществлять интеграцию с другими средами разработки. Кроме того у программы достаточно сложный интерфейс.

 

Цены на Track Studio начинаются от $500, что является существенным преимуществом по сравнению с JIRA. Эту систему имеет смысл использовать при разработке крупных проектов, когда возникает потребность задействовать все фичи, входящие в состав Track Studio.

 

Сравнительный анализ

Feature

BUGS

Bugzilla

JIRA (std)

Trac

Track Studio

 

Кроссплатформеность

+

+

+

+

+

 

Язык

PHP

Perl

Java

Python

Java

 

Лицензия

MPL

MPL

-

BSD

-

 

Распределенная работа

-

+

+

+

+

 

Построение отчетов

+

+

+

+

+

 

Поддержка RSS оповещений

-

+

+

+

+

 

Поддержка e-mail оповещений

+

+

+

+

+

 

Интеграция с MS Exel

-

-

+

+

+

 

Управление проектами

-

-

-

+

+

 

Ведение подзадач

-

-

-

+

+

 

Интеграция с CVS/SVN

-

+

+

+

+

 

Поддержка attach файлов

+

+

+

+

+

 

Схемы безопасности

-

-

+

+

+

 

База знаний ошибок

+

+

+

+

+

 

Удобный интерфейс

+

-

+

+

-

 

Поддержка русского языка

+

+

+

+

+

 

Стоимость

free

free

$1200

free

$500

 

 

Выводы

 

Если вы еще не используете систему отслеживания ошибок – вам стоит о ней серьезно задуматься, т.к. в первую очередь это увеличивает производительность программистов, систематизирует и автоматизирует борьбу с ошибками. Если вы программист-фрилансер попробуйте использовать бесплатную программу BUGS. Средним проектам наверняка пригодится Bugzilla, по крайней мере она удовлетворяет большинству требований к BTS. Крупным командам разработчиков, которые взаимодействуют с отделами тестирования и поддержки конечных пользователей, понадобится JIRA. Ну а если кроме багтрекинга вы хотите вести учет продвижения разработки проекта и руководить задачами программистов, то есть смысл выбрать систему подобную Trac или Track Studio.

 

Но в любом случае, начинайте использовать систему отслеживания ошибок! Если вы программист, вы оцените, сколько времени вы будете экономить в борьбе с ошибками, используя BTS. Если же вы менеджер ИТ проекта BTS поможет вам наиболее полно контролировать процесс разработки ПО.


1 | 2 | 3 | 4 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.03 сек.)