Грамотная работа с дефект-трекером

Preview:

DESCRIPTION

Презентация для SQA Days 10

Citation preview

Грамотная работа сдефект-трекером — путь к успеху!

Алексей Лянгузов

Москва 2-3 декабря 2011

План● Введение● Процессы работы● Выбор трекера● Грамота● Метрики● Игрища с трекером● Заключение

ВведениеДобро пожаловать в ...

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Кто Я?

11+ лет в тестированииhttp://www.linkedin.com/in/leshal

Со-организатор независимого сообщества тестировщиков Санкт-Петербургаhttp://sqagroup.spb.ru

Инженер по тестированию

* Далее будет мое личное мнение

Запрос на изменение

(System) Change Requestили CR

Internal Design

Feature

http://en.wikipedia.org/wiki/Change_management_(engineering)

Трекер это

Конечный автомат (state machine)

* defect tracker = система отслеживания ошибок

Трекер это

Хранилище знаний о продукте

Конечный автомат (state machine)

Трекер это

Хранилище знаний о продукте

Инструмент командной работы

Конечный автомат (state machine)

* в трекере баги трекаются

Процессы работыLifecycle и не только

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Пример жизненного цикла

FixUnderstood

Dispatched

Incomplete Accepted

CauseKnown

Deferred Fix inProgress

FixAvailable

FixFailed

FixDelivered

Closed

Появление записи (CRа)

Поверхностный анализ CRа

Анализ проблемы

Решениепроблемы

ИнтеграцияВерификация

Закрытие

Адаптация жизненного цикла

FixUnderstood

Dispatched

Incomplete Accepted

CauseKnown

Deferred Fix inProgress

FixAvailable

FixFailed

FixDelivered

Closed

Появление записи (CRа)

Анализ CRа, проблемыи ее решение

ИнтеграцияВерификация

Закрытие

Простейший процесс I

ResolvedOpen

Простейший процесс II

Resolved

Open

Closed

Incomplete

Простейший процесс II

Resolved

Open

Closed

- Fixed- Not Repeatable- Won't fix

- Verified- Not Verified- Duplicate- Invalid

- New- Assigned- Deferred- (Incomplete)- (Reopened)

Выбор трекераПоля, фичи, критерии

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Workflow

Лучше ХужеСвободные переходы из состояния в состояние

Регламентированные переходы из состояния в состояние

Мало состояний Много состоянийСтатус и подстатус Только статусАдаптация процесса Жесткий процессВсе пользователи равны (внутри команды)

Пользователи делятся на роли (тестировщик, программист, менеджер)

Обязательные поля *Название поля (атрибута) Комментарий (другое название)ID * Уникальный номер записи (Number, №)Status * Текущее состояние (State)Synopsis * Короткое описание (Title, Subject)Reporter * Кто написал (Submitter)Responsible Engineer * Кто чинит (Assigned To, Owner)Project Для какого проекта (Product)Version Для какой версии (Release)Category Разновидность записи (Type)Subsystem Для какой подсистемы (Component)Priority Приоритет (Importance)Description * Детальное описание

Обязательные возможности *

История изменений Нотификации

Поиск по критериям Комментарии

Желательные поля и возможностиНазвание возможности Описание

Keywords Многофунальная возможность (Tags)Severity & Priority Техническая и политическая оценкиFound & Fixed in Build Локализация проблемы и исправленияFound in & Target Version Версии нахождения и исправленияEditable Description/Comments Редактирование авторомReadonly Access Удобно для отчетов и запросовWeb Access Удобно для отчетов и запросовAttachements Возможность добавлять файлыPublic API Удобно для интеграцииRelated CRs (crossrelated!) Связанные записиMultiple Release Работа с несколькими версиями

ГрамотаПолезные советы

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Правило #1: 1 CR = 1 проблема

1 проблема1 проблема OKOK1 CR1 CR

Правило #1: 1 CR = 1 проблема

1 проблема1 проблема OKOK1 CR1 CR

