Ответ
Типичное соотношение — ~70% Backend и ~30% Frontend тестирования.
Backend-фокус (70%):
- Тестирование API (REST, GraphQL): валидация контрактов, статус-кодов, структуры ответов, бизнес-логики.
- Работа с базами данных: проверка корректности записей после операций.
- Интеграционное тестирование взаимодействия между сервисами.
- Тестирование производительности и нагрузки на API.
Frontend-фокус (30%):
- Проверка критичной пользовательской логики, связанной с бэкендом (отправка форм, обработка ошибок).
- Валидация данных на стороне клиента.
- Базовые проверки UI: соответствие макетам, кроссбраузерность ключевых сценариев.
Пример теста для Backend (создание пользователя через API):
import requests
def test_user_creation_api():
"""Тестирует эндпоинт создания нового пользователя."""
url = "https://api.example.com/v1/users"
payload = {
"name": "John Doe",
"email": "john.doe@example.com"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
# Проверяем успешный ответ
assert response.status_code == 201
response_data = response.json()
assert "id" in response_data
assert isinstance(response_data["id"], str)
assert response_data["name"] == payload["name"]
assert response_data["email"] == payload["email"]
# (Дополнительно) Проверяем, что пользователь появился в БД
# db_check_user_exists(response_data["id"]) ...
Фронтенд-тестирование часто сосредоточено на интеграционных точках с этим бэкендом.