2.4 Описание дефектов. Жизненный цикл дефектов

Программная ошибка – это изъян в разработке программного продукта, который вызывает несоответствие ожидаемых результатов выполнения программы и фактических. 

Дефект – это ошибка или неточность, которая может быть (может и не быть) следствием сбоя в работе программы.

Дефект – это поведение программы, затрудняющее, или делающее невозможным достижение целей пользователя или удовлетворение интересов участников.

Дефект – это несоответствие требованиям или функциональным спецификациям.

Где можно найти баги:
  1. Требования
  2. Архитектурная документация  
  3. Код
  4. Дизайн 
Кто может обнаружить дефект:
  1. Программист
  2. Тестировщик
  3. Технический писатель
  4. Менеджер проекта 
После обнаружения дефекта составляется отчет об ошибке. Отчет об ошибке – это технический документ, который составляется с целью:
  1. Предоставить информацию о проблеме, ее свойствах и последствиях. 
  2. Классифицировать проблему по важности и скорости устранения.
  3. Помочь программистам обнаружить и устранить источник проблемы.
Отчет об ошибке (баг-репорт) – это один из основных результатов работы тестировшика. 

Формула хорошего баг-репорта: 
  1. Что мы сделали?
  2. Что получили?
  3. Что должны были получить?
  1. Обнаружен
  2. Назначен 
  3. Исправлен 
  4. Проверен
  5. Закрыт/открыт заново              
Атрибуты отчета о дефекте:
  1. Идентификатор             
  2. Дата 
  3. Краткое описание (что, где и при каких условиях)
  4. Подробное описание (ожидаемый результат, фактический результат, ссылка на требование)
  5. Шаги воспроизведения (1. Перейти по ссылке www.omg.org 2. Ввести в поле «логин» значение «admin» 3. Ввести в поле «пароль» значение «abcd» 4. Кликнуть левой кнопкой мыши по кнопке войти. Баг: В левом верхнем углу вместо логотипа пустое место.) 
  6. Воспроизводимость (указывается частота воспроизведения дефекта (всегда или иногда)) (пройти шаги воспроизведения минимум три раза).
  7. Важность (на сколько серьезна ошибка). Критическая  - дефекты вызывают крах системы, либо повреждения данных. Высокая  - серьезные ошибки, например потеря данных пользователя, падение некоторой части функциональности программы, падение браузера. Средняя – ошибки, затрагивающие функции приложения, но их можно обойти. Низкая – ошибки, не мешающие работе с приложением (опечатки).
  8. Срочность (как быстро необходимо исправить ошибку). Наивысшая присваивается ошибка, наличие которых делает невозможной дальнейшую работу над проектом. Высшая – нужно исправить в самое ближайшее время. Обычная – исправляется в порядке общей очереди. Низкая – если остается время.
  9. Симптом. Косметический дефект (опечатки, поврежденные картинки, не тот шрифт и т.д.). Повреждения/потеря данных. Проблема в  документации. Некорректная операция. Проблема инсталляции. Ошибка локализации. Нереализованная функциональность. Низкая производительность. Крах системы. Неожиданное поведение. Недружественное поведение. Расхождение с требованием, под этот симптом попадает почти любая ошибка, но рекомендуется его писать только тогда, когда другие симптомы не подходят. Предложения по улучшению. Дополнительные атрибуты: возможность обойти баг, дополнительная информация и приложения (скриншот, видео).
Преимущества хорошего отчета об ошибках:

Хороший отчет об ошибках помогает сократить количество ошибок, отклоненных, или открытых заново. Ускорить устранение ошибки. Сократить стоимость исправления ошибки. Повысить репутацию тестировщика. 

Баг-трейкинговые системы

Система отслеживания ошибок (англ. bug tracking system) — прикладная программа, разработанная с целью помочь разработчикам программного обеспечения (программистам, тестировщикам и др.) учитывать и контролировать ошибки и неполадки, найденные в программах, пожелания пользователей, а также следить за процессом устранения этих ошибок и выполнения или невыполнения пожеланий.

Главный компонент такой системы — база данных, содержащая сведения об обнаруженных дефектах. Эти сведения могут включать в себя:
  1. номер (идентификатор) дефекта;
  2. короткое описание дефекта;
  3. кто сообщил о дефекте;
  4. дата и время, когда был обнаружен дефект;
  5. версия продукта, в которой обнаружен дефект;
  6. серьёзность (критичность) дефекта и приоритет решения[1];
  7. описание шагов для выявления дефекта (воспроизведения неправильного поведения программы);
  8. ожидаемый результат и фактический результат;
  9. кто ответственен за устранение дефекта;
  10. обсуждение возможных решений и их последствий;
  11. текущее состояние (статус) дефекта;
  12. версия продукта, в которой дефект исправлен.
Кроме того, развитые системы предоставляют возможность прикреплять файлы, помогающие описать проблему (например, дамп памяти или скриншот).

TRELLO – построена на основе доски, все функции находятся на одном экране. Слишком простая и не предназначена для больших команд. Задачи не имеют номера, что затрудняет контроль.

YouTrack – доска и диаграмма очень удобные, статусы и приоритеты можно выделять для наглядности.

JIRA AGILE – данную систему называют «№1». Она обладает наиболее широкой функциональностью среди других систем. Идеально подходит для крупных проектов с большим штатом тестировщиков, одновременно можно работать под различными операционными системами, создавать и вести схемы безопасности для каждого из проектов. 

TARGETPROCESS – система очень дорогая. Доска удобная,  размещение задач сделано по принципу trello, приспособлено к большим командам и большому количеству задач. Разработчики ставили цель сделать программу более простой и удобной в использовании, но количество функций урезали.

Процесс баг-трекинга 
1. Создаваясь, сообщение, обязательно имеет ответственного 
2. Каждому дефекту определяется приоритет важности,  возможно добавить комментарий 
3. Сообщениям устанавливаются статусы «в процессе», где указывается время начала и окончания работы.