← Назад к вопросам

Как выглядит работа в текущей компании?

1.2 Junior🔥 161 комментариев
#Soft skills и карьера

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Общая структура и процессы работы в современной IT-компании на позиции QA Automation

В современной IT-компании работа QA Automation инженера — это не просто написание скриптов, а часть сложного, хорошо отлаженного процесса разработки. В моей текущей компании (условно, т.к. конфиденциальность не позволяет называть имя) мы работаем по гибридной модели Agile/Scrum с элементами CI/CD (Continuous Integration/Continuous Deployment). Вот как это выглядит изнутри.

1. Участие в Agile-циклах: от планирования до ретроспективы

Работа строится вокруг спринтов (обычно 2 недели). Мой функционал включает:

  • Планирование спринта (Sprint Planning): Совместно с командой (разработчики, продакт-менеджер, аналитик) анализируем бэклог, оцениваем задачи. Моя ключевая роль — оценить тестируемость фич, предложить подход к автоматизации, спланировать усилия на написание и поддержку автотестов.
  • Ежедневные стендапы (Daily Stand-up): Короткие встречи, где я рассказываю о прогрессе: какие тесты написаны, какие падают, какие проблемы с инфраструктурой возникли.
  • Ретроспектива (Sprint Retrospective): Анализируем, что прошло хорошо, а что — нет. Часто поднимаю вопросы стабильности тестовой среды, качества CI-пайплайна, необходимости обновить фреймворк.

2. Процесс разработки и интеграции: сердце Automation

Основная моя деятельность — встраивание автоматизации в каждый этап жизненного цикла кода.

Когда приходит новая фича (User Story):

  1. Провожу анализ требований с точки зрения автотестов: какие сценарии критичны, какие можно автоматизировать сразу, а какие оставить для ручного исследования.
  2. Участвую в создании Acceptance Criteria. Зачастую мы используем подход BDD (Behavior-Driven Development) с языком Gherkin. Это позволяет сразу писать тесты, понятные бизнесу.
    # Пример фичи (Feature)
    Feature: Кнопка "Купить"
      Scenario: Успешная покупка товара в наличии
        Given пользователь авторизован на сайте
        And товар "Книга" есть в наличии
        When пользователь нажимает "Купить" на странице товара
        Then заказ создается в статусе "Оплата"
        And пользователь видит сообщение "Товар добавлен в заказ"
    
  3. Пишу автотесты ПАРАЛЛЕЛЬНО разработке (Shift-Left Testing). Не жду готового кода. Использую моки (mock) и стабы (stub) для сервисов, чтобы тест был готов к моменту появления фичи в тестовом окружении.
    # Пример теста на pytest с моком (Python)
    import pytest
    from unittest.mock import Mock
    from order_service import OrderService
    from payment_gateway import PaymentGateway
    
    @pytest.fixture
    def mock_payment_gateway():
        # Создаем мок платежного шлюза
        mock = Mock(spec=PaymentGateway)
        mock.process_payment.return_value = {"status": "success", "transaction_id": "12345"}
        return mock
    
    def test_successful_order_creation(mock_payment_gateway):
        order_service = OrderService(payment_gateway=mock_payment_gateway)
        order = order_service.create_order(user_id=1, item_id="book_123")
    
        assert order.status == "PAYMENT_PENDING"
        mock_payment_gateway.process_payment.assert_called_once()  # Проверяем, что платеж был инициирован
    

3. CI/CD: автоматизированный контроль качества

Каждый коммит в репозитории запускает наш CI/CD пайплайн (у нас это Jenkins, но популярны также GitLab CI, GitHub Actions). Мой код — это набор автотестов, который является неотъемлемой частью этого пайплайна.

  • Стейдж сборки (Build Stage): Собирается приложение, запускаются unit-тесты разработчиков.
  • Стейдж тестирования (Test Stage): Запускается моя база интеграционных и API-тестов. Они проверяют взаимодействие сервисов.
  • Стейдж End-to-End (E2E Stage): Запускаются UI-тесты (на Selenium WebDriver или Playwright). Эти тесты выполняются в Docker-контейнерах или на Selenium Grid.
    # Пример конфигурации шага в GitLab CI (.gitlab-ci.yml)
    stages:
      - test
    
    api_tests:
      stage: test
      image: python:3.11
      script:
        - pip install -r requirements.txt
        - pytest tests/api/ --alluredir=./allure-results  # Запуск с генерацией отчета для Allure
      artifacts:
        when: always
        paths:
          - ./allure-results
    
  • Результаты: Отчеты генерируются в Allure Report или ReportPortal. Падение тестов блокирует мердж (merge) пул-реквеста (Pull Request) до фикса. Таким образом, автотесты — это quality gate.

4. Поддержка и развитие автотестового фреймворка

Примерно 20-30% времени уходит не на написание новых тестов, а на:

  • Рефакторинг и улучшение фреймворка (например, переход с Selenium на Playwright для скорости и стабильности).
  • Анализ флаки-тестов (Flaky Tests) — нестабильных тестов, которые падают случайно. Мы используем специальные инструменты для их отслеживания и либо фиксим, либо выносим в отдельную квоту.
  • Написание и поддержку тестовых утилит: фикстуры для тестовых данных, клиенты для API, кастомные отчеты.

5. Кросс-функциональное взаимодействие

Работа тесно связана с другими командами:

  • С DevOps — для настройки стабильных тестовых окружений, управления контейнерами, оптимизации пайплайна.
  • С ручными тестировщиками (QA Manual) — мы передаем им сценарные тесты для проверки сложных пользовательских сценариев, а они дают нам обратную связь по покрытию.
  • С разработчиками — постоянное общение при дебаге падающих тестов. Часто провожу код-ревью их юнит-тестов.

Ключевые технологии и стек

  • Языки: Python (основной), немного Java для legacy-проектов.
  • Фреймворки: pytest (основной), Playwright для UI, Requests для API, PyTestBDD для BDD.
  • Инструменты: Jenkins, Docker, Kubernetes (для запуска тестов), Git, Allure, Jira (для трекинга задач), ReportPortal.

Итог: Работа — это непрерывный цикл анализа, проектирования, написания кода тестов, их интеграции в CI/CD и поддержки. Цель — не "написать 1000 тестов", а создать надежный, быстрый и релевантный автоматизированный щит, который дает команде уверенность при каждом релизе, ускоряет delivery и предотвращает регрессии.

Как выглядит работа в текущей компании? | PrepBro