Найти баг и его причину
Два близких случая. Либо вы подозреваете, что в фиче есть баги, и хотите их найти и доказать. Либо баг уже есть, и нужна причина.
| Ставлю | бандл bug-lifecycle (не привязан к языку) |
| Запускаю | /dex-bug-finder:find-bugs - искать баги; /dex-debugger:root-cause - искать причину |
./install-bundle/install-bundle.sh bug-lifecycleИскать баги в фиче
Заголовок раздела «Искать баги в фиче»/dex-bug-finder:find-bugs "оформление заказа со скидкой"Аргумент - область охоты: фича, ветка или модуль. Необязательно - как запустить и воспроизвести.
- Команда строит модель рисков и чартеры по зонам, затем идёт на «охоту»: пытается сломать неявные предположения.
- Каждую находку она сверяет с оракулом корректности: «не упало» не означает «правильно». Поведение по спецификации не баг, а вопрос к требованиям.
- Результат - минимальное воспроизведение (красный тест) с severity и карточки багов, готовые для передачи в расследование и в трекер.
- Цель - найти и доказать баг, не чинить его.
Найти причину бага
Заголовок раздела «Найти причину бага»/dex-debugger:root-cause "после деплоя 500 на POST /orders, в логах NullReferenceException в OrderMapper"Аргумент - симптом: stack trace, лог или шаги воспроизведения; полезно добавить ожидаемое поведение. Если симптома нет, работа не начинается: команда скажет, чего не хватает.
- Продуктовый код команда не правит. Она ищет источник по коду и уликам: изолирует, проверяет гипотезу и пытается её опровергнуть.
- Результат: воспроизводящий тест (остаётся незакоммиченным в дереве) и список проблем с местом (файл и строка), механизмом и severity. Первой идёт причина симптома.
- У причины записано «если X, то Y, потому что Z», попытки опровержения и итоговая уверенность.
- Первой строкой ответа идёт статус:
complete,blockedилиpartial. Если для причины нужен рантайм (профайлер, дамп, стенд), команда предложит/dex-incident-investigator:investigate.
Исправление назначаете вы отдельным вызовом: кодер вашего стека либо dex-bug-fixer, когда багов целая пачка.
Ограничения и частые ошибки
Заголовок раздела «Ограничения и частые ошибки»- Поведение по спецификации - не баг. Если код делает то, что написано в требованиях, находка превращается в вопрос к требованиям, а не в карточку бага.
- Ничего не чинится. Обе команды ищут и доказывают, но продуктовый код не правят. Воспроизводящий тест
root-causeоставляет незакоммиченным в рабочем дереве: не удивляйтесь лишнему файлу. - Без симптома работа не начинается. Для
/dex-debugger:root-causeнужен stack trace, лог или шаги воспроизведения. - Нужен рантайм. Если причину по коду не найти (профайлер, дамп, стенд), команда предложит
/dex-incident-investigator:investigate.