> For the complete documentation index, see [llms.txt](https://swit-school.gitbook.io/qa-book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://swit-school.gitbook.io/qa-book/testuvannya-igor/about-bug/zhittevii-cikl-defekta.md).

# Життэвий цикл дефекта

Для того, щоб орієнтуватися в статусах дефектів, а також швидко і правильно їх оформлювати, коментувати і закривати в баг-трекінговій системі, потрібно знати, який шлях вони проходять.

**Життєвий цикл дефекту (Defect Lifecycle)** - це послідовність етапів, які проходить дефект на своєму шляху з моменту його створення до остаточного закриття. Для простоти сприйняття зображується у вигляді схеми з можливими статусами і діями, які призводять до зміни цих статусів.

Будь який етап роботи з дефектом позначається атрибутом «Статус». Статус дефекту показує, хто на даний момент працює з дефектом і що слід робити з ним. Після того, як роботу з багом закінчив один з учасників проєкту, він змінює статус дефекту і «перенаправляє» дефект на того, хто повинен продовжити роботу.

Найчастіше життєвий цикл бага пов'язаний з вибраною системою баг-трекінгу, в якій за замовчуванням можуть бути налаштовані статуси і переходи. Але також деякі з систем управління дефектами дозволяють коригувати життєвий цикл бага під конкретний проєкт в разі такої необхідності. Система може надавати адміністратору можливість налаштувати, які користувачі можуть переглядати і редагувати помилки в залежності від їх стану, переводити їх в інший стан або видаляти.

<figure><img src="https://lh5.googleusercontent.com/5EzeWdiaUb0n-7N59kzweEf_mIFt0NuRfT6HYqh_Hq1fLjlvBQDJ9qmIWX_nfZwGLiNTO-N8gk8b72L6vWyQsRp7L-Yr9WQGNNv--igJ2UFOYQDQvAdZv8JUlAJzuYW0Oehb0IYeapRa42oOjdYg6D4" alt=""><figcaption></figcaption></figure>

***Новий (New)*** – звіт про дефект заводиться в баг-трекінгову систему вперше.

***Призначено (Assigned)*** – звіт про дефект призначається на відповідного розробника/програміста.

***Відкрито (Open)*** – розробник бере звіт про дефект в роботу для аналізу і виправлення.

***Виправлений (Fixed)*** – розробник зробив необхідні зміни в коді і перевірив ці зміни сам. Звіт про дефект з цим статусом повертається назад тестувальнику.

***Повторне тестування в режимі очікування*** – після виправлення дефекту розробник надав конкретний код для повторного тестування тестувальником. Тестування знаходиться на розгляді у тестувальника.

***Повторне тестування (Re-testing)*** – на цій стадії тестувальник виконує повторне тестування зміненого коду, який був наданий розробником, для перевірки, виправлений дефект чи ні.

***Перевірений (Verified)*** – якщо дефект не відтворюється, тестувальник підтверджує, що цей дефект виправлений.

***Перевідкритий (Reopened)*** – якщо дефект все ж відтворюється, навіть після його виправлення розробником, тестувальник перевідкриває його і призначає на розробника. Цей дефект проходить через життєвий цикл дефекту ще раз.

***Закрито (Closed)*** – якщо тестувальник впевнений, що дефект більше не відтворюється, то він його закриває. Цей статус означає, що дефект виправлений, протестований і схвалений.

***Дублікат (Duplicate)*** – якщо дефект повторюється двічі або є два бага, які є наслідком однієї причини, то одному з них присвоюється даний статус.

***Відхилений (Rejected)*** – якщо розробник вважає, що цей дефект не є обгрунтованим або вагомим, і дефект не буде розглядатися для виправлення або реалізації, він його відхиляє.

***Відтермінований (Deferred)*** – очікується, що дефект, якому привласнили такий статус, буде виправлений в наступних версіях. Причин для присвоєння цього статусу може бути кілька: пріоритет дефекту низький, нестача часу, даний дефект не спричинить великих збоїв в програмному продукті.

***Не баг (Not a bug)*** – цей статус присвоюється, якщо в функціонал програми не буде внесено ніяких змін. Наприклад, якщо замовник просить змінити колір або розмір кнопок, або тексту – це не дефект, а просто зміни в дизайні додатка.

**Давайте розглянемо життєвий цикл дефекту більш докладно.**

1. Тестувальник знаходить дефект.

<figure><img src="https://lh3.googleusercontent.com/1riORsji0HtcL0F2sIcFIU5_vNo_uMrKh8vq-qK-W3c0jcNK93cK07TWCPLrmeYVjskEi0FvxrfuhlyXWIbMCkNrkqoGT4Q1R-x719s4cP1TH2J97LDw_WrkULACxvXuWJ2aYTxilk1-N7e0ahzsiC4" alt=""><figcaption></figcaption></figure>

2. Тестувальник оформлює звіт про дефект у баг-трекінговій системі (статус «Новий» (New)) і призначає на розробника (статус «Призначено» (Assigned)).
3. Розробник перевіряє відтворюваність дефекту і привласнює йому один з наступних статусів:&#x20;

* «Дублікат» (Duplicate) – схожий дефект вже є в баг-трекінговій системі;
* «Відхилено» (Rejected) – дефект не є вагомим;
* «Відстрочено» (Deferred) – виправлення дефекту можна перенести в наступні версії програмного продукту;
* «Не баг» (Not a bug) – до функціоналу програмного товару не буде внесено жодних змін;
* «Відкрито» (Open) – розробник взяв дефект в роботу;
* «Виправлено» (Fixed) – розробник вніс зміни в код і перевірив їх.

4. Тестувальник проводить повторне тестування дефекту (статус «Повторне тестування» (Re-testing)).
5. Якщо дефект не відтворюється, тестувальник закриває його (статуси «Перевірено» (Verified), «Закрито» (Closed)).
6. Якщо дефект відтворюється, тестувальник повертає його розробнику на виправлення (статуси «перевідкрив» (Reopened), «Призначено» (Assigned)) і такий дефект проходить цей життєвий цикл ще раз.

Виходячи з інформації про статуси дефектів в баг-трекінговій системі можна створювати звіти, які дозволяють оцінити як роботу розробника, так і тестувальника. Ця інформація може бути корисна для збору і аналізу ряду метрик, що дозволяють оцінити точки сходження дефектів і в цілому якість продуктів, що випускаються.

<br>
