Багтрекер
Багтрекер або Система відстеження помилок (англ. bug tracking system) — прикладна програма, створена з метою допомогти розробникам програмного забезпечення (тестувальникам, програмістам, керівникам проєктів) враховувати і контролювати помилки, знайдені у програмах, побажання користувачів, а також стежити за процесом усунення цих помилок і виконання або невиконання побажань. Це може розглядатись як різновид системи відстеження проблем.
Багтрекер, як правило, є необхідним компонентом гарної інфраструктури розробки програмного забезпечення, і послідовне використання системи відстеження помилок або проблем вважається однією з «відмінних особливостей хорошої команди програмістів».[1]
Передумови
Кожному, хто розробляв програмні продукти, добре знайоме співвідношення «20/80» — останні 20 % роботи тривають 80 % часу.
Як це не парадоксально, але нічого дивного в цій пропорції немає, адже саме на завершальній стадії починається тестування проєкту, коли виявляються помилки, і що більший проєкт, то більше буде знайдено помилок.
Водночас досить часто виявляється, що більшість цих помилок були відомі та могли бути виправлені з меншими витратами на попередніх стадіях роботи, але не були вчасно описані, а потім загубилися серед інших важливих завдань.
Отже, система відстеження помилок у найпростішому варіанті — це процес, що включає в себе виявлення помилки, її опис, виправлення і перевірку цього виправлення, тобто процес «стеження» за багом протягом всього як його життєвого циклу, так і життєвого циклу розробки в цілому.
Компоненти
Сукупність інформації про дефект
Головний компонент багтрекера — база даних, що записує повідомлення про виявлені дефекти. Ці повідомлення зазвичай включають наступну інформацію:[2]
- номер (ідентифікатор) дефекту;
- короткий опис дефекту;
- хто повідомив про дефект;
- дата і час виявлення дефекту;
- версія продукту, в якій виявлено дефект;
- серйозність (критичність) дефекту та пріоритет вирішення[3];
- опис кроків для відтворення дефекту (неправильної поведінки програми);
- очікуваний результат і фактичний результат;
- відповідальний за усунення дефекту;
- обговорення можливих рішень та їх наслідків;
- поточний стан (статус) виправлення дефекту;
- версія продукту, в якій дефект виправлено.
Крім того, розвинені системи надають можливість прикріплювати файли, які допомагають описати проблему (наприклад, дамп пам'яті або скріншот).
Життєвий цикл дефекту
Типові багтрекери підтримують концепцію життєвого циклу бага, що відстежується через статус, присвоєний багу:
- новий — дефект зареєстрований тестувальником
- призначений — призначений відповідальний за виправлення дефекту
- вирішений — дефект переходить назад у сферу відповідальності тестувальника. Як правило, супроводжується резолюцією, наприклад:
- виправлено (виправлення включені у версію таку-то)
- дубль (повторює дефект, що вже знаходиться в роботі)
- не виправлено (працює відповідно до специфікації, має занадто низький пріоритет, виправлення відкладено до наступної версії тощо)
- неможливо відтворити («в мене все працює»; запит додаткової інформації про умови, в яких дефект проявляється)
- далі тестувальник проводить перевірку виправлення, залежно від чого дефект або знову переходить у статус призначений (якщо він описаний як виправлений, але не виправлений), або у статус закритий
- відкритий повторно — дефект знайдено знову в іншій версії
Багтрекер може надавати адміністраторові можливість налаштувати права доступу на основі статусу, змінювати статус бага чи вилучати баг, а також конфігурувати статуси багів і в який статус баг може бути переведено в кожному окремому випадку. Деякі системи надсилають електронного листа зацікавленим сторонам, як наприклад, відправнику баг-репорту та призначеним програмістам, у разі додавання нового запису чи зміни статусу.
Використання
Головна перевага багтрекера полягає в забезпеченні чіткого централізованого огляду запитів на розробку (включаючи як помилки, так і виправлення, різниця часто нечітка) та їх стану. Список пріоритетів незавершених пунктів (що часто називається backlog) забезпечує вагомий внесок при визначенні перспективного плану продукту, чи просто «наступного релізу».
У корпоративному середовищі багтрекер може використовуватися для генерації звітів, що показують продуктивність програмістів при виправленні помилок. Однак, іноді такий підхід може спричинити неточний результат через те, що різні помилки мають різну ступінь серйозності та складності. Водночас серйозність проблеми прямо не стосується складності її усунення. Погляди менеджерів та архітекторів можуть відрізнятись.
Багато багтрекерів, зокрема ті, що використовуються більшістю проєктів відкритого програмного забезпечення, дозволяють вводити звіт про помилку безпосередньо користувачам.[4] Інші системи використовуються лише всередині компаній чи організацій, що займаються розробкою програмного забезпечення. Здебільшого багтрекери використовуються спільно з іншими системами керування проєктами.
Різновиди
Локальний багтрекер (англ. Local bugtracker, LBT) — зазвичай комп'ютерна програма, використовувана командою професійних підтримувачів додатку (часто служба технічної підтримки) для відстеження проблем і спілкування з розробниками програмного забезпечення. Використання LBT дозволяє спеціалістам зі служби підтримки відстежувати баги «своєю власною мовою», а не «мовою розробників». Крім того, використання LBT дозволяє команді підтримки відстежувати інформацію про користувачів, що висловили скарги, неважливі для процесу розробки (тоді у разі використання LBT існує два багтрекери).
Розподілені багтрекери
Деякі багтрекери розроблено для роботи з програмами розподіленого контролю версій. Такі розподілені багтрекери дозволяють легко читати, додавати до бази даних чи оновлювати звіти про помилки, поки розробник поза мережі[5]. До розподілених багтрекерів належать Bugs Everywhere, DisTract і Fossil.
Останнім часом комерційні багтрекери також почали об'єднуватися з розподіленим контролем версій. FogBugz, наприклад, дозволяє цю функціональність через інструменти контролю вихідного коду, Kiln[6].
Хоча вікі та багтрекери вважаються різними типами програмного забезпечення, ikiwiki може також використовуватись як розподілений багтрекер. У ній можливо керувати як документами, так і кодом, в інтегрованому розподіленому стилі. Однак, функціональність її запитів широка чи дружня до користувача, як у деяких інших, нерозподілених багтрекерів, таких як Bugzilla[7]. Подібні твердження стосуються й org-mode, хоча це й не програма для вікі як така.
Порівняння багтрекерів
Feature | BUGS | Bugzilla | JIRA | Trac | Track Studio |
---|---|---|---|---|---|
Багатоплатформність | Так | Так | Так | Так | Так |
Мова програмування | PHP | Perl | Java | Python | Java |
Ліцензія | MPL | MPL | Ні | BSD | Ні |
Розподілена робота | Ні | Так | Так | Так | Так |
Побудова звітів | Так | Так | Так | Так | Так |
Підтримка RSS оповіщень | Ні | Так | Так | Так | Так |
Ніmail сповіщень | Так | Так | Так | Так | Так |
Інтеграція з MS Excel | Ні | Ні | Так | Так | Так |
Управління проєктами | Ні | Ні | Ні | Так | Так |
Ведення підзадач | Ні | Ні | Ні | Так | Так |
Інтеграція з SVN | Ні | Так | Так | Так | Так |
Підтримка прикріплення файлів | Так | Так | Так | Так | Так |
Схеми безпеки | Ні | Ні | Так | Так | Так |
База знань помилок | Так | Так | Так | Так | Так |
Зручний інтерфейс | Так | Ні | Так | Так | Ні |
Підтримка російської мови | Так | Так | Так | Так | Так |
Ціна | free | free | $1200 | free | $550 |
Logrus Bug Tracking Database[8] — створене на основі сучасних веб-технологій гнучке рішення, що скорочує терміни впровадження та дає можливість оперативно налаштувати його для окремого завдання.
На відміну від багатьох інших рішень у галузі відстеження помилок, у Logrus Bug Tracking Database сукупність полів налаштовується індивідуально для кожного проєкту. Для різних типів помилок можна створювати шаблони, які дають змогу значно зменшити час опису помилки. Моніторинг помилок виконувати значно простіше завдяки вбудованій системі фільтрації та сортування даних.
Систему контролю помилок можна інсталювати як у локальній мережі, так і на веб-сервері, завдяки чому можливий доступ до єдиної бази помилок із будь-якої точки, де є вихід до Інтернету. Водночас навіть за умови розташування на веб-сервері всю інформацію надійно захищено від сторонніх користувачів.
Зазвичай термін впровадження системи Logrus Bug Tracking Database не перевищує тижня.
Див. також
- Issue tracking system
- Порівняння систем відстеження помилок — включно з системами керування проєктами
- Порівняння систем відстеження проблем — включно з системами відстеження помилок
- Баг
- Книга відгуків і пропозицій
Примітки
- Сполські, Джоел (8 листопада 2000). Painless Bug Tracking. Архів оригіналу за 9 липня 2013. Процитовано 29 жовтня 2010.
- Bug report. Docforge. Архів оригіналу за 9 липня 2013. Процитовано 9 березня 2010.
- Канер; Фолк; Нгуен (2001). 5. Тестирование программного обеспечения (рос.). с. 105. ISBN 9667393879. «Бейзер, наприклад, пропонує шкалу від 1 (незначна помилка, наприклад, граматична) до 10 (фатальна, така, що викликає збої у інших системах, війни, убивства і таке інше)»
- Bogomil Shopov (8 вересня 2014). Implement Client-side Bug Reporting. Архів оригіналу за 13 листопада 2014. Процитовано 17 листопада 2014.
- Корбет, Джонатан (14 травня 2008). Distributed bug tracking. LWN.net. Архів оригіналу за 9 липня 2013. Процитовано 7 січня 2009.
- FogBugz Features. FogBugz. Архів оригіналу за 9 липня 2013. Процитовано 29 жовтня 2010.
- Гесс, Джоуї (6 квітня 2007). Integrated issue tracking with Ikiwiki. LinuxWorld. IDG. Архів оригіналу за 9 липня 2013. Процитовано 7 січня 2009.
- Система контролю помилок. Логрус. Процитовано 13 лютого 2017.
Посилання
- Bug Tracking Software, каталог посилань Open Directory Project
- How to Report Bugs Effectively
- List of distributed bug tracking software
- Топ-10 систем відстеження помилок (англійською).
- Методи доступу до журналів системи відстеження помилок.