Качество, метрики и проверки
NFR-01 – NFR-08
Первый полезный экран появляется до 3 секунд на согласованных устройствах и сети.
Метод: Замер холодного старта на согласованных устройствах и профиле сети.
Среда: Пилотное устройство + согласованный профиль сети
Доказательство: Отчёт с медианой и p95, перечень устройств и сети.
Типовой ответ каталога — до 2 секунд на p95 без внешнего геокодирования.
Метод: Нагрузочный тест каталога и выборки доступности.
Среда: Тестовая среда с согласованным объёмом данных
Доказательство: Отчёт p95, профиль нагрузки и ограничения.
Доступность backend не ниже 99,5% за месяц без согласованных окон обслуживания.
Метод: Мониторинг доступности и разбор инцидентов.
Среда: Production после согласования SLA
Доказательство: Месячный отчёт доступности и окна обслуживания.
Повтор финансовой операции или команды безопасен и не создаёт второй эффект.
Метод: Unit/интеграционные тесты повторов и конфликтов ключей.
Среда: Test, pilot
Доказательство: Тесты AT-04 и отчёт числа проводок/команд.
Секреты не раскрываются; права проверяются сервером; административные действия аудируются.
Метод: Проверка RBAC, аудита, конфигурации и отсутствия секретов в логах.
Среда: Test, pilot, production
Доказательство: Матрица ролей, тесты отказа, примеры аудита.
Резервная копия восстанавливается на отдельной среде; RPO/RTO требуют решения.
Метод: Учебное восстановление на отдельной среде.
Среда: Пилот/предпродакшн
Доказательство: Протокол восстановления и согласованные RPO/RTO.
Ключевые операции доступны со скринридером и увеличенным шрифтом.
Метод: Ручная проверка клавиатуры, скринридера и масштабирования.
Среда: Согласованные iOS/Android и браузеры
Доказательство: Чек-лист a11y и список известных ограничений.
Пользователь, backend, платёж и CSMS имеют связанный путь по ID.
Метод: Проверка correlation ID в логах и инцидентах.
Среда: Test, pilot
Доказательство: Пример сквозной трассировки без персональных данных.
Метрики эксплуатации
| Метрика | Единица | Источник | Порог |
|---|---|---|---|
| Доступность backend | % / минуты | Мониторинг | Порог и дежурство — открытая договорённость |
| Возраст последней телеметрии | секунды | MeterSample / CSMS | По порту и станции |
| Успешные Start/Stop | доля и длительность | Command | Рост тайм-аутов |
| Тайм-ауты CSMS | шт/мин | Адаптер CSMS | Порог не утверждён |
| Платежи в промежуточном статусе | шт и сумма | Payment | Очередь сверки |
| Повторные webhooks | шт | Webhook-журнал | Рост ошибок подписи |
| Зависшие holds и резервы | шт | SlotHold / WalletHold | Истечение и освобождение |
| Сессии без финальных показаний | шт | ChargingSession | Сверка |
| Очередь чеков и ошибки | шт | Receipt | Повтор и разбор |
| Расхождения журнала | шт | WalletEntry / операции | Финансовая сверка |
| Конфликты календаря | шт | Reservation | Расследование |
| Обращения без ответа | шт | SupportTicket | SLA поддержки |
Тестовая стратегия
Статусы, расчёты, календарь, идемпотентность демо-логики
Критичные интерактивные элементы и состояния
Основной путь и критические ошибки в браузере
AT-01–AT-13 на согласованном стенде
Проверки самого портала
- 1Главная → документация → назад с сохранением позиции.
- 2Поиск FR-006 → открыть требование → перейти к AT-02.
- 3Без входа открыть карту, выбрать станцию и порт.
- 4Создать hold, пройти демо-оплату и получить бронь.
- 5Проверить бронь и операцию в кабинете.
- 6Запустить сессию, ускорить время, остановить, открыть чек.
- 7Найти сессию, платёж и проводки в админке.
- 8Включить повтор webhook и проверить единственную проводку.
- 9Попробовать недоступное ролевое действие.
- 10Создать будущий тариф и проверить снимок существующей сессии.
- 11Включить старую телеметрию и проверить блокировку старта.
- 12Сбросить демо и проверить связанные данные.
- 13Открыть вложенный маршрут напрямую и обновить страницу.
- 14Проверить 360 px, меню, диалоги, поиск, печать и консоль.
Ограничения доказательств
- Реальные интеграции не проверяются без ключей, оборудования и тестовых кабинетов.
- Состояние «пройдено на оборудовании» не присваивается демонстрационным сценариям.
- Печать PDF использует браузерный механизм, а не собственную генерацию файла.