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

«Какие виды тестирования вы применяли на предыдущем проекте?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

На проекте использовался комплексный подход, включающий ручное и автоматизированное тестирование разных уровней.

Применяемые виды тестирования:

  1. Функциональное тестирование:

    • Ручное: Проверка новых фич по чек-листам, исследовательское тестирование.
    • Автоматизированное: Написание автотестов на Python + pytest для API и бизнес-логики.
      
      # Пример автотеста API с использованием requests
      import requests

    def test_api_user_creation(): url = "https://api.example.com/v1/users" payload = {"name": "John", "email": "john@test.com"} headers = {"Authorization": "Bearer token123"}

    response = requests.post(url, json=payload, headers=headers)
    
    assert response.status_code == 201, f"Expected 201, got {response.status_code}"
    assert response.json()["id"] is not None
    assert response.json()["name"] == payload["name"]
  2. Регрессионное тестирование:

    • Автоматизированный прогон ключевых тест-сьютов после каждого коммита в CI/CD (Jenkins/GitLab CI).
  3. Интеграционное тестирование:

    • Проверка взаимодействия микросервисов в Docker-окружении.
    • Тестирование интеграций со сторонними платежными системами и CRM.
  4. Нагрузочное тестирование:

    • Создание сценариев в JMeter для оценки производительности критичных API-эндпоинтов (цель: удержать время отклика <500ms при 500 RPS).
  5. UI-тестирование:

    • Автоматизация с использованием Selenium WebDriver и паттерна Page Object Model (POM) для стабильности тестов.
  6. Дымовое (Smoke) и Санитарное (Sanity) тестирование:

    • Быстрая ручная или автоматическая проверка основного функционала после деплоя на staging-среду.
  7. Кросс-браузерное и кроссплатформенное тестирование:

    • Использование Selenium Grid и облачных сервисов (BrowserStack) для проверки в Chrome, Firefox, Safari на разных ОС.

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