Галкин Александр, Senior/Lead AQA
Меня зовут Александр, я Senior/Lead AQA с фокусом на Python и построением автотестирования с нуля.
Ключевой кейс, который лучше всего отражает мой подход, — работа в МТС над платформой медиа-планирования mediapush.mts.ru.
Я пришёл в проект, где автоматизации не было вообще: 0% покрытия, релизы проверялись вручную, инциденты на проде были регулярными.
За 9 месяцев я спроектировал и внедрил E2E-фреймворк на Python + Playwright, довёл покрытие до 85%.
Внедрил CI/CD в GitLab CI: автотесты запускаются ежедневно + по pull request'ам разработчиков. После этого количество инцидентов на проде сократилось заметно — потому что мы начали ловить регресс на ранних стадиях.
85% — это покрытие критических и высокорисковых сценариев.
За базу покрытия (100%) брали не все мыслимые действия, а критический пользовательский путь (CJP) + ключевой функционал по требованиям.
15% остались в ручном регрессе: это либо слишком частые изменения UI, либо сценарии с внешними системами, где автотесты давали ложные срабатывания. Решение было осознанным — чтобы команда доверяла автотестам.
В Т1 я разработал с нуля стратегию и фреймворк автоматизации (Python, Pytest) для продукта-аналога импортозамещения Active Directory.
Тестировал протоколы LDAP, Kerberos, NTLM для интеграционного тестирования с разными ОС в гетерогенной среде.
До этого тесты запускались последовательно на одном стенде.
Я разбил их на группы по протоколам и ОС, добавил параллельный запуск в CI (pytest-xdist + GitLab CI parallel matrix). Это дало ускорение в 6 раз.
70% покрытия критических сценариев для LDAP / Kerberos — это не UI, а протоколы.
100% покрытия невозможно из-за множества комбинаций ОС и версий. Мы зафиксировали матрицу совместимости и покрыли все сочетания, которые реально встречаются у заказчиков.
До менторинга джуны писали тесты-монолиты, боялись править существующий код.
После внедрения Page Object и Factory они стали самостоятельно добавлять новые тесты за 1–2 дня вместо недели. Код-ревью перестало блокировать, а фреймворк начал жить без моего постоянного участия.