Для того, щоб орієнтуватися в статусах дефектів, а також швидко і правильно їх оформлювати, коментувати і закривати в баг-трекінговій системі, потрібно знати, який шлях вони проходять.
Життєвий цикл дефекту (Defect Lifecycle) - це послідовність етапів, які проходить дефект на своєму шляху з моменту його створення до остаточного закриття. Для простоти сприйняття зображується у вигляді схеми з можливими статусами і діями, які призводять до зміни цих статусів.
Будь який етап роботи з дефектом позначається атрибутом «Статус». Статус дефекту показує, хто на даний момент працює з дефектом і що слід робити з ним. Після того, як роботу з багом закінчив один з учасників проєкту, він змінює статус дефекту і «перенаправляє» дефект на того, хто повинен продовжити роботу.
Найчастіше життєвий цикл бага пов'язаний з вибраною системою баг-трекінгу, в якій за замовчуванням можуть бути налаштовані статуси і переходи. Але також деякі з систем управління дефектами дозволяють коригувати життєвий цикл бага під конкретний проєкт в разі такої необхідності. Система може надавати адміністратору можливість налаштувати, які користувачі можуть переглядати і редагувати помилки в залежності від їх стану, переводити їх в інший стан або видаляти.
Новий (New) – звіт про дефект заводиться в баг-трекінгову систему вперше.
Призначено (Assigned) – звіт про дефект призначається на відповідного розробника/програміста.
Відкрито (Open) – розробник бере звіт про дефект в роботу для аналізу і виправлення.
Виправлений (Fixed) – розробник зробив необхідні зміни в коді і перевірив ці зміни сам. Звіт про дефект з цим статусом повертається назад тестувальнику.
Повторне тестування в режимі очікування – після виправлення дефекту розробник надав конкретний код для повторного тестування тестувальником. Тестування знаходиться на розгляді у тестувальника.
Повторне тестування (Re-testing) – на цій стадії тестувальник виконує повторне тестування зміненого коду, який був наданий розробником, для перевірки, виправлений дефект чи ні.
Перевірений (Verified) – якщо дефект не відтворюється, тестувальник підтверджує, що цей дефект виправлений.
Перевідкритий (Reopened) – якщо дефект все ж відтворюється, навіть після його виправлення розробником, тестувальник перевідкриває його і призначає на розробника. Цей дефект проходить через життєвий цикл дефекту ще раз.
Закрито (Closed) – якщо тестувальник впевнений, що дефект більше не відтворюється, то він його закриває. Цей статус означає, що дефект виправлений, протестований і схвалений.
Дублікат (Duplicate) – якщо дефект повторюється двічі або є два бага, які є наслідком однієї причини, то одному з них присвоюється даний статус.
Відхилений (Rejected) – якщо розробник вважає, що цей дефект не є обгрунтованим або вагомим, і дефект не буде розглядатися для виправлення або реалізації, він його відхиляє.
Відтермінований (Deferred) – очікується, що дефект, якому привласнили такий статус, буде виправлений в наступних версіях. Причин для присвоєння цього статусу може бути кілька: пріоритет дефекту низький, нестача часу, даний дефект не спричинить великих збоїв в програмному продукті.
Не баг (Not a bug) – цей статус присвоюється, якщо в функціонал програми не буде внесено ніяких змін. Наприклад, якщо замовник просить змінити колір або розмір кнопок, або тексту – це не дефект, а просто зміни в дизайні додатка.
Давайте розглянемо життєвий цикл дефекту більш докладно.
- Тестувальник знаходить дефект.
- Тестувальник оформлює звіт про дефект у баг-трекінговій системі (статус «Новий» (New)) і призначає на розробника (статус «Призначено» (Assigned)).
- Розробник перевіряє відтворюваність дефекту і привласнює йому один з наступних статусів:
-
- «Дублікат» (Duplicate) – схожий дефект вже є в баг-трекінговій системі;
- «Відхилено» (Rejected) – дефект не є вагомим;
- «Відстрочено» (Deferred) – виправлення дефекту можна перенести в наступні версії програмного продукту;
- «Не баг» (Not a bug) – до функціоналу програмного товару не буде внесено жодних змін;
- «Відкрито» (Open) – розробник взяв дефект в роботу;
- «Виправлено» (Fixed) – розробник вніс зміни в код і перевірив їх.
- Тестувальник проводить повторне тестування дефекту (статус «Повторне тестування» (Re-testing)).
- Якщо дефект не відтворюється, тестувальник закриває його (статуси «Перевірено» (Verified), «Закрито» (Closed)).
- Якщо дефект відтворюється, тестувальник повертає його розробнику на виправлення (статуси «перевідкрив» (Reopened), «Призначено» (Assigned)) і такий дефект проходить цей життєвий цикл ще раз.
Виходячи з інформації про статуси дефектів в баг-трекінговій системі можна створювати звіти, які дозволяють оцінити як роботу розробника, так і тестувальника. Ця інформація може бути корисна для збору і аналізу ряду метрик, що дозволяють оцінити точки сходження дефектів і в цілому якість продуктів, що випускаються.