Перейти к содержимому
easy-connect
ГлавнаяДокументацияНФТ, тесты, роадмап
Содержание ТЗ
Техническое заданиеВерсия 1.0 · 18.10.2026

08. НФТ, тестирование, роадмап и риски

Нефункциональные требования, тестирование, приёмка, роадмап, команда, риски и аналитика.

1. Нефункциональные требования

1.1. Производительность

ПоказательЦель
p95 API чтения≤ 300 мс
p95 API записи≤ 500 мс
p95 приёма вебхука≤ 300 мс
p95 запуска (webhook → действие)≤ 10 с (MVP), ≤ 5 с (v1.0)
p95 рендера лендингаLCP ≤ 2,5 с
p95 каталога (1000 связок)≤ 300 мс
Пропускная способность1000 событий/мин на 2 воркерах
Одновременные пользователи500 (MVP)

1.2. Надёжность

  • Доступность 99,5 % (MVP) → 99,9 %.
  • At-least-once доставка, идемпотентность.
  • Retry 5 попыток, DLQ.
  • Circuit breaker на коннектор.
  • Graceful shutdown воркеров (дождаться текущих задач ≤ 30 с).
  • Health checks и авторестарт контейнеров.

1.3. Масштабируемость

  • Горизонтальное масштабирование API и воркеров.
  • Партиционирование runs, events, run_logs.
  • Кэш каталога в Redis (TTL 60 с) + инвалидация при публикации.
  • Read-реплика PostgreSQL при росте.
  • Очереди с приоритетами.

1.4. Безопасность

  • OWASP ASVS Level 2 (цель).
  • TLS 1.2+, HSTS.
  • Шифрование секретов AES-256-GCM.
  • RBAC, аудит, 2FA для админов.
  • Rate limiting, SSRF-защита, CSP.
  • Ежедневный бэкап, проверка восстановления ежемесячно.

1.5. Совместимость

  • Браузеры: Chrome/Edge/Firefox/Safari последние 2 версии, мобильные Safari/Chrome.
  • Разрешения: 320–1920 px.
  • Язык: русский (MVP), локализация P2.
  • Часовые пояса: хранение UTC, отображение в TZ пользователя.
  • API: JSON, UTF-8, ISO 8601.

1.6. Наблюдаемость

  • 100 % запусков имеют run_id и trace_id.
  • Метрики, логи, алерты (см. 04-architecture.md).
  • Дашборды: API, очереди, коннекторы, биллинг.
  • SLO-дашборд и error budget.

1.7. Сопровождаемость

  • Покрытие unit-тестами ядра ≥ 70 %, коннекторов ≥ 80 %.
  • Линтеры и форматирование в CI.
  • ADR на архитектурные решения.
  • Документация API (OpenAPI) и runbook.
  • Conventional Commits, ревью не менее 1 человека.

1.8. Локализация и доступность

  • Все пользовательские тексты — в i18n-файлах (ru).
  • Форматы дат/чисел — русские.
  • WCAG 2.1 AA.
  • prefers-reduced-motion.

1.9. Правовые и данные

  • Данные в РФ, 152-ФЗ.
  • Сроки хранения: запуски 90 дней, логи 30–90 дней, платежи 5 лет.
  • Экспорт и удаление данных по запросу.
  • DPA для B2B (P1).

2. Стратегия тестирования

2.1. Уровни

УровеньИнструментЧто проверяем
UnitVitestМаппинг, фильтры, валидаторы, биллинг-логика
ContractVitest + фикстурыКоннекторы: успех, 401, 429, 5xx, таймаут
IntegrationTestcontainersAPI + PostgreSQL + Redis, очереди
E2EPlaywrightРегистрация → подключение → тест → активация → оплата (sandbox)
Нагрузкаk6Ingest 1000/мин, 100 одновременных пользователей
БезопасностьSemgrep, Trivy, OWASP ZAPSAST, SCA, DAST
Accessibilityaxe, ручная проверкаWCAG 2.1 AA
Визуальная регрессияPlaywright screenshots (P1)Лендинг, кабинет

2.2. Обязательные тест-кейсы

  1. Регистрация, подтверждение email, сброс пароля.
  2. Вход, блокировка после 5 попыток, выход из всех сессий.
  3. OAuth: успех, отказ, повторный state, истёкший state.
  4. Токен: неверный, отозванный, истёкший.
  5. Создание активации: без подключения, без обязательных полей, дубль.
  6. Авто-маппинг: все типы полей, пустые значения, длинные строки.
  7. Фильтр: все операторы, пустой результат → skipped.
  8. Вебхук: подпись, replay, дубль, большой payload, неверный токен.
  9. Polling: курсор, пропуск, повтор.
  10. Ошибки провайдера: 401, 429, 500, timeout, сетевой сбой.
  11. Retry: успех после 2 попыток, исчерпание, ручной retry.
  12. Пауза/возобновление, удаление, переподключение.
  13. Биллинг: trial, оплата, неудача, grace, возврат, чек.
  14. Права: чужой run/activation → 404/403.
  15. Экспорт и удаление аккаунта.
  16. Админка: публикация связки, блокировка, возврат, аудит.
  17. Мобильная версия и клавиатурная навигация.
  18. Rate limit и защита от абьюза.

