Примеры бизнес-задач для синхронных и асинхронных процессов
Что проверяют
Понимаете ли вы, что асинхронный процесс проверяется не так, как синхронный, и умеете ли привязать это к продукту, а не к учебнику. Отвечать надо примерами из бизнеса, а следом тем, что меняется в ваших проверках.
Как отвечать
Критерий один: нужен ли пользователю результат прямо сейчас и укладывается ли работа во время ответа.
Синхронно идёт то, без чего следующий шаг бессмыслен: вход в систему, валидация формы, резерв товара на складе перед оформлением заказа, проверка баланса.
Асинхронно делается отложенное или долгое: письмо и пуш о статусе заказа, формирование выгрузки и отчёта, индексация каталога для поиска, обмен с внешними системами, пересчёт аналитики.
Дальше главное для тестировщика: у асинхронного процесса ответ и результат разнесены во времени. Ответ подтверждает только приём задачи, обычно вместе с идентификатором, по которому потом смотрят статус. Значит в проверки добавляются конечное состояние с ожиданием и разумным ограничением по времени, повторная доставка сообщения и устойчивость к дублям, поведение при упавшем обработчике, очередь неразобранных сообщений, отсутствие гарантий порядка.
Хорошо добавить, что оплата в реальности редко бывает синхронной: платёж уходит на сторону шлюза, пользователь возвращается с подтверждения, окончательный статус приходит уведомлением, и до этого момента заказ живёт в промежуточном состоянии.
Где спотыкаются
Ставят в автотесте фиксированную паузу. На нагруженном стенде она не спасает, а время прогона растёт. Нужен опрос состояния до выполнения условия с ограничением сверху.
Второе: считают задачу выполненной по коду ответа. Успешный ответ на постановку в очередь означает лишь, что задачу приняли, а проверять надо итог в базе или в интерфейсе.
Третье: проверяют только счастливый путь. Повторная доставка одного события, два одинаковых письма, дважды списанные деньги: именно здесь и живут самые дорогие дефекты.