Как проводится тестирование backend без frontend?

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

Ответ

Тестирование backend в isolation проводится напрямую через его публичные интерфейсы (API, message queues) и фокусируется на бизнес-логике, интеграциях и обработке данных.

Методы и инструменты:

  1. Тестирование REST/gRPC API:

    • Инструменты: Postman, Insomnia, Swagger UI, curl.
    • Автотесты: Написание скриптов на Python (requests, pytest), JavaScript (axios, jest), Java (RestAssured).
    # Пример API-теста на Python с pytest
    import requests
    import pytest
    
    BASE_URL = "https://api.example.com/v1"
    
    def test_get_user_returns_correct_data():
        user_id = 123
        response = requests.get(f"{BASE_URL}/users/{user_id}",
                                 headers={"Authorization": "Bearer token123"})
    
        assert response.status_code == 200
        data = response.json()
        assert data["id"] == user_id
        assert "email" in data
        # Проверка схемы ответа
        assert isinstance(data["created_at"], str)
  2. Что проверяется:

    • Валидность входных данных: параметры пути/запроса, тело запроса (JSON, XML).
    • Корректность выходных данных: статус-коды (200, 201, 400, 404, 500), структура и данные в ответе.
    • Бизнес-логика: расчёты, применение правил, состояние после операции.
    • Работа с БД: корректность записей, обновлений, транзакций.
    • Интеграции: взаимодействие с другими сервисами (мокаются или используются test doubles).
  3. Подходы к данным:

    • Использование тестовой базы данных, которая изолируется и наполняется фикстурами перед тестом.
    • Применение транзакционных тестов с откатом изменений.
  4. Интеграция в CI/CD:

    • Запуск набора API-тестов как этапа сборки для проверки стабильности бэкенда.