1 проблема1 проблема Mark As Duplicate,Merge, Keep As Is,Mark As Duplicate,Merge, Keep As Is,N CR-овN CR-ов

Правило #1: 1 CR = 1 проблема

1 проблема1 проблема OKOK1 CR1 CR

1 проблема1 проблема Mark As Duplicate,Merge, Keep As Is,Mark As Duplicate,Merge, Keep As Is,N CR-овN CR-ов

N проблемN проблем Split, Close(Incomplete)Split, Close(Incomplete)1 CR1 CR

1 CR или многоСамостоятельно

выяснить системная

проблема или нет

Спросить программиста

(если это можно сделать быстро)

Написать 1 баг, обратить внимание

программиста

Написать N багов, сделать ссылки между

ними

???

Системная

Разные проблемы

Системная

Разные проблемы

Или ???

1 CR или многоСамостоятельно

выяснить системная

проблема или нет

Спросить программиста

(если это можно сделать быстро)

Написать 1 баг, обратить внимание

программиста

А дубликатов не надо бояться!Но их следует избегать!

Написать N багов, сделать ссылки между

ними

???

Системная

Разные проблемы

Системная

Разные проблемы

Или ???

Короткое описание (title)Что не работает

- CSS spec version 2.0 is not supported- Contrast scheme is incorrect because of inline CSS ***Удаление пользователей с правами админа не работает

Короткое описание (title)Что не работает Что (с)делать

- Make font on this slide bigger

- CSS spec version 2.0 is not supported- Contrast scheme is incorrect because of inline CSS ***Удаление пользователей с правами админа не работает

Короткое описание (title)Что не работает Что (с)делать

- Make font on this slide bigger- Support specification version 2.0- Remove inline CSS styles from all HTML documents ***Добавьте возможность удалять учетные записи админов

- CSS spec version 2.0 is not supported- Contrast scheme is incorrect because of inline CSS ***Удаление пользователей с правами админа не работает

Короткое описание (title)Что не работает

Где, Что, Когда

Что (с)делать- Make font on this slide bigger- Support specification version 2.0- Remove inline CSS styles from all HTML documents ***Добавьте возможность удалять учетные записи админов

- Renderer: spec version 2.0 is not supported for non-embedded CSS- [APIDocs] inline CSS is used in all javadoc files ***- Админка: невозможно удалить пользователя с правами админа

- CSS spec version 2.0 is not supported- Contrast scheme is incorrect because of inline CSS ***Удаление пользователей с правами админа не работает

Короткое описание (title)Что не работает

Где, Что, Когда

Что (с)делать

- It would be great to support spec version 2.0- It'd be better to get rid of inline CSS styles ***- Было бы хорошо, если бы админов можно было удалить

Пожелание

- Make font on this slide bigger- Support specification version 2.0- Remove inline CSS styles from all HTML documents ***Добавьте возможность удалять учетные записи админов

- Renderer: spec version 2.0 is not supported for non-embedded CSS- [APIDocs] inline CSS is used in all javadoc files ***- Админка: невозможно удалить пользователя с правами админа

- CSS spec version 2.0 is not supported- Contrast scheme is incorrect because of inline CSS ***Удаление пользователей с правами админа не работает

Описание (description)

Steps to reproduce:1. Установите систему2. Скачайте программу3. Установите на жесткий диск4. Запустите программу…32. Повторите шаги 23-31

Что (с)делать

Описание (description)

Steps to reproduce:1. Установите систему2. Скачайте программу3. Установите на жесткий диск4. Запустите программу…32. Повторите шаги 23-31

Что (с)делать

- Приводите только значимую информацию.- Уберите лишние шаги. Найдите кратчайший путь.- В дополнение приводите все известные факты.

Описание (description)

Steps to reproduce:1. Установите систему2. Скачайте программу3. Установите на жесткий диск4. Запустите программу…32. Повторите шаги 23-31

Что (с)делать В чем заключается проблема/улучшение

Почему это проблема/зачем

улучшать

Как воспроизвести проблему

