О том, как правильно писать дефекты.

Обычно баги выписывают тестировщики, однако любому менеджеру проектов приходится заниматься тем, что называется «приёмочное тестирование», в ходе которого он выясняет, то ли, в принципе, сделал разработчик. Мало того, бывает ситуация, когда тестировщика нет вообще и ПМ-у приходится брать функцию поиска и регистрации дефектов на себя.

Багом или дефектом называется ситуация, когда система ведёт себя не так, как написано в требованиях. Если требований нет — то когда её поведение противоречит хотелкам заказчика или здравому смыслу. К сожалению, хотелки заказчика, как и здравый смысл — штуки зыбкие, поэтому даже плохо написанные требования лучше, чем вообще ничего.

Ну и у вас должен быть багтрекер. Мне приходилось работать с редмайном, джирой, бейскампом, TFS, матисом, встроенным багтрекером битбакета. Большой разницы между ними нет, главное, чтобы багтрекер был и поддерживал нумерацию дефектов, статусы, ответственных, крайний срок и имел на борту фичу списывания фактически затраченного времени.
 
 
 

Заголовок

Заголовок должен отвечать на вопросы: «Что? Где? Когда?». Суть ошибки, локализация и условия, при которых она возникает. Например: «Сбрасывается галка менеджмента в редакторе сметы при сохранении»
 
 
 

Описание

Описание должно отвечать на вопросы: «Что делал? Что получилось? Что должно было получиться?»

Что делал — описываем последовательность шагов для воспроизведения бага. Описание должно быть необходимым и достаточным, лишние шаги туда не включаем. Шаги нумеруем по порядку.
Что получилось — реакция системы, её неправильное поведение.
Что должно было получиться — правильное поведение системы, согласно требованиям. Перфекционисты могут даже сослаться на раздел и пункт техзадания, но это уже лирика.

  1. Создаю и открываю на редактирование смету.
  2. Ввожу перечень работ.
  3. Ставлю галку менеджмента и прописываю значение.
  4. Сохраняю смету

В предпросмотре сметы строка менеджмента отсутствует. Если открыть смету на редактирование, выясняется, что галка и значение сбросились.
Галка и значение должны сохраняться при сохранении сметы.

 
 
 

Аттач

Скриншоты. Если для иллюстрации бага нужен скриншот, прикрепляем его к багу. Желательно иметь под рукой какой-нибудь редактор, в котором можно быстро нарисовать стрелочки — так разработчику будет проще разобраться, где именно локализован дефект.

Скринкасты. В моей практике они оказывались реально нужны, когда у разработчика не получалось повторить баг и он возвращал его обратно. Полезно иметь в браузере расширение для записи скринкастов, я использую Screencastify.

Логи Если для описания бага важно содержимое лога, копируем его в текстовый файл и приаттачиваем к дефекту. Засовывать логи в описание бага категорически не рекомендуется.
 
 
 

Приоритет

  • Blocker – проблема блокирует функционал.
  • High – серьезные проблемы функционала, задевающие основной сценарий/главные фичи, которые нужно исправить в первую очередь.
  • Normal – стандартные баги функционала/ верстки.
  • Low – опечатки, мелкие баги верстки.
    Баг желательно вешать на разработчика, ответственного за кусок функционала, затронутый багом.
  •  
     
     

    Окружение

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

 
 
 

Распространённые ошибки

Десяток ошибок в одном баге. Возникает соблазн накидать в один баг кучу проблем, связанных с одним куском функционала. Это плохая идея. Много мелких багов лучше одного крупного — они быстрее закрываются и отправляются на проверку и вообще, лучше читаются. Крупный баг нельзя закрыть, пока не будут закрыты все описанные проблемы и в течение этого времени проверяющий будет простаивать. Иногда избежать этой ошибки не удаётся. В таких случаях рекомендуется прикреплять к дефекту чеклист.

Скриншот вместо фактического результата. Формулировка вида «Ничего не работает» и скрин в аттаче, вот и весь дефект. За такие дефекты надо отрывать руки. В 99 % случаев проблему можно описать способом, о котором я рассказал выше и дефекты такого типа — следствие лени проверяющего.

Невнятные шаги воспроизведения. Всегда нужно помнить первую татуировку из книги «45 татуировок менеджера»: То, что очевидно для вас, неочевидно для остальных. Если описать шаги недостаточно подробно, есть риск, что разработчик просто не сумеет воспроизвести баг и вернёт его на доработку, что приведёт к потере времени.

Постановка всем багам высшего приоритета. Тут как с мальчиком, который кричал «Волки!» Если всем багам ставить высший приоритет, отношение к ним будет одинаковым — исправляем по мере возможности. Высший приоритет следует приберечь для действительно серьёзных проблем, которые прямо сейчас блокируют работу большому количеству пользователей.