Какие типы проверок вы выполняете с помощью автоматизированных тестов?

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

Ответ

Автоматизированные тесты покрывают различные уровни и аспекты приложения:

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

  • Позитивные сценарии: Проверка, что функция работает при корректных входных данных.
  • Негативные сценарии: Проверка обработки ошибок при неверных данных.
  • Анализ граничных значений.

2. API-тестирование (Integration)

  • Валидация статус-кодов (200, 201, 400, 404, 500).
  • Проверка схемы ответа (JSON Schema, структура данных).
  • Проверка заголовков (headers).
  • Проверка бизнес-логики и корректности возвращаемых данных.

Пример API-теста на Python с requests:

import requests

def test_get_user():
    url = 'https://api.example.com/users/1'
    response = requests.get(url)

    # Проверка статус-кода
    assert response.status_code == 200, f"Expected 200, got {response.status_code}"

    # Проверка заголовка
    assert response.headers['Content-Type'] == 'application/json'

    # Проверка тела ответа
    data = response.json()
    assert data['id'] == 1
    assert 'name' in data
    assert isinstance(data['email'], str)
    # ... дополнительные проверки

3. UI-тестирование (E2E)

  • Соответствие макетам (pixel-perfect).
  • Корректность отображения данных.
  • Работоспособность пользовательских сценариев (логин, добавление в корзину).
  • Кроссбраузерность и адаптивность (запуск в разных браузерах и разрешениях).

4. Нефункциональное тестирование (частично)

  • Нагрузочное тестирование (с помощью k6, JMeter).
  • Проверка безопасности (базовые тесты на инъекции).

5. Тестирование базы данных

  • Проверка целостности данных после операций.
  • Проверка корректности сложных SQL-запросов.