Стратегия тестирования¶
Модель пирамиды¶
| Слой | Что доказывает | Где запускается |
|---|---|---|
| Unit / domain | формулы, переходы, политики доступа, маппинг данных | каждый merge request |
| Contract | GraphQL/REST schema, события, файлы, mobile API V1/V2, AI gateway | merge request и nightly |
| Component | backend с БД, очередями и внешними заглушками; mobile components | merge request |
| E2E | реальные роли и критические пользовательские цепочки | test и release candidate |
| Exploratory | UX, новые функции, сложные настройки, ошибки интеграций | по риску и перед релизом |
| Non-functional | нагрузка, устойчивость, безопасность, accessibility, AI evals | расписание и release gate |
Release gate¶
Релизный pipeline должен проверять:
- P0 smoke для авторизации, изоляции, процессов и финансов.
- Отсутствие открытых blocker/critical дефектов по затронутым доменам.
- Contract-тесты текущего web/mobile API и миграционных адаптеров.
- Успешный cross-client сценарий: действие в web видно в mobile и наоборот.
- Миграции БД, rollback/forward recovery и фоновые задачи.
- Для AI — safety/evaluation набор, лимиты, трассировка и kill switch.
Тестовые данные¶
Данные создаются через API/factories и получают уникальный run_id. Общие
справочники неизменяемы во время параллельных прогонов. Очистка ограничена
сущностями текущего запуска. Для денег используются фиксированные валюты, курсы,
налоги и правила округления; для времени — явно заданная зона и граничные даты.
Evidence¶
Каждая проверка должна оставлять воспроизводимый след: версию frontend/backend, контур, роль, tenant/company, идентификатор pipeline, seed/run ID, запросы без секретов, скриншот или видео для UI и trace/correlation ID для распределённых операций.