2.3. Тестовые данные

  • Sandbox-аккаунты провайдеров (Telegram-бот, тестовая amoCRM, Google-таблица).
  • Фикстуры с обезличенными данными.
  • Генератор событий для нагрузки.
  • Отдельная БД для e2e, очистка между тестами.

2.4. Критерии качества релиза

  • Все P0/P1 тесты зелёные.
  • Нет критичных уязвимостей (CVSS ≥ 7).
  • Покрытие ядра ≥ 70 %.
  • Lighthouse ≥ 90.
  • Успешный smoke на staging.
  • Rollback-план проверен.

3. Приёмка MVP

3.1. Функциональная приёмка

  • 15 сервисов и 40 связок опубликованы.
  • Пользователь может зарегистрироваться и подключить Telegram и Tilda.
  • Авто-маппинг работает для всех стартовых связок.
  • Тестовый запуск доставляет сообщение/создаёт запись.
  • Активация, пауза, возобновление, удаление работают.
  • Вебхук и polling обрабатываются, дубли не создаются.
  • Ошибки видны в истории, retry работает.
  • Trial 7 дней, оплата 200 ₽, чек приходит.
  • Уведомления об ошибках и оплате приходят.
  • Админка позволяет управлять каталогом и пользователями.
  • Экспорт/удаление данных работают.
  • Юридические документы опубликованы.

3.2. Нефункциональная приёмка

  • p95 ingest ≤ 300 мс, p95 запуска ≤ 10 с.
  • 1000 событий/мин без потерь.
  • 99,5 % успешных запусков на тесте.
  • Lighthouse ≥ 90, WCAG AA.
  • Нет критичных уязвимостей.
  • Бэкап/восстановление проверены.
  • Мониторинг и алерты работают.
  • Runbook и документация готовы.

3.3. Бизнес-приёмка

  • 10 пилотных пользователей прошли путь без помощи.
  • TTFV ≤ 10 минут у 8 из 10.
  • NPS пилота ≥ 30.
  • Поддержка ответила на 100 % обращений в SLA.
  • Юнит-экономика подтверждена (маржа ≥ 60 %).

4. Роадмап

Этап 0. Подготовка (2 недели)

  • Финализация ТЗ, дизайн-система, прототипы.
  • Юрлицо, ЮKassa, домен, SSL, инфраструктура.
  • Регистрация OAuth-приложений (Tilda, Google, amoCRM, Битрикс24, VK).
  • Выбор стартовых 15 сервисов и 40 связок.

Этап 1. Каркас (3 недели)

  • Монорепо, CI/CD, Docker Compose.
  • Auth, сессии, профиль.
  • Каталог, страницы связок.
  • БД, миграции, базовый API.
  • Дизайн-система и лендинг.

Этап 2. Подключения и коннекторы (4 недели)

  • OAuth-флоу, токены, шифрование.
  • SDK и манифесты.
  • Коннекторы: Telegram, Tilda, Google Sheets, Яндекс Формы, webhook.
  • Проверка подключений, состояния, переподключение.

Этап 3. Runtime (4 недели)

  • Ingest, очереди, воркеры.
  • Маппинг, фильтры, трансформации.
  • Ретраи, дедупликация, circuit breaker.
  • Polling, расписание.
  • История запусков, детали, retry.

Этап 4. Биллинг и кабинет (3 недели)

  • Trial, подписки, ЮKassa, чеки, вебхуки.
  • Дашборд, уведомления.
  • Админка (каталог, пользователи, запуски, платежи).
  • Экспорт/удаление данных.

Этап 5. Остальные коннекторы и бета (4 недели)

  • Остальные 10 сервисов, 40 связок.
  • E2E, нагрузка, безопасность.
  • Пилот 10–20 пользователей.
  • Исправления, контент, база знаний.

Этап 6. Запуск (2 недели)

  • Маркетинг, аналитика, поддержка.
  • Публичный запуск.
  • Мониторинг 2 недели, стабилизация.

Итого до публичного запуска: ~20–22 недели (5 месяцев). При команде 4–5 человек и параллельной работе — 16–18 недель.

