Что вы делаете, если не можете воспроизвести заведенный баг?

«Что вы делаете, если не можете воспроизвести заведенный баг?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

План действий:

  1. Точная сверка окружения: Проверяю полное соответствие среды: версия приложения (build), ОС, браузер, конфигурация, тестовые данные (использую снапшоты БД, если возможно).
  2. Детальный разбор шагов: Прохожу описание бага буквально, без отклонений. Ищу скрытые условия: «было открыто другое окно», «пользователь имел роль X», «действие выполнялось сразу после Y».
  3. Углубленный сбор информации:
    • Анализирую логи за период времени, когда баг был обнаружен.
    • Проверяю метрики и мониторинг (нагрузка на CPU, память, ошибки в сети).
    • Ищу закономерности: баг проявляется в определенное время, при специфических действиях других пользователей?
  4. Расширение сценария: Пробую вариации данных, последовательностей, более высокую нагрузку, параллельное выполнение операций.
  5. Коммуникация с автором: Запрашиваю у коллеги, обнаружившего баг, дополнительные детали: скриншоты/видео, логи с его машины, точные входные данные.

Пример анализа логов:

# Поиск в логах ошибок и предупреждений за конкретный период
grep -E "(ERROR|WARN|Exception)" app.log | grep "2024-03-05T14:"
# Поиск по ID сессии или пользователя из описания бага
grep "session_id=abc123" app.log

Итоговое действие: Если после exhaustive-проверки баг не воспроизведен, помечаю его как «Cannot Reproduce» в баг-трекере, но обязательно прикладываю подробный отчет о всех проведенных проверках. Это оставляет контекст для будущего, если баг проявится снова.