Thursday, September 17, 2009

Баг или дефект а также его жизненный цикл

В этой статье будет рассмотрен такой важный аспект в тестировании, как жизненный цикл дефекта.

Каждый день мы слышим слова - "глюк" и "баг". Я попробую описать что же такое дефект в программном обеспечении и какова у него "жизнь".

Дефект - это один из видов измерения эффективности тестировщика и программиста, только в первом случае - чем больше, тем лучше, а во втором - наоборот, а также одно из мерил качества программного обеспечения.

Каждый дефект, который был найден специально и который будет обработан, имеет ряд обязательных описательных "свойств" в defect tracking systems:
1. Уникальный номер или название.
2. Title или Summary или Short Description: короткая фраза, которая помогает понять что это за дефект.
3. Description: полное описание дефекта включая шаги для воспроизведения.
4. Окружение: ОС, версия продукта на котором был найден дефект, браузер, патчи, т.е. конфигурация системы, на который дефект был обнаружен.
5. Скриншот или видео - некоторые дефекты сложно описать и тогда проще показать нежели описать.
6. Важность этого дефекта - полей с понятием важность может быть несколько, но не все должны заполняться тестерами. То поле "важность", которое заполняется тестером служит для индикации возможности работы с системой дальше при наличии дефекта.

Пример: Наиболее важным дефектом является тот, для которого нельзя найти work around, который нарушает работоспособность системы, влияет на много других модулей либо на всю программу в целом. Наинизшим же приоритетом можно считать "пожелания" - например, изменить цвет, подписи к кнопкам и так далее.

А вот цикл, по которому пройдет дефект, попав в систему учета дефектов(Bug Tracking System)

Названия могут отличаться, но смысл везде один и тот же:
1. New - дефект только найден и внесен в систему.
2. В зависимости от анализа дефекта, его статус меняется на "Rejected" или на "Open".
3. Rejected - пишется комментарий программиста или менеджера о причине reject-a. Это может быть или плохое описание дефекта, или такой дефект уже существует(дубликат) или невозможность воспроизвести дефект программистом. После этого, тестер или закрывает дефект(Closed) или реагирует на комментарии программиста и открывает дефект заново(Open).
3. Open - дефект просмотрен и открыт для починки.
4. Fixed - дефект починили и он в стадии ожидания перепроверки.
5. После "Fixed" дефект переводится в состояние Open(если дефект не починен или починен не полностью) либо в "Closed".

При обнаружении поведения, которое отличается от предполагаемого, надо обязательно выяснить дефект это или нечто другое (встречались моменты, когда данная функциональность была просто не реализована в данном билде), надо обязательно проверить на наличие дубликатов, убедится что это дефект а не "глюк" окружения(windows работает не стабильно, браузер закешировался) особенно, если это похоже на дефект высокого приоритета - тогда вообще желательно проверить поведение с другого компьютера.

При описании дефекта, надо придерживаться некоторых правил:
1. Summary или Title дефекта: в идеале по этому полю можно воспроизвести дефект, длиной не более 100-130 символов. При написании можно руководствоваться алгоритмом: что, где и при какой условии. Нельзя использовать неинформативные слова: wrong, doesn't work, not correct ну и так далее (у нас в компании существует шутка про то, как когда-то был открыт дефект, который звучал приблизительно так: "Product doesn't work" - согласитесь, что по этому summary нельзя сделать ни одного вывода о ошибке в системе)
2. Описание дефекта: короткие, но самодостаточные шаги которые однозначно приводят к обнаружению дефекта.
3. Нельзя забывать о логах, можно приложить скриншот или видео-файл - все-таки приятней смотреть картинку или просмотреть видео чем читать кучу букв.

например:
Summary:
"Main->Most recent" page: "Error 500" error message loads while filter by "See all fields" value.

Description:
1. Make sure JRE 1.5 has installed.
2. Open "Main -> Most recent" page
3. Select "See all fields" value from "Filter" combobox
4. Apply settings
=>
5. "Error 500" eror message loads.

Please, refer to attached log and screenshot.

Пара важных моментов:
1. Видео длительностью 5 минут можно сжать до 200 Кб легко, причем открываться оно будет на компьютерах где НЕ стоят кодеки.
2. Если работа идет с иностранными программистами, то нельзя забывать, что отечественные тестеры (по моему опыту) более разносторонне развиты, и могут легко послать видео в flv, mov, exe, картинки в tiff, png и чуть не raw, архиваторами gzip для Windows, 7zip, rar и так далее. Иностранцы знают в большинстве своем bmp, jpg, gif, exe, avi, zip! Т.е. то, что идет в поставке с Windows!

2 comments:

  1. Absolutely brilliant post guys, been following your blog for 3 days now and i should say i am starting to like your post. and now how do i subscribe to your blog?
    office activation

    ReplyDelete
  2. Wow that was odd. I just wrote an very long comment but after I clicked submit my comment didn’t appear. Grrrr… well I’m not writing all that over again. Anyways, just wanted to say wonderful blog!
    Web hosting

    ReplyDelete