01
Зафиксируйте границы приёмки
Начните с карты точек прохода. Для каждого филиала перечислите вход, выход, служебные двери, раздевалки, бассейн, детскую зону и помещения с отдельным уровнем допуска. Рядом укажите тип считывателя, направление прохода, режим двери и ответственного сотрудника. Такая карта связывает бизнес-правило с конкретным оборудованием и помогает увидеть пропущенную зону до монтажа.
Разделите проверку на два контура. Виртуальный стенд подтверждает членство, credential, время, зону, anti-passback, offline-политику и объяснение решения для сотрудника. Полевой контур подтверждает протокол производителя, связь с контроллером, управление реле, датчик двери, питание и доставку накопленных событий. Оба результата нужны для готовности к эксплуатации.
Назначьте владельцев решений. Руководитель клуба утверждает правила доступа. Администратор проверяет рабочее место ресепшена. Интегратор отвечает за контроллеры и сеть. Команда ProGym отвечает за API, журнал, права и воспроизводимость сценариев. Один человек ведёт протокол, фиксирует фактический результат и собирает подтверждения по каждому пункту.
Определите критерий завершения заранее. Каждый обязательный сценарий получает ожидаемый код решения, понятный текст на экране, запись в тестовом журнале и подтверждение отсутствия побочного эффекта. Полевые сценарии дополнительно получают фото или видео прохода, модель устройства, версию прошивки и время события. Открытые вопросы оформляются отдельными задачами с владельцем и сроком.
- карта точек прохода и зон;
- перечень бизнес-правил;
- роли участников приёмки;
- отдельные критерии стенда и оборудования;
- единый протокол результатов.
02
Подготовьте безопасные тестовые данные
Создайте отдельное sandbox-устройство в организации клуба. Название должно явно указывать филиал и назначение, например «Приёмка входа, Yunusabad». Виртуальное устройство активируется без публичного секрета контроллера и используется только в рабочем месте сотрудника. Боевой адаптер производителя подключается позднее, после согласования схемы и сетевых условий.
Подготовьте тестовые профили клиентов. Нужен действующий член клуба с разрешённой зоной, клиент с просроченным абонементом, клиент с заморозкой, человек с ограничением, гость, ребёнок со связанным плательщиком и сотрудник клуба. Имена должны сразу объяснять сценарий, чтобы ресепшен выбирал нужный профиль без просмотра чувствительных данных реальных людей.
Выдайте каждому профилю отдельный credential. Это может быть тестовый QR, карта или виртуальный идентификатор. Запишите статус, срок действия и доступные филиалы. Один credential оставьте отозванным, один просроченным, один привяжите к другому филиалу. Матрица позволяет проверить причины отказа и убедиться, что сотрудник видит полезное объяснение.
Создайте минимальный набор членств и правил. Добавьте безлимитный абонемент, пакет с остатком, тариф только для дневного времени, доступ к выбранной зоне и членство с активной заморозкой. Зафиксируйте ожидаемый результат рядом с каждым профилем. Любое изменение тестовой базы во время приёмки попадает в протокол, иначе повторный прогон потеряет воспроизводимость.
03
Проверьте изоляцию виртуального стенда
Первый запуск должен подтвердить самую важную границу: тестовый проход хранится отдельно от живых событий доступа. После разрешённого входа откройте боевой журнал посещений и убедитесь, что там отсутствует новый визит. Проверьте журнал инцидентов, баланс занятий, остаток абонемента и дату последнего использования credential. Эти показатели должны сохранить исходные значения.
Повторите проверку для отказа, выхода и offline-режима. Тестовый журнал обязан показать устройство, клиента, направление, решение, код причины, состояние присутствия до и после, автора и время. Данные нужны для разбора приёмки, при этом они не должны участвовать в загрузке клуба, удержании, посещаемости и расчёте востребованности услуг.
Проверьте права. Сотрудник с разрешением на просмотр доступа открывает список устройств и журнал. Запуск сценария получает отдельное разрешение. Пользователь другой организации не видит устройство, credential и результаты клуба даже при прямом обращении к API. Суперадминистратор работает через явный контекст организации, а каждое действие сохраняет автора.
Проверьте неизменяемость протокола. Созданный результат остаётся доступным для чтения, а попытка переписать решение или удалить строку отклоняется. Ошибка оформляется новым запуском или отдельной заметкой приёмки. Такой порядок сохраняет фактическую последовательность и защищает команду от споров о том, какой результат был получен на демонстрации.
04
Пройдите базовую матрицу доступа
Начните с разрешённого входа активного клиента. Система должна найти credential, проверить организацию, филиал, зону, время и членство, затем вернуть allow с понятной причиной. Тестовый журнал показывает присутствие до запуска и после него. На экране ресепшена результат читается за несколько секунд и содержит имя клиента, устройство и следующий понятный шаг.
Следом проверьте выход. Для клиента внутри клуба решение должно закрыть тестовое состояние присутствия. Повторный выход показывает предсказуемый результат согласно выбранной политике. Если клуб разрешает свободный выход, код причины отражает это правило. Если направление контролируется строго, сотрудник получает объяснение о несогласованном состоянии.
Прогоните основные отказы: credential отсутствует, отозван, просрочен, принадлежит другой организации или филиалу. Затем проверьте просроченное членство, заморозку, долг, временное ограничение и закрытую зону. Каждый отказ должен иметь устойчивый машинный код и короткий текст для сотрудника. Общая фраза «доступ запрещён» усложняет работу ресепшена и поддержку.
Проверьте граничное время. Создайте дневной тариф и выполните тест непосредственно до разрешённого окна, в первую разрешённую минуту, в последнюю минуту и после окончания. Используйте контролируемое серверное время или заранее согласованные слоты. Часовой пояс организации должен совпадать с расписанием клуба и настройкой правил доступа.
- активный вход и корректный выход;
- повторный вход и повторный выход;
- просроченный и отозванный credential;
- заморозка, долг и ограничение;
- другая зона, филиал и организация;
- границы разрешённого времени.
05
Проверьте anti-passback и offline-политику
Anti-passback защищает клуб от передачи карты следующему человеку и помогает понимать фактическое присутствие. Выполните разрешённый вход, затем сразу повторите вход тем же credential. Ожидаемый отказ должен ссылаться на открытое состояние присутствия. После выхода следующий вход снова становится доступным. В журнале сохраняются все решения в правильной последовательности.
Проверьте одновременные запросы. Два запуска входа для одного credential могут прийти почти в один момент. Сервер должен сериализовать изменение состояния или вернуть ранее созданный результат по идемпотентному ключу. Итог содержит одно разрешённое изменение присутствия. Повтор после сетевого таймаута возвращает прежнее решение и не создаёт дополнительный эффект.
Offline-режим требует отдельной политики риска. Клуб определяет, какие активные credentials контроллер может хранить локально, сколько действует пакет, какие зоны доступны и что происходит после истечения срока. На виртуальном стенде проверьте разрешённый сценарий, запрещённый сценарий, устаревшую версию правил и последующую синхронизацию. Результат явно помечается как offline.
После восстановления связи контроллер отправляет накопленные события с уникальными ключами. Повторная доставка не должна создавать дубли. Конфликт состояния формирует задачу для сверки с исходным устройством, временем и credential. Руководитель получает отдельный список проблемных случаев и может оценить влияние связи до расширения запуска на другие филиалы.
06
Оцените рабочее место ресепшена
Технически правильное решение приносит пользу, когда сотрудник быстро понимает ситуацию. Откройте стенд на реальном компьютере ресепшена и на телефоне шириной около 390 пикселей. Проверьте выбор устройства, credential, направления и offline-режима. Кнопки должны оставаться удобными для касания, подписи читаемыми, а журнал не создавать горизонтальную прокрутку всей страницы.
Сотрудник должен различать боевой контур и приёмку с первого взгляда. Используйте отдельную вкладку, заметную метку sandbox и прямое предупреждение о том, что тест не создаёт визит и инцидент. Устройство реального провайдера нельзя активировать как виртуальное. Sandbox-устройство не получает секрет или публичную сессию для физического контроллера.
Проведите сценарий отказа глазами администратора. Код полезен интегратору, текст полезен смене. Экран должен объяснить, что проверить: статус абонемента, зону, время, заморозку или повторный вход. Разрешённое ручное действие оформляется отдельной командой с обязательной причиной, правом роли и записью в боевой аудит.
Проверьте состояния интерфейса: загрузку, пустой список, сетевую ошибку, повтор запроса и длинное имя клиента. Клавиатурная навигация должна доходить до каждого элемента, фокус хорошо виден, а сообщение результата озвучивается вспомогательными технологиями. Переключите русский, узбекский и английский языки и убедитесь, что ключевые действия переведены.
07
Перейдите к испытанию физического оборудования
После приёмки бизнес-правил подключите адаптер конкретного производителя. Зафиксируйте модель контроллера, прошивку, SDK или протокол, сетевой адрес, точки прохода и схему подключения реле. Устройство получает собственный секрет, который хранится в защищённом контуре и может быть заменён. Разные филиалы могут использовать разные адаптеры при общей модели доступа ProGym.
Повторите базовую матрицу на турникете. Для каждого сценария сопоставьте ответ API, действие реле, сигнал считывателя, направление прохода и событие датчика. Разрешение считается успешным после фактического открытия нужной точки. Отказ должен оставить дверь закрытой и показать сотруднику ту же понятную причину, которую команда видела на стенде.
Имитируйте потерю сети, перезапуск контроллера и задержку ответа. Проверьте срок локального пакета, безопасный режим после его истечения и очередь накопленных событий. После восстановления связи сравните время устройства и сервера, порядок входов и выходов, количество дублей и созданные конфликты. Отдельно проверьте замену секрета устройства.
Проведите тест отказоустойчивости в спокойное время. Сценарий должен учитывать ручное открытие, эвакуационный режим, пропуск сотрудников и действия охраны. Требования пожарной безопасности, физической охраны и эксплуатации утверждают ответственные специалисты клуба. ProGym фиксирует цифровую часть процесса и предоставляет журнал для последующего разбора.
08
Оформите протокол и решение о запуске
Протокол приёмки собирает дату, организацию, филиал, устройство, версию адаптера, участника, тестовый профиль, входные данные, ожидаемый и фактический результат. Виртуальные запуски уже хранят техническую часть в отдельном журнале. Команда добавляет комментарий, подтверждение полевого прохода и ссылку на задачу для любого расхождения.
Разделите дефекты по критичности. Блокирующим считается разрешение при запрещённом членстве, доступ к чужой организации, двойное изменение состояния, отсутствие безопасного режима и расхождение физического действия с решением API. Ошибка перевода или неудобная подпись может иметь меньший приоритет, но получает владельца и срок до расширения пилота.
Решение о запуске должно указывать область: один филиал, конкретные точки и согласованные часы поддержки. Первые дни команда ежедневно сверяет количество разрешений, отказов, открытых визитов, offline-событий, конфликтов и ручных проходов. Ресепшен получает короткий канал эскалации и инструкцию по стандартным причинам отказа.
Расширяйте контур после устойчивого пилота. Следующий филиал повторяет ту же матрицу с собственными зонами, сетью и оборудованием. Общие правила переиспользуются, локальные отличия фиксируются явно. Виртуальный стенд остаётся доступным для обучения новых сотрудников, проверки изменений тарифов и регрессионной приёмки после обновления адаптера.
- все обязательные сценарии имеют результат;
- боевой журнал сохранил чистые показатели;
- критические дефекты закрыты;
- оборудование подтвердило решение API;
- назначены поддержка и порядок эскалации;
- область пилота зафиксирована письменно.