Найти тему

🚀 Стабильность автотестов

Стабильность автотестов важна для всего процесса
Стабильность автотестов важна для всего процесса

Хорошо, когда автотест никогда не падает... или плохо?

Хочется, чтобы падение показывало реальное отклонение от ожидаемого поведения, но порой случаются так называемые flaky, из-за которых сложно оценить состояние функционала.

Наша задача как инженеров уменьшать эту вероятность, добавляя стабильности

Как можно улучшить стабильность автотеста? Вот некоторые советы:

🎯 позапускать локально/удалённо свой автотест несколько раз в несколько потоков, тем самым проверив на работу под небольшой нагрузкой и в параллели

❔ позадавать вопросы "А что произойдёт, если ... ?", проверив на места, где могут быть какие-то моменты, влияющие на стабильность (к примеру, в тесте закрывается какой-то баннер, но он иногда может не появится, сможет ли автотест это корректно обработать или нет)

🔄 делать переповторы запросов/действий там, где это возможно (возьмём асинхронные обработки в API, делаем перезапросы, чтобы дождаться нужного ответа)

📥 проверяем подготовку тестовых данных, что она выполняются стабильно (к примеру, для пользователя перед тестом выставлялся рандомный язык и это могло повлиять на сам тест)

♻️ делать хотя бы минимальное количество перезапусков самого теста, с возможностью перезапустить на другом окружении (если это возможно технически), так можно уберечься от случайных падений из-за сети/инфраструктуры

🖲 делать стабильные локаторы, менее склонных к изменениям, то есть, например, для web'а это будет aria-* атрибуты, а также data-* (test, testid, как угодно тут), на которые можно договариваться с разработкой и опираться на них

🎭 использовать моки там, где нужно подменить какой-то ответ от сервера

✅ Выбирайте также надёжные и стабильные фреймвоки для автотестов, чтобы не было сюрпризов) И, разумеется, тестируемые приложения и инфраструктура должны быть стабильны, это всё напрямую влияет на автотесты)

Тэги: #автотесты #советы

Мой канал в Telegram:

QArelia | Blog about QA 🧩