Путь 02Тема 6 / 6

Ищите дефекты с проверяемыми гипотезами

Используйте агента для сравнения объяснений и сбора подтверждений. Не повторяйте изменения без проверенной причины.

Практика10 минПроверено

Издатель Как мы пишем

Проверьте пониманиеЗапрос не работает только после развёртывания, но работает локально. Что агент должен сделать сначала?Выполните упражнение
Запрос не работает только после развёртывания, но работает локально. Что агент должен сделать сначала?

Чему вы научитесь

  • Точно описывать ожидаемое и наблюдаемое поведение.
  • Выбирать наблюдение, которое различает конкурирующие объяснения.
  • Проверять исправление, не путая устранение симптома с устранением причины.

Опишите сбой до предложения исправления

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

Фраза «экспорт сломан» мало помогает. Лучше: «Локально экспорт работает. В staging тот же запрос руководителя возвращает 403 после последнего развёртывания. Остальные маршруты работают».

Это описание не устанавливает причину. Оно указывает различия, которые направляют исследование.

Сохраняйте несколько возможных объяснений

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

Для вымышленного сбоя экспорта возможны отсутствие разрешения у учётной записи сервиса, изменение сопоставления ролей или запрос в неправильное окружение. Каждое объяснение предполагает свои наблюдаемые данные.

ГипотезаНаблюдение, которое помогает её отличить
Учётная запись сервиса не может читать данные экспортаДля неё получен отказ в доступе к целевому ресурсу
Изменилось сопоставление ролейЗапрос приходит в приложение с другой фактически действующей ролью
Запрос использует неправильное окружениеПолученный endpoint или идентификатор ресурса отличается от намеченной цели

Таблица — отправная точка. Ответ 403 может возникать на разных уровнях. Определите компонент, который его сформировал, до предположения о сбое авторизации приложения.

Выберите безопасное наблюдение

Начните с недорогого наблюдения, которое различает объяснения. Сравните развёрнутую версию и несекретную конфигурацию. Изучите соответствующую ошибку и идентификатор запроса. По возможности воспроизведите проблему в разрешённом тестовом окружении.

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

Укажите, что ослабит каждую гипотезу. Это помогает агенту пересматривать объяснение вместо защиты первого ответа.

Меняйте по одной причине

Когда подтверждения укажут вероятную причину, внесите целевое исправление. Не объединяйте изменение разрешений, обновление библиотеки и переписывание обработчика. Если симптом исчезнет, вы не поймёте, какое изменение помогло.

Проверьте исходное условие сбоя. Также проверьте соседнюю границу. Исправив доступ руководителя, убедитесь, что пользователь без разрешения по-прежнему получает отказ.

Для повторяющегося дефекта добавьте регрессионную проверку на уровне, который способен его обнаружить. Unit-тест не обнаруживает все ошибки конфигурации развёртывания. Некоторым сбоям нужна интеграционная проверка или контролируемая проверка после развёртывания.

Останавливайте повторные попытки без новых данных

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

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

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

Выполните упражнение

Составьте заметку о недавнем дефекте. Укажите ожидаемое и наблюдаемое поведение, область воздействия и три возможные причины. Для каждой причины назовите одно наблюдение, которое ослабит эту гипотезу. Начните с самого дешёвого безопасного наблюдения.

Скачать рабочий лист (Markdown)
Проверьте понимание ↑

Продолжить обучение

Источники и дополнительные материалы

Связанные материалы Taiga

← Предыдущая тема: Безопасно меняйте существующую систему