Пришла в команду, г...
 
Уведомления
Очистить всё

Пришла в команду, где нет ни одного системного теста. С чего начать?

5 Сообщения
5 Пользователи
7 Реакции
244 Просмотры
nadya84
Сообщения: 4
Автор темы
Дружит с bundler QA-автоматизатор
Присоединился: 2 месяца назад
[#124]

Месяц как работаю QA-автоматизатором в команде из четырёх бэкендеров, Rails 8.1 и Hotwire. Юнит-тестов много, около 2000 на Minitest, а системных ноль, и регресс перед релизом я прохожу руками за два дня. Сама привыкла к RSpec, но тут всё на Minitest. Хочу постепенно автоматизировать и боюсь наделать сто хрупких тестов, которые все возненавидят. С каких сценариев вы бы начали?


4 ответа
Ксения 90
Сообщения: 18
Пишет тесты QA-автоматизатор
Присоединился: 4 года назад

Я бы начала не с количества, а с пяти сценариев, за которые больнее всего, если сломаются. Обычно это вход, регистрация, оформление или оплата, главный поиск и что-то из личного кабинета. Порядок, который у меня работал:
- договориться, что системные тесты гоняются в CI отдельным джобом и их падение видно сразу, а не через неделю;
- писать через assert_text и assert_selector, без sleep и без проверок базы после клика;
- данные готовить фикстурами, которые уже есть, а не накликивать через интерфейс;
- каждый автоматизированный сценарий вычёркивать из ручного регресса, чтобы было видно, сколько часов экономится.
Раз проект на Minitest, пишите на Minitest, тащить RSpec ради системных тестов команда не оценит. driven_by там такой же, и Cuprite подключается тем же способом.


Ответ
nautilus
Сообщения: 5
Пишет в irb QA-автоматизатор
Присоединился: 1 год назад

С Hotwire есть нюанс: после отправки формы страница часто не перезагружается, Turbo просто меняет кусок. assert_text это переживает, он ждёт. А вот если сравнивать page.current_path руками через assert_equal, проверка не ждёт и может увидеть старый адрес. Для адреса есть assert_current_path, он тоже умеет ждать.


Ответ
Лариса 2002
Сообщения: 9
Разобрался с блоками тимлид
Присоединился: 3 месяца назад

С позиции тимлида: системный тест, который раз в неделю падает без причины, команда начинает игнорировать уже через месяц. Лучше 15 стабильных, чем 80, из которых три всегда красные. И попросите разработчиков ставить data-test на важные кнопки и поля. В Capybara есть Capybara.test_id, после него click_on находит элемент по этому атрибуту, и тесты не ломаются, когда меняют текст.


Ответ
farid1992
Сообщения: 2
Только поставил Ruby QA-автоматизатор
Присоединился: 3 месяца назад

+1 к data-атрибутам, иначе каждая правка текста на кнопке ломает пару тестов


Ответ