Ожидаемый результат после

внесения изменений

- Приводите только значимую информацию.- Уберите лишние шаги. Найдите кратчайший путь.- В дополнение приводите все известные факты.

Разновидности описанийSteps to reproduce:1. Зайдите в админку пользователем с правами администратора.2. Создайте еще одного админа.3. Попытайтесь удалить админа → не удаляется: нет прав.Должен быть позволено.

Что (с)делать

Разновидности описанийSteps to reproduce:1. Зайдите в админку пользователем с правами администратора.2. Создайте еще одного админа.3. Попытайтесь удалить админа → не удаляется: нет прав.Должен быть позволено.

Что (с)делатьNow:It's not possible to remove any user which has admin privileges.

Should be:It should be possible to remove any user with admin pivileges except the latest admin.

Контраст

Разновидности описанийSteps to reproduce:1. Зайдите в админку пользователем с правами администратора.2. Создайте еще одного админа.3. Попытайтесь удалить админа → не удаляется: нет прав.Должен быть позволено.

Что (с)делатьNow:It's not possible to remove any user which has admin privileges.

Should be:It should be possible to remove any user with admin pivileges except the latest admin.

Контраст

User with admin privileges should be able to remove any other admin except himself. ***Согласно спецификации админу должно быть позволено удалить любого пользователя или админа, за исключением самого себя.

Просто описание

Не используйте

ПожалуйстаСпасибо

Не выпрашивайтеНе выпрашивайте

Не используйте

ПожалуйстаСпасибо

Сейчас жеСрочно

Не выпрашивайте Не подгоняйтеНе выпрашивайте

Не используйте

ПожалуйстаСпасибо

Сейчас жеСрочно

БОЛЬШИЕБУКВЫ

Не выпрашивайте Не подгоняйтеНе выпрашивайте Не кричите!

Не используйте

ПожалуйстаСпасибо

Сейчас жеСрочно

БОЛЬШИЕБУКВЫ

СарказмИронияЗлость

Не выпрашивайте Не подгоняйтеНе выпрашивайте Не кричите!

Не язвите

Не используйте

ПожалуйстаСпасибо

Сейчас жеСрочно

БОЛЬШИЕБУКВЫ

СарказмИронияЗлость

АвторитетКрутость

Не выпрашивайте Не подгоняйтеНе выпрашивайте Не кричите!

Не язвите Не доминируйте

Не используйте

ПожалуйстаСпасибо

Сейчас жеСрочно

БОЛЬШИЕБУКВЫ

СарказмИронияЗлость

АвторитетКрутость

ГрандиозноЧрезмерно

Не выпрашивайте Не подгоняйтеНе выпрашивайте Не кричите!

Не язвите Не доминируйте Не паникуйте

Приоритет и важностьКаждый тестировщик имеет право,

и даже обязан, выставлять правильные значения приоритета [priority] (политическая оценка) и

важности [severity](техническая оценка) CRa.

Приоритет и важностьКаждый тестировщик имеет право,

и даже обязан, выставлять правильные значения приоритета [priority] (политическая оценка) и

важности [severity](техническая оценка) CRa.

Следите за тем, чтобы в дефектах приоритет и важность менялись

только с обоснованием.Вы, как автор CRa всегда имеете право потребовать обосновать

понижение оценки.

ОтветственныйОтветственный (responsible,

assigned) это тот, кто отвечает за изменения, вносимые в продукт!

ОтветственныйОтветственный (responsible,

assigned) это тот, кто отвечает за изменения, вносимые в продукт!

Не ставьте ответственного, если не уверены или не договорились

заранее.

ОтветственныйОтветственный (responsible,

assigned) это тот, кто отвечает за изменения, вносимые в продукт!

В больших проектах в качестве ответственного хорошо иметь

«группового пользователя» для каждой подсистемы

Не ставьте ответственного, если не уверены или не договорились

заранее.

Верификация: Кто

Тот, кто написал CR

Имеет право- первым проверить- отказаться (если не тестировщик)

