Ответ
Автоматизированные тесты покрывают различные уровни и аспекты приложения:
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-запросов.