4.1. Оценка трудозатрат

БлокЧеловеко-недели
Дизайн и прототипы6
Frontend (лендинг, кабинет, админка)20
Backend (auth, каталог, активации)18
Runtime и очереди14
Коннекторы (15)24
Биллинг и юридические тексты8
DevOps, мониторинг, безопасность8
QA и автоматизация12
Контент и поддержка5
Итого≈ 115 человеко-недель

5. Команда

РольЗагрузкаЗона
Product Manager1,0Приоритеты, каталог, метрики
UX/UI Designer0,5–1,0Дизайн-система, макеты, прототипы
Full-stack / Frontend1,0Next.js, кабинет, лендинг
Backend1,0API, runtime, биллинг
Connector Engineer1,015 коннекторов, SDK
QA0,5–1,0Тест-планы, автоматизация
DevOps0,3Инфраструктура, CI/CD, мониторинг
Support / Content0,5База знаний, первая линия

Минимальная команда: PM + 2 full-stack + connector + QA (5 человек). Дизайнер и DevOps — part-time.


6. Риски и митигация

#РискВер.ВлияниеМитигация
1Модерация OAuth затягиваетсяВыс.Выс.Ранний старт, резервные токен-подключения
2Провайдер меняет APIВыс.Сред.Версии, мониторинг, тесты, быстрый патч
3Мало связок → низкая конверсияВыс.Выс.Топ-40 сценариев, универсальный webhook
4Абьюз (спам через SMS/Telegram)Сред.Выс.Верификация, лимиты, модерация, блокировки
5Высокая нагрузка поддержкиСред.Выс.База знаний, диагностика, шаблоны
6Низкая маржаСред.Выс.Автоматизация, контроль инфраструктуры
7Утечка токеновНиз.Крит.Шифрование, аудит, минимизация, пентест
8Сбой платежейСред.Выс.Ретраи, второй провайдер (P1), мониторинг
9Конкуренты демпингуютСред.Сред.Скорость, поддержка, ниша, бренд
10Блокировки зарубежных APIСред.Выс.Российские альтернативы, статус коннекторов
11Юридические претензии по ПДнНиз.Выс.152-ФЗ, DPA, минимизация, аудит
12Рост стоимости инфраструктурыСред.Сред.Лимиты fair use, оптимизация, тарифы

7. Аналитика

7.1. События (пример)

СобытиеСвойства
page_viewpath, referrer, utm
bundle_viewbundle_slug, source, target
signup_startedbundle_slug
signup_completedmethod
connection_startedservice, auth_type
connection_succeededservice, duration_ms
connection_failedservice, error_type
test_runbundle_slug, status
activation_createdbundle_slug
trial_startedactivation_id
checkout_startedamount, activations
payment_succeededamount, activations
payment_failedreason
run_succeededbundle_slug, duration_ms
run_failedbundle_slug, error_type
activation_pausedreason
support_openedsource, run_id

7.2. Дашборды

  1. Воронка: visit → bundle_view → signup → connect → test → activation → payment.
  2. Продукт: active bundles, runs/day, success rate, top errors.
  3. Коннекторы: latency, error rate, availability.
  4. Биллинг: MRR, trial conversion, churn, failed payments.
  5. Поддержка: тикеты, SLA, топ-темы.

7.3. Инструменты

  • Яндекс Метрика (с согласием), серверная аналитика в PostgreSQL.
  • Собственный event pipeline (P1) или PostHog self-hosted (P2).
  • A/B тесты через feature flags (P1).

7.4. Приватность аналитики

  • Не отправлять email, телефоны, payload в аналитику.
  • user_id — хеш.
  • Согласие на аналитические cookie.
  • Срок хранения событий — 12 месяцев.

8. План запуска (launch checklist)

За 4 недели

  • Контент лендинга и каталога готов.
  • Юридические документы опубликованы.
  • ЮKassa в боевом режиме.
  • Мониторинг и алерты.
  • Пилотная группа 10–20 человек.
  • База знаний топ-20 статей.

За 1 неделю

  • Нагрузочный тест.
  • Проверка бэкапа/восстановления.
  • Проверка платежей и чеков.
  • Smoke-тест всех 40 связок.
  • Поддержка на связи, шаблоны ответов.
  • План отката.

День запуска

  • Деплой, миграции, smoke.
  • Проверка лендинга, каталога, регистрации.
  • Проверка оплаты.
  • Мониторинг 4 часа.
  • Публикация в каналах.

После запуска

  • Ежедневный обзор ошибок 2 недели.
  • Сбор обратной связи.
  • Приоритизация улучшений.
  • Постмортем через 30 дней.