Головний компонент такої системи - база даних, що містить відомості про виявлені дефекти. Ці відомості можуть включати в себе:
· номер (ідентифікатор) дефекту;
· хто повідомив про дефект;
· дата і час, коли був виявлений дефект;
· версія продукту, в якій виявлений дефект;
· серйозність (критичність) дефекту і пріоритет рішення;
· опис кроків для виявлення дефекту (відтворення неправильної поведінки програми);
· хто відповідальний за усунення дефекту;
· обговорення можливих рішень і їх наслідків;
· поточний стан (статус) дефекту;
· версія продукту, в якій дефект виправлений.
Крім того, розвинені системи надають можливість прикріплювати файли, що допомагають описати проблему (наприклад, дамп пам'яті або скріншот).
Життєвий цикл дефекту
Як правило, система відслідковування помилок використовує той чи інший варіант «життєвого циклу» помилки, стадія якого визначається поточним станом, або статусом, в якому знаходиться помилка.
Типовий життєвий цикл дефекту:
Новий - дефект зареєстрований тестувальником
Призначений - призначений відповідальний за виправлення дефекту
Дозволений - дефект переходить назад в сферу відповідальності тестувальника. Як правило, супроводжується резолюцією, наприклад:
- Виправлено (виправлення включені в версію таку-то)
- Дубль (повторює дефект, вже знаходиться в роботі)
- Не виправлено (працює відповідно до специфікації, має занадто низький пріоритет, виправлення відкладено до наступної версії і т.п.)
- Невоспроизводимость (запит додаткової інформації про умови, в яких дефект проявляється).
Далі тестувальник проводить перевірку виправлення, залежно від чого дефект небудь знову переходить у статус Призначено (якщо він описаний як виправлений, але не виправлений), або в статус Закрито.
Відкрито повторно - дефект знову знайдений в іншій версії.
Система може надавати адміністратору можливість налаштувати, які користувачі можуть переглядати і редагувати помилки в залежності від їх стану, переводити їх в інший стан або видаляти.
В корпоративному середовищі, система відслідковування помилок може використовуватися для отримання звітів, що показують продуктивність програмістів при виправленні помилок. Однак, часто такий підхід не дає достатньо точних результатів, через те що різні помилки мають різну ступінь серйозності та складності. При цьому серйозність проблеми не має прямого відношення до складності усунення помилки.