Title: QA Automation Engineer
Company: NOVACARD
Department: Engineering & Technology
Location: Москва, Россия
Employment: fulltime_permanent
Experience: mid_level
В NOVACARD мы переосмысливаем то, как люди пользуются кредитными картами.
Мы первая в Мексике кредитная карта без процентов и годовой платы, разработанная для упрощения личных финансов и предоставления пользователям полного контроля — всё через мобильное приложение. С NOVACARD пользователи могут получить доступ к кредиту до 200 000 мексиканских песо, платить только тогда, когда они его используют, и управлять всем в цифровом виде менее чем за 5 минут. Наша миссия — дать людям возможность принимать более разумные финансовые решения, предлагая гибкость, прозрачность и свободу, необходимые им для достижения своих целей. Простые финансы, большие цели.
О роли
Мы ищем QA Automation Engineer, который будет отвечать за качество ключевых пользовательских сценариев во всех частях стека. В этой роли вы будете делать больше, чем просто писать автотесты — вы будете создавать надёжную систему автоматизации, которая охватывает всё: от действий клиента в мобильном приложении Flutter до валидации данных в API, очередях сообщений и базах данных.
Вы будете тесно сотрудничать с разработчиками, аналитиками, DevOps и другими QA-инженерами для обеспечения скорости и надёжности предоставления финансовых услуг. Мы ожидаем инженера, который видит риски в архитектуре микросервисов и предотвращает их с помощью хорошо продуманного автоматического покрытия. Работа полностью удалённая, с редкими командировками при необходимости.
Ключевые обязанности
- Разработка, поддержка и развитие UI автотестов для мобильного приложения Flutter (Android/iOS) с использованием Python и Appium.
- Проектирование архитектуры фреймворка автоматизации: внедрение и поддержка паттернов Page Object, бизнес-слоёв шагов, фикстур и конфигураций окружения.
- Работа с локаторами Flutter-приложения: использование Semantics labels и accessibility IDs, а также согласование их реализации с мобильными разработчиками для повышения стабильности тестов.
- Обеспечение стабильности автотестового набора: диагностика и устранение нестабильных тестов, управление ожиданиями, настройка изоляции тестов.
- Настройка и поддержка Allure-отчётности: шаги, вложения, такие как скриншоты, логи и трафик, анализ истории запусков и связывание автотестов с тест-кейсами.
- Интеграция автотестов в CI/CD с использованием GitLab CI: запуск пайплайнов, настройка параллельных запусков на эмуляторах и реальных устройствах, поддержание приемлемого времени выполнения.
- Анализ новой функциональности, участие в ревью требований, создание тест-дизайнов.
- Проведение функционального, интеграционного, регрессионного и сквозного тестирования.
- Тестирование внешних и внутренних интеграций, включая SOAP/REST API, обработку XML/JSON, авторизацию, контракты и ошибки взаимодействия сервисов.
- Анализ асинхронных процессов: очереди сообщений и шины событий, такие как Kafka и RabbitMQ, потребители, повторные попытки, идемпотентность и отложенные эффекты.
- Выявление кросс-командных зависимостей при постановке задач и согласование их с соответствующими командами до начала разработки и тестирования.
- Оценка усилий по тестированию и автоматизации, поддержка и расширение регрессионного тестового набора.
- Анализ результатов запусков, своевременное сообщение о рисках, дефектах и блокировках, подготовка отчётности по качеству.
- Автоматизация подготовки тестовых данных: использование SQL-скриптов, внутренних API сервисов, эмуляции состояний внешних систем и моков.
- Уверенная работа с базами данных: написание SQL-запросов средней сложности с JOIN и агрегациями, валидация данных после пользовательских операций в MS SQL Server и/или PostgreSQL, доступ к базам данных из кода автотестов.
- Исследование логов и метрик в системах мониторинга, таких как Kibana, OpenSearch и Grafana, отслеживание запросов между сервисами с использованием Correlation ID или Trace ID.
- Диагностика сбоев автотестов: выявление корневых причин с использованием логов устройств, трафика и логов сервисов, заведение дефектов в системе трекинга.
Ключевые требования
- Опыт в автоматизации UI-тестов мобильных приложений от 2 лет.
- Опыт тестирования приложений на основе микросервисов от 5 лет.
- Опыт тестирования внешних интеграций от 2 лет.
- Отличные знания Python: ООП, работа с библиотеками, чтение и рефакторинг кода, написание утилит и хелперов.
- Практический опыт работы с pytest: фикстуры, параметризация, маркеры, conftest, плагины.
- Практический опыт работы с Appium.
- Опыт автоматизации Flutter-приложений или готовность быстро освоить специфику автоматизации Flutter.
- Знание Git и опыт интеграции автотестов в CI/CD.
- Опыт функционального тестирования мобильных приложений Android и iOS.
- Отличное знание теории тестирования и техник тест-дизайна.
- Глубокое понимание тестирования SOAP/REST API, XML/JSON, кодов ответов HTTP, схем контрактов, авторизации на основе сессий и токенов; опыт автоматизации API-запросов на Python с использованием requests или аналогичных библиотек.
- Уверенные навыки SQL: способность самостоятельно писать запросы средней сложности, читать схемы баз данных и валидировать данные в MS SQL Server и/или PostgreSQL.
- Понимание асинхронной коммуникации сервисов: Kafka, RabbitMQ или аналогичные брокеры, потребители, идемпотентность, механизмы повторных попыток и обработка отложенных событий.
- Опыт работы с системами логирования и мониторинга, такими как Kibana, OpenSearch, Grafana или аналогичными инструментами.
- Способность самостоятельно готовить тестовые данные с использованием SQL-скриптов, внутренних API сервисов, эмуляции состояний внешних систем.
- Свободное владение русским и английским языком на уровне B1+ для работы с технической документацией и в международной команде.
Опыт разработки на Dart или чтения кода Flutter-приложений для понимания структуры виджетов и добавления Semantics keys.
Nice to Have
- Опыт работы с device farms, такими как BrowserStack, Sauce Labs или локальные device farms, Appium Grid, и параллельным выполнением на пулах устройств.
- Опыт разработки на Dart или чтения кода Flutter-приложений для понимания структуры виджетов и добавления Semantics keys.
- Опыт работы с Charles, Fiddler, Swagger, Postman и SOAP UI, включая проксирование и мокирование ответов на устройствах.
- Опыт автоматизации API-слоя как отдельного набора тестов, а также базовой автоматизации Postman и запуска коллекций через Newman.
- Опыт визуального тестирования и тестирования на основе скриншотов.
- Опыт работы с финтех или банковскими продуктами: процессинг карт, кредитные продукты, тарифы, комиссии, лимиты, статусы карт и управление жизненным циклом карты.
- Опыт тестирования BPMS-процессов и движков рабочих процессов, таких как Camunda.
- Понимание требований к безопасности финансовых приложений: обработка персональных данных, OTP-потоки, управление сессиями и базовые принципы PCI DSS.
- Опыт настройки тестовой инфраструктуры: Docker, запуск эмуляторов в CI и кеширование сборок.
- Опыт оценки задач по тестированию и работы с метриками качества QA, такими как DDE, плотность дефектов, тестовое покрытие, стабильность автотестов и время выполнения.
Что мы предлагаем
- Полностью удалённый формат работы.
- Официальное трудоустройство в соответствии с ТК РФ для резидентов России; сотрудничество по договору для кандидатов из других стран.
- Возможность работать в международной команде над инновационным цифровым кредитным продуктом для мексиканского рынка.
- Продукто-ориентированная, основанная на данных среда, где качество напрямую влияет на финансовый опыт тысяч пользователей.
- Шанс работать над сложными мобильными, бэкенд и интеграционными сценариями в быстрорастущей финтех-компании.