Верификация: Кто

Тот, кто написал CR

Тестировщик

Имеет право- первым проверить- отказаться (если не тестировщик)

Обязан- проверить свои баги- проверить все оставшиеся баги

Верификация: Кто

Тот, кто написал CR

Тестировщик

Тот, кто вносил изменения

Имеет право- первым проверить- отказаться (если не тестировщик)

Обязан- проверить свои баги- проверить все оставшиеся баги

НЕ имеет права- проверять те измения, которые он делал

Верификация: Как

Поменять статус в трекере на Verified

Верификация: Как

Поменять статус в трекере на Verified

Проверить как починили.

Дополнительно протестировать

Верификация: Как

Поменять статус в трекере на Verified

Написать комментарий, что было сделано при

верификации

Проверить как починили.

Дополнительно протестировать

Верификация: Как

Поменять статус в трекере на Verified

Написать комментарий, что было сделано при

верификации

Написать как реально починили,

если это не совсем очевидно

Проверить как починили.

Дополнительно протестировать

МетрикиFor use or for abuse

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Метрики персональной эффективности

* Назначение трекера — способствовать исправлению ошибок, а не собирать статистику для руководства

Январь Февраль Март Апрель0

1

2

3

4

5

6

7

8

9Дубликаты

ВасяПетяДаша

Месяцы

Коли

чест

во

Метрики персональной эффективности

Январь Февраль Март Апрель0

1

2

3

4

5

6

7

8

9Дубликаты

ВасяПетяДаша

Сбор таких показателей полезен только если вы, разобравшись в текущей ситуации, сразу реагируете — обучаете, рекомендуете, делаете выводы или не

делаете ничего, чтобы наказать.

Сбор таких показателей за определенный период для того, чтобы дать или лишить премии — грех.

* Назначение трекера — способствовать исправлению ошибок, а не собирать статистику для руководства

Взгляд с другой стороны

Январь Февраль Март Апрель0

10

20

30

40

50

60

70Дубликаты

ВасяПетяДаша

Месяцы

Про

цент

* Назначение трекера — способствовать исправлению ошибок, а не собирать статистику для руководства

Метрики командной эффективности

Зачем?Зачем?

Сравнение команд, в том числе для

выдачи премий и наказаний

* Назначение трекера — способствовать исправлению ошибок, а не собирать статистику для руководства

Метрики командной эффективности

Зачем?Зачем?

Сравнение команд, в том числе для

выдачи премий и наказаний

Определение текущей

производительности и состояния дел

* Назначение трекера — способствовать исправлению ошибок, а не собирать статистику для руководства

Критерии

max

min

* Чем проще критерий и формула - тем больше от них толку

100 % починенных CRs проверено

0 CRs с приоритетом Р1&P2

0 CRs в состоянии NEW (Dispatched)

Тенденции и предсказанияПример 1 Пример 2

ИзмерениеКоличество новых багов по отношению к починенным, за определенный период времени

Отношение починенных багов кпроверенным, за определенный промежуток времени

ТенденцияРастет от недели к неделе Уменьшается от недели к неделе

ПредсказаниеПри сохранении этой скорости не успеем починить Надцать CRов

При сохранении такой скорости все баги будут заверифицированы в срок

Что делать- Начать фиксить больше багов- Продлить срок- Отобрать только Десят дефектов

- Ничего- Уменьшить время на верификацию в планах

Игрища с трекеромПолитический или технический?

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Политика в ИТ

Cовокупность мер и действий, направленных на достижение заведомо заданного результата

wikipedia

Cовокупность мер и действий, направленных на достижение заведомо заданного результата

wikipedia

* Вне зависимости от того хотите вы того или нет политика никуда не исчезнет

Политика в ИТ

Cовокупность мер и действий, направленных на достижение заведомо заданного результата

wikipedia

Cовокупность мер и действий, направленных на достижение заведомо заданного результата

wikipedia

Действия, с помощью которых вы добиваетесь, чтобы некое лицо или группа лиц выполнили то,

