🐴 Дело о старой вкладке
Вы открыли заказ. Он существует. Кнопка «Отменить» доступна. Вы отвлеклись. Через час возвращаетесь в ту же вкладку. Но за это время заказ уже изменился. Что произойдёт, если теперь нажать «Отменить»?
На первый взгляд всё просто: браузер показывает старое состояние страницы. Но сервер уже живёт в другом мире. И вот здесь начинается интересная проверка. Я бы открыл один и тот же объект в двух вкладках. В первой — ничего не делал бы. Во второй — изменил состояние объекта: «Новый» → «Подтверждён».
После этого вернулся бы в первую вкладку и попробовал выполнить действие, которое было доступно раньше. Например: отменить заказ, изменить данные, удалить объект. И посмотрел бы, что произойдёт.
Система может: — корректно сообщить, что состояние уже изменилось;
— обновить страницу и показать актуальные данные;
— вернуть ошибку;
— выполнить действие, которое уже не должно быть доступно;
— а в худшем случае — привести объект в некорректное состояние.
И это уже интереснее обычной проверки: «Кнопка работает?» Потому что кнопка действительно может работать. Проблема в другом: имеет ли пользователь право выполнить это действие сейчас, если его экран показывает вчерашнее состояние системы?
Я бы пошёл ещё дальше. Проверил бы тот же сценарий: — в двух вкладках;
— с двух устройств;
— под двумя пользователями;
— после изменения прав доступа;
— после истечения сессии;
— после потери и восстановления интернета;
— после долгого простоя открытой страницы.
И отдельно посмотрел бы запрос в DevTools: что именно отправляет клиент и что отвечает сервер? Потому что хороший тест здесь — это не только: «что вижу на экране?»
А ещё: «какое состояние объекта сейчас действительно существует на сервере?»
Старая вкладка — всего лишь один пример. Та же проблема может появиться с открытой формой, карточкой товара, профилем пользователя, правами доступа, статусом платежа — практически везде, где данные могут измениться после того, как пользователь их получил.
И вот здесь ручное тестирование становится интереснее. Иногда не нужно придумывать невероятные сценарии. Достаточно спросить: «А что будет, если я просто оставлю эту страницу открытой?»