Как тестировать плавающие баги

Как тестировать плавающие баги

t.me/qa_chillout

Бывает, открываешь приложение — всё работает. Потом в точности повторяешь те же шаги — и вдруг что-то идёт не так. Например, заходишь на экран профиля, а он почему-то пустой. Перезапускаешь — всё нормально. Или нажимаешь кнопку "Сохранить", и она просто не реагирует. Пробуешь снова — срабатывает. А иногда свайп в сторону не переводит на следующий экран, хотя раньше всё работало. Такое поведение сбивает с толку и заставляет сомневаться: это действительно баг или показалось?

Это и есть плавающий баг — тип ошибки, которая:

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


Почему появляются плавающие баги

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


1. Что-то не успевает загрузиться

Иногда приложение просто не успевает подготовить нужные данные или экран. Вы уже нажали на кнопку, а внутри всё ещё «грузится» — и в этот момент ничего не происходит. Потом пробуете ещё раз — и всё работает, потому что всё успело прогрузиться.


2. Медленный или нестабильный интернет

Если интернет «подвисает» или работает с перебоями, данные могут не дойти до приложения вовремя. В итоге экран остаётся пустым, запрос не срабатывает, или приложение показывает ошибку, которая потом исчезает.


3. Разные устройства — разное поведение

На одном телефоне всё работает как надо, а на другом — что-то глючит. Особенно часто это случается на старых или слабых устройствах, где приложение просто не успевает выполнить все действия вовремя. В Android-мире таких случаев особенно много — из-за большого разнообразия моделей, оболочек и версий ОС. В вебе — та же история: один и тот же сайт может вести себя по-разному в Chrome, Safari или Firefox. Поэтому баги, которые не воспроизводятся у вас, могут легко воспроизводятся у другого пользователя.


4. Приложение "запуталось"

Иногда приложение сохраняет старые данные, настройки или предыдущее состояние. И когда снова открываешь тот же экран, оно не может правильно обновиться, потому что «думает», что всё уже показано. В итоге — непредсказуемое поведение.


5. Пользователь действует "слишком быстро"

Если человек сразу после запуска приложения начинает что-то нажимать, свайпать, переключать — он может опередить логику приложения. То есть экран ещё не готов, а пользователь уже нажал — и в этот момент ничего не происходит.


Как отлавливать такие баги

Пробуйте на разных устройствах, в разных условиях. Если есть возможность, проверьте сценарии:

  • на другом телефоне или браузере,
  • при включённой/выключенной сети Wi-Fi или мобильных данных,
  • в тёмной и светлой теме,
  • после перезагрузки.

Иногда баг проявляется, если быстро кликнуть по кнопке. А иногда — наоборот, если долго ничего не делать. Попробуйте разные варианты: например, кликнули, подождали какое-то время (представим что пользователь отложил телефон или отошел от ПК), повторили действие. В таких случаях может «протухнуть» сессия или токен авторизации, и приложение может начать вести себя непредсказуемо.


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


Пробуйте анализировать. Найдите отличия: что вы делали по-другому? Были ли включены уведомления? Был ли плохой интернет? Открывался ли экран сразу после логина? Всё это поможет сузить круг причин.


Что стоит помнить при заведении баг-репорта на плавающий баг

Если баг не воспроизводится каждый раз — описывайте точную последовательность действий.

Обязательно укажите, насколько часто баг воспроизводится. Даже если он воспроизвелся всего один раз — это важно. Например: «Баг возник один раз за всё время тестирования», или «Наблюдается примерно в 2 из 10 запусков».

При описании плавающего бага важно указать все условия, в которых он появился. Укажите на каком устройстве и версии операционной системы вы тестировали, какая была версия приложения или браузер (если это веб), в каком состоянии была сеть — Wi-Fi или мобильная, хорошее ли было соединение. Также стоит упомянуть любые дополнительные детали: был ли включён VPN, тёмная тема, работало ли приложение в фоне перед этим, запускалось ли оно впервые и т.д. 

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


Все плавающие баги важно фиксировать в баг-трекере с пометкой нестабильный или flaky. Если баг не удаётся воспроизвести и исправить сразу — это не повод закрывать задачу. Лучше усилить логирование, понаблюдать за поведением бага в нескольких релизах и собрать дополнительные данные. Только если спустя время баг больше не проявляется, а логи не дают никаких зацепок, его можно обоснованно закрыть.


Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

Report Page