чего вы от них хотитеДжо Мараско «IT проекты. Фронтовые очерки»

Действия, с помощью которых вы добиваетесь, чтобы некое лицо или группа лиц выполнили то,

чего вы от них хотитеДжо Мараско «IT проекты. Фронтовые очерки»

* Вне зависимости от того хотите вы того или нет политика никуда не исчезнет

Разные политики

Хорошая Нейтральная ПлохаяДоводыПримерыФактыРассужденияКомпромиссыАльтернативыОбучение

ЛестьНасмешкиЛоббированиеЗатягиваниеНедомолвкиБартерДвусмысленности

ЛожьПодкупУгрозыЛичные выпадыИнтригиСаботажЖульничество

VV XX XX

Так какой он?

Inputs Outputs

Controls

Так какой он?

ТрекерInputs Outputs

Controls

Техническиерешения

Техническаяинформация Политические

решения

Политическаяинформация

Так какой он?

ТрекерInputs Outputs

Controls

Техническиерешения

Техническаяинформация Политические

решения

ПолитическаяинформацияFilters

X

Игрища

Проигравший

Проект

Победитель

Нет

Конец игры

Дефектустранен

БагминтонПравила: программист и/или тестировщик поочередно и целенаправленно меняют категорию бага с Defect на Feature несколько раз подряд.

Причины.- Плохое или недостаточное описание.- Недобросовестность и упрямство программиста.- Неосведомленность и упрямство тестировщика. - Опасные метрики.- Двусмысленность ситуации.

Относительно безопасна

Достаточно опасная

Весьма опасная

ХодилкаПравила: баги проделывают путь через десятки состояний, переходы строго регламентированы и делаются только строго определенными людьми

Причины.- «Шибко умный» составитель workflow.- Сделано для сбора сотен «очень важных» метрик.- Трекер с плохим поиском. - Бюрократия.- Слишком навороченный трекер.- Бардак в процессах работы. Относительно

безопасна

Достаточно опасная

Весьма опасная

БагобоязньПравила: заносить в трекер как можно меньше записей. Ругать людей вносящих больше «положенного» числа дефектов. Не писать баги перед релизом совсем.

Причины.- Некомпетентные руководители и программисты (думают, что записи в трекере — это плохо).- Опасные метрики.- Ложь.- Тунеядство.- Игра «Ходилка» (сложно работать с трекером)

Относительно безопасна

Достаточно опасная

Весьма опасная

КритерийнизмПравила: баги заносятся и меняются в трекере в угоду какому-либо критерию. Неудовлетворение критерия исправляется в трекере, а не в коде.

Причины.- Некомпетентные работники.- Опасные метрики.- Плохие процессы работы.- Игра «Багобоязнь».- Малодушие.- Желание выделиться в глазах руководства.

Относительно безопасна

Достаточно опасная

Весьма опасная

Великаны и карликиПравила: баги заносятся в трекер с заведомо неправильными значениями приоритета или важности. Или в последствии кто-то намеренно их искажает.

Причины.- Желание выделиться.- Желание не выделяться. Боязнь.- Некомпетентность, незнание продукта. - Намерение скрыть проблемы.- Необоснованное лоббирование каких-то интересов.- Паника.- Игра «Критерийнизм»

Относительно безопасна

Достаточно опасная

Весьма опасная

Ничего не вижу...Правила: любые действия над записями в трекере и программой не производятся, если человек не поставлен кем-то как ответственный или не стоит верная версия.

Причины.- Некомпетентные и/или ленивые программисты и тестировщики.- Опасные метрики.- Плохие процессы работы.- Перегруз.- Ограничения трекера.- Плохие критерии поиска по трекеру. Относительно

безопасна

Достаточно опасная

Весьма опасная

ПионерболПравила: играют все! Ответственный за баг, на самом деле отвечает не за починку, а за CR. Все стараются снять с себя ответственность перекинув баг другому.

Причины.- Искаженный процесс работы с трекером.- Нежелание брать ответственность.- Игра «Ничего не вижу». - Опасные метрики.

Относительно безопасна

Достаточно опасная

Весьма опасная

ЗаключениеА напоследок я скажу ...

Введение Процессы работы с трекеромВыбор трекера

ГрамотаМетрики

Игрища с трекеромЗаключение

Путь к успеху

Целью составления отчета об ошибке является ее Целью составления отчета об ошибке является ее исправлениеисправление

Целью составления отчета об ошибке является ее Целью составления отчета об ошибке является ее исправлениеисправление

Вероятность исправления ошибки зависит от того, Вероятность исправления ошибки зависит от того, как ее задокументироватькак ее задокументировать

Вероятность исправления ошибки зависит от того, Вероятность исправления ошибки зависит от того, как ее задокументироватькак ее задокументировать

Путь к успеху

Целью составления отчета об ошибке является ее исправлениеЦелью составления отчета об ошибке является ее исправление

Путь к успеху

ЛичномуЛичному

Вероятность исправления ошибки зависит от того, как ее задокументировать

Вероятность исправления ошибки зависит от того, как ее задокументировать

Целью составления отчета об ошибке является ее исправлениеЦелью составления отчета об ошибке является ее исправление

Хороший тестировщик не тот, кто выявит Хороший тестировщик не тот, кто выявит больше всего ошибок, а тот, кто добьетсябольше всего ошибок, а тот, кто добьется

исправления наибольшего количества ошибокисправления наибольшего количества ошибок

Хороший тестировщик не тот, кто выявит Хороший тестировщик не тот, кто выявит больше всего ошибок, а тот, кто добьетсябольше всего ошибок, а тот, кто добьется

исправления наибольшего количества ошибокисправления наибольшего количества ошибок

Путь к успеху

ЛичномуЛичному КомандномуКомандному

Вероятность исправления ошибки зависит от того, как ее задокументировать

Вероятность исправления ошибки зависит от того, как ее задокументировать

Целью составления отчета об ошибке является ее исправлениеЦелью составления отчета об ошибке является ее исправление

Чем больше хорошо задокументированных Чем больше хорошо задокументированных отчетов поступает от тестировщиков, тем отчетов поступает от тестировщиков, тем больше доверия к команде тестированиябольше доверия к команде тестирования

Чем больше хорошо задокументированных Чем больше хорошо задокументированных отчетов поступает от тестировщиков, тем отчетов поступает от тестировщиков, тем больше доверия к команде тестированиябольше доверия к команде тестирования

Путь к успеху

ЛичномуЛичному КомандномуКомандному ПроектаПроекта

Вероятность исправления ошибки зависит от того, как ее задокументировать

Вероятность исправления ошибки зависит от того, как ее задокументировать

Целью составления отчета об ошибке является ее исправлениеЦелью составления отчета об ошибке является ее исправление

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

Все остальное является побочным эффектомВсе остальное является побочным эффектом

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

Все остальное является побочным эффектомВсе остальное является побочным эффектом

Путь к успеху

ЛичномуЛичному КомандномуКомандному ПроектаПроекта КомпанииКомпании

Вероятность исправления ошибки зависит от того, как ее задокументировать

Вероятность исправления ошибки зависит от того, как ее задокументировать

Целью составления отчета об ошибке является ее исправлениеЦелью составления отчета об ошибке является ее исправление

Чем больше найденных ошибок было Чем больше найденных ошибок было исправлено в программе, тем выше ее исправлено в программе, тем выше ее

качество, а значит и репутация вашей фирмыкачество, а значит и репутация вашей фирмы

Чем больше найденных ошибок было Чем больше найденных ошибок было исправлено в программе, тем выше ее исправлено в программе, тем выше ее

качество, а значит и репутация вашей фирмыкачество, а значит и репутация вашей фирмы

Alexey LyanguzovSoftware Quality SpecialistOracle, St. Petersburg

Спасибо!

Спрашивайте!Спорьте!

Комментируйте!

90

Риторический вопрос

Почему?Почему?

Recommended