Версия 12:55, 4 августа 2008
Mantis — свободно распространяемая система отслеживания ошибок в программных продуктах (bugtracker). Обеспечивает взаимодействие разработчиков с пользователями, позволяет пользователям заводить сообщения об ошибках и отслеживать дальнейший процесс работы над ними со стороны разработчиков.
Система имеет гибкие возможности конфигурирования, что позволяет настраивать её не только для работы над программными продуктами, но и в качестве системы учёта заявок для helpdesk.
Может также упоминаться (и с некоторыми оговорками использоватся) как:
- «система учета заданий»
- «система контроля дел»
- «система регистрации инцидентов»
- «система управления требованиями» и т. п.
Система построена по принципу «клиент-сервер», поэтому не требует для работы установки специального ПО и работает через веб-браузер.
Преимущества и возможности
Некоторые преимущества Mantis:
- Бесплатная система;
- Легкость инсталляции;
- Веб-интерфейс и платформонезависимость;
- Многоязычность;
- Интеграция с почтовой системой;
- Поиск;
- Система фильтров/запросов;
- Настраиваемость/расширяемость (ядро, модули, кастомизация);
Принципы интерфейса
- Быстрый доступ к основным сценариям использования;
- Простая навигация;
- Сложные функции доступны, но не «нагружают интерфейс»;
- «Резиновая верстка» веб-интерфейса: адаптируется к размеру окна броузера;
- Минимум графики и ненужных «бантиков».
- Нет фреймов, анимации и Javascript.
Формат версий системы
Версии Mantis нумеруются в распространенном формате
«major.minor.micro» (например 0.15.8), где
- Major
- Нумеруют значительные изменения в ядре системы.
- Minor
- Добавление нового функционала или значительные правки старого.
- Micro
- Исправления багов или добавление очень мелких «фич».
В данный момент мы используем версию 1.0.6.
Основные понятия
Ключевым понятием системы (как и во всех системах-трекерах) является вопрос («Issue») — некоторое задание, вопрос, запрос, обращение, рекламация по поводу ошибки в системе, или просто сообщение, требующее обратной связи, и назначение системы — регистрация и предоставление заинтересованным лицам целостной информации о состоянии этого «вопроса», включая интерфейсы редактирования, запроса и поиска, механизмы почтового и RSS-оповещений.
Сущность «Вопрос» имеет набор атрибутов, работа с которыми — редактирование и запросы — является основными сценариями использования Mantis.
Опишем эти атрибуты.
Атрибуты вопроса
«Инициатор» («Reporter»)
Кто создал/поставил вопрос. Теоретически поле редактируемое, но злоупотреблять редактированием нежелательно (только для исправления ошибки).
«Видимость» («View Status»)
Видимость вопроса («общая» / «ограниченная»).
Необходим для обеспечения конфиденциальности серьезных вопросов.
«Категория» («Category»)
Функциональная или организационная часть проекта, к которой относится поставленный вопрос (задавать категорию не обязательно).
Близким аналогом «категории» Mantis является «Component» Bugzilla (но не «Category» из Bugzilla).
«Воспроизводимость» («Reproducibility»)
- «всегда» («always»);
- «иногда» («sometimes»);
- «произвольно» ("«random»);
- «не проверялась» («have not tried»);
- «не воспроизводится» («unable to reproduce»);
- «неприменима» («N/A»).
«Состояние» («Status»)
- «новый»(«new»)
- новый вопрос;
- «нужен отклик» («feedback»)
- требуется дополнительная информация, инициаторам вопроса нужно проявить внимание.
- «рассмотрен» («acknowledged»)
- с вопросом ознакомились, но подтверждения (бага) еще не было, ответственный не назначен.
- «подтвержден» («confirmed»)
- confirmed and reproducible (typically set by an Updater or other Developer)
- «назначен» («assigned»)
- вопрос назначен разработчику;
- «отработан» («resolved»)
- вопрос вроде решен (баг вроде зафиксен или по крайней мере сделан патч), ожидается подтверждение что все хорошо;
- «закрыт» («closed»)
- Вопрос закрыт.
«Серьезность» («Severity»)
- «блокада» («block»)
- блокирует большую часть работы в проекте;
- «авария» («crash»)
- приводит к «падению» приложения (или даже операционной системы);
- «большая» («major»)
- баг, важность большая;
- «малая» («minor»)
- баг, но малая важность;
- «неудобство» («tweak»)
- неудобство в использовании — нужна «подгонка»;
- «текст/опечатка» («text»)
- небольшая текстовая ошибка/опечатка;
- «тривиальная» («trivial»)
- мелкие придирки;
- «новведение» («feature»)
- запрос нового функционала.
«Платформа» («Platform»)
«Операционная система» («OS»)
«Версия ОС» («OS Version»)
«Трудоемкость» («Projection»)
«Примерный срок» («ETA»)
«Сборка продукта» («Product Build»)
«Настраиваемые поля» («Custom Fields»)
Настраиваемые поля — это дополнительные к основным, атрибуты вопроса,
которых можно «активировать» в отдельных проектах.
Интерфейс заведение и редактирования доступен для администраторов через «Управление/управление настраиваемыми полями» («Manage/manage custom fields»)
Атрибуты настраиваемого поля:
- «Название» («Name»)
- «Тип» («Type»)
- Ограничения
-
- «Допустимые значения» («Possible Values»)
- «Значение по умолчанию» («Default Value»)
- «Регулярное выражение» («Regular Expression»): Если задано, то используется регулярное выражение для валидации вводимого значения. Например, проверка на целое число: «/^-?([0-9])*$/».
- Ограничения на длину поля
-
- «Наименьшая длина» («Min. Length»):
- «Наибольшая длина» («Max. Length»):
- Значение «0» не проверяется!
- Необходимые права на чтение и запись
-
- «Доступ на чтение» («Read Access»)
- «Доступ на запись» («Write Access»)
- Как и где показывать поле
-
- «Показывать только на расширенных страницах» («Display Only On Advanced Page»);
- «Показывать при создании вопроса» («Display When Reporting Issues»);
- «Показывать при изменении вопроса» («Display When Updating Issues»):;
- «Показывать при отработке» («Display When Resolving Issues»);
- «Показывать при закрытии» («Display When Closing Issues»);
- «Требовать при создании нового вопроса» («Required On Report»);
- «Требовать при изменении» («Required On Update»);
- «Требовать при отработке» («Required On Resolve»);
- «Требовать при закрытии» («Required On Close»).
Типы полей:
- «строка» («string»)
- Текстовая строка длиной до 255 символов
- «e-mail»
- строка email-адреса, до 255 символов длиной. При показе, гиперлинкуется «mailto»-ссылкой.
- «целое» («numeric»)
-
- «вещественное» («float»)
-
- «перечисление» («enumeration»)
- Список текстовых строк, разделенный символом «|». Значение по умолчанию, если задано, должно быть среди элементов этого списка. Показывается как выпадающий список.
- «список» («list»)
- Аналогично типу «перечисление», только показывается как список выбора (не выпадающий).
- «список с множественным выбором» («multiselection list»)
- Аналогично типу «список», но можно выбирать несколько элементов списка (или ни один).
- «галочка» («checkbox»)
- Аналогично типу «список с множественным выбором», только вместо несколько значений выбираются с помощью галочек на чекбоксах, а не на списке выбора.
- «Дата» («Date»)
- Дата, показывается в виде выпадающих меню для дня, месяца и года. Значение по умолчанию должно быть в формате «yyyy-mm-dd».
Если вы делаете поле обязательным («Требовать при …»), то лучше убрать галочку с «Показывать только на расширенных страницах», иначе пользователи будут постоянно страдать от ошибок валидации («требуемое поле не заполнено» и т. п.).
Проект
Сущность «Проект» предназначена для тематической группировки вопросов, и регулирования доступа к ним пользователей.
Он соответствует, например, программному продукту или просто направлению разработки (или иной деятельности).
Аналогом «проекта» Mantis является «Product» Bugzilla.
Интерфейс управления проектами доступен пользователям с достаточными полномочиями (администраторам), по вкладкам «Управление/Управление проектами» («Manage/manage projects»).
Атрибуты проекта следующие:
- «Название проекта» («Project Name»)
- Заметим, может изменяться после создания.
- «Состояние» («Status»)
-
- «разрабатываемый» («development»)
- «выпущенный» («release»)
- «стабильный» («stable»)
- «устаревший» («obsolete»)
- «Активна» («Enabled»)
- Ставить новые вопросы можно только в активный проект. Править и добавлять комментарии можно и в вопросах неактивных проектов.
- «Видимость» («View Status»)
-
- «общая» («public»): Проекты видны всем пользователям системы.
- «ограниченная» («private»): Такие проекты видны только пользователям выбранным для этого проекта, или имеющим достаточные привилегии («администраторы»), чтобы видеть «private» проекты.
- «Путь для загружаемых файлов» («Upload File Path»)
- Если Mantis настроен, чтобы хранить аттачменты и прочие BLOB-объекты на файловой системе (что предпочтительней, если ожидается, что их размер будет больше 2Mb), то здесь нужно задать относительный (по отношению к инсталляции Mantis) путь к каталогу для загружаемых файлов. Можно держать все файлы в одном каталоге, можно каталог для аттачментов делать свой, для каждого проекта отдельно. Указываемый каталог должен быть создан администратором заранее, и должны быть выданы права на запись и чтение для пользователя, из под которого запущен Mantis.
- «Подробности» («Description»)
- Описание проекта.
Внутри проекта можно заводить:
- Подпроекты: обладают всей атрибутикой обычного проекта, и в общем, речь идет не о «вложении» одного проекта в другой, а об отношении «подчиненности». Например, проект «ERP-Документация» может быть общим подпроектом для нескольких проектов разработки различных ERP-подсистем;
- Категории: функциональное или организационное подразделение проекта. В каждой категории можно указать ответственного пользователя. Близким аналогом «категории» Mantis является «Component» Bugzilla (но не «Category» из Bugzilla).
- Версии: например версии программного продукта. После заведения, для каждого вопроса-бага, можно указывать, в какой версии он возник, а в какой — исправлен.
- «Настраиваемые поля» («Custom Fields») — все вопросы проекта могут обрести дополнительные атрибуты, из заведенных ранее на уровне самой системы. Например, если Mantis используется только как внешняя bug-tracking система, а управление заданиями на разработку в компании ведется в другой системе (Jira, Bugzilla или просто другая инсталляция Mantis), то можно завести атрибут «Task ID», куда прописывать идентификатор задачи из внутренней системы.
Также в проект можно назначить группу пользователей (а если проект «с ограниченной видимостью» — то и нужно),
причем можно индивидуально настроить их права в этом проекте (либо установив их на уровне прав по умолчанию в системе).
Основные страницы веб-интерфейса
«Главная» («Main»)
Название «главная» видимо чисто историческое, раньше это была первая страница, на которую пользователь попадал после логина в систему.
На этой страниц публикуются как специфичные для отдельного проекта новости, так и общие для всей системы (См. описание #«изменение новостей» («Edit News»). Количество публикуемых новостей (наиболее свежих) настраивается в системе, остальные новости доступны через интерфейс
просмотра архива: ссылка «Архивы» («Archives»).
Разобраться с «RSS».
«Моя сводка» («My View»)
«Список вопросов» («View Issues»)
Основное окно для выбора и просмотра списка (таблицы) вопросов.
Для выбора подмножества вопросов применяются так называемые «Фильтры»,
являющиеся по сути «QBE»-запросами по всем атрибутам.
Можно использовать заранее приготовленные личные или общие хранимые фильтры,
либо создать новый фильтр непосредственно на этой странице — интерфейс построения запроса показывается над таблицей вопросов (чтобы показать интерфейс надо нажать на «плюсик» около поля «Поиск:» («Search:»)). Само поле «Поиск:» («Search:») используется для поиска ключевого слова в атрибутах «Суть»/ («Summary»), в описании, в идентификаторе (в комментариях не ищет).
Список выбранных вопросов показывается в виде таблицы, где набор столбцов фиксирован в следующем порядке:
- «P»
- Приоритет
- «Номер» («ID»)
- Числовой идентификатор вопроса. Гиперссылка ведет на страницу просмотра данного вопроса (в простом или расширенном виде, в зависимости от настроек).
- #
- Число комментариев. Причем, если недавно («недавно» настраивается) был добавлен комментарий, число будет выделено жирным шрифтом.
- «Категория» («Category»)
- Категория вопроса.
- #«Серьезность» («Severity»)
- Выделяется жирным если серьезность высока («major», «crash», «block»), а вопрос не решен.
- #«Состояние» («Status»)
- Помимо состояния вопроса, если провести над этим полем мышью, появится всплывающая подсказка с атрибутом #«Решение» («Resolution»).
- «Изменен» («Updated»)
- Дата последнего изменения. Если изменения произошло в период заданный в поле «Изменялись за посл. часов» («Changed(hrs)»), то дата будет выделена жирным.
- «Суть» («Summary»)
- Краткое описание.
«Клик» на шапке каждой колонке приводит к сортировке по данному столбцу, повторный «клик» изменяет направление сортировки. По умолчанию используется сортировка по дате последнего изменения («свежие сначала»).
Каждая запись в таблице расцвечена в соответствии со статусом вопроса (цвета настраиваются в конфигурации инсталляции Mantis).
«Создать вопрос» («Report Issue»)
«журнал изменений» («Change Log»)
«статистика» («Summary»)
«документация» («Docs»)
«управление» («Manage»)
«изменение новостей» («Edit News»)
«моя учетная запись» («My Account»)
«Просмотр вопроса» («Viewing Issue»)
Детальный просмотр вопроса.
Простой вид и расширенный вид отличается только набором атрибутов.
Так, если переключиться из «простого» в «расширенный вид» (по соответствующей ссылке-вкладке в правом верхнем углу), то будут показаны дополнительные атрибуты, такие как
#«Платформа» («Platform»),
#«Операционная система» («OS»),
#«Версия ОС» («OS Version»),
#«Трудоемкость» («Projection»),
#«Примерный срок» («ETA»),
#«Сборка продукта» («Product Build»).
В остальном, поведение форм эквивалентно.
Cсылка «напомнить» («Send a reminder») выводит на форму напоминания о вопросе сотрудникам из проекта:
«Указанным адресатам будет отправлено напоминание о желательности реакции на этот вопрос. Они также автоматически войдут в состав тех, кто отслеживает вопрос. Впоследствии адресаты могут отказаться от отслеживания кнопкой 'Не отслеживать'. Текст этого напоминания будет сохранен в вопросе.»
Cсылка «печать» («Print») выводит на «версию для печати» данного запроса:никаких редактируемых полей, виджетов, и вообще «ничего лишнего» — только сверстанный во все окно броузера досье вопроса (включая комментарии и историю).
В принципе, назначения всех полей-атрибутов вопроса понятны (См. #Атрибуты).
Ниже полей атрибутов, расположен набор кнопок-действий:
- «Изменить вопрос» («Update Issue»)
- переход на страницу редактирования всех атрибутов.
- «Назначить» («Assign To»)
- Cмена ответственного за этот вопрос (выбирается из выпадающего списка).
- «Изм.состояние на» («Change Status To»)
- Смена состояния (выбирается из выпадающего списка). После нажатия на эту кнопку появится дополнительное окно ввода комментария («поясняющего» изменение) и дозапроса некоторых атрибутов, например:
- «Номер дубля» («Duplicate ID») — если вопрос закрывается, как дублирующий.
- «Ответственный»(«Assigned to») — если вопрос рассмотрен, и назначается ответственный.
- «Решен в версии» («Fixed in Version») — для решенных вопросов.
- Дополнительные поля, видимые при изменении или решении вопроса.
- «Отслеживать» («Monitor/Unmonitor Issue»)
- слежение за изменениями вопроса с помощью почтовых извещений;
- «Клонировать» («Create Clone»)
- создать копию текущего вопроса. Пользователь направляется на страницу #«Создать вопрос» («Report Issue»), где все поля заполнены аналогично текущему запросу, +преполагается связь с «исходным» вопросом.
- «Повторно открыть» («Reopen Issue»)
- Виден только для закрытых вопросов, предназначен для повторного их открытия.
- «Переместить вопрос» («Move Issue»)
- Перемещения вопроса в другой проект.
- «Удалить вопрос» («Delete Issue»)
- Окончательное удаление вопроса.
Рекомендуется этим никогда не пользоваться, разве что вопрос был условно говоря, «мусорный», (или содержал конфиденциальную информацию, которую нельзя было помещать в систему). Вместо этого надо установить, что вопрос разрешен, и выставить соответствующее решение.
Ниже находится панель «Связи» («Relationships»), отражающая связи вопроса с другими вопросами. Могут быть следующие типы связей:
- «зависит от/блокирует» («parent of/child of»)
- Пользователь будет предупреждаться, при попытке закрыть «родительский» вопрос, если вопросы-"потомки" еще не решены.
- «связан с» («related to»)
- Равноправная информационная связь.
- «дублирует/имеет дубль» («duplicate of/has duplicate»)
- Связывает вопросы-дубликаты.
Далее располагается панель отслеживающих этот вопрос сотрудников.
Еще ниже — форма для загрузки файловых вложений.
Далее — форма ввода комментария и список ранее введенных комментариев.
И завершает страницу история изменений вопроса.
«Изменить вопрос» («Bug Update»)
Аналогично странице #«Просмотр вопроса» («Viewing Issue»), включая «простой» и «расширенный» виды,
только здесь все атрибуты вопроса редактируемы, и есть возможность удалять комментарии или ограничивать их видимость.
Однако рекомендуется не злоупотреблять редактированием некоторых атрибутов, например, менять атрибуты
#«Инициатор» («Reporter») и #«Категория» («Category») стоит только если произошла ошибка при заведении вопроса.
Русификация Mantis
Начиная с MySQL 5.0, нужно явно задавать кодировку соединения (utf-8 или cp1251, в зависимости от выбранной русской локализации Mantis).
Этот баг уже зарегистрирован http://www.mantisbt.org/bugs/print_bug_page.php?bug_id=6782 , и возможно уже исправлен в последующих версиях, но в версии 1.0.6 (если база под MySQL 5.0), нужно добавить
строчку-определение кодировки в функцию db_connect, файла core/database_api.php:
$t_result = $g_db->Connect($p_hostname, $p_username, $p_password, $p_database_name );
$g_db->Execute ("SET NAMES utf8");
При этом стоит использовать только «Настройки/Язык» из русских языков стоит использовать только «russian_utf8».
Системные требования
Для работы программы требуется:
- веб-сервер (например, Apache, IIS ).
- поддержка языка PHP.
- база данных MySQL.
См. также
Ссылки