5.8 KiB
5.8 KiB
FR24 / RTL-SDR test plan
1. Цель
Проверить, что локальный RTL-SDR ingest-контур работает корректно, устойчиво восстанавливается после сбоев и отдаёт данные в noisemap / карту без потерь и без разъезда состояния.
2. Уровни тестирования
2.1 Smoke tests
Быстрая проверка, что стек вообще поднялся:
- Docker Compose стартует без ошибок
postgresдоступен внутри сети composecaptureстартует и видит RTL-SDRpreprocessстартует и подключается к БДapiотвечает на health endpoint
2.2 Integration tests
Проверка связности компонентов:
captureпишет записи вraw_packetspreprocessчитаетraw_packetsи обновляетprocessing_statepreprocessсоздаёт/обновляетflights,tracks,track_pointsapiчитает данные из БД и отдаёт их в формате, нужном для карты- PostGIS-функции работают на геометриях
2.3 Recovery tests
Проверка восстановления после сбоя:
- остановить
preprocess - продолжить запись сырья
- поднять
preprocess - убедиться, что он автоматически догоняет пропущенный диапазон
- проверить, что overlap не даёт дублей
2.4 Retention tests
Проверка хранения сырья:
- raw-данные доступны не менее 3 дней
- после истечения retention raw-слой чистится автоматически
- обработанные данные не удаляются вместе с raw без причины
2.5 Resource tests
Проверка в рамках лимитов VM:
- CPU не выходит за разумный потолок при live-режиме
- RAM не утекает при длительном прогоне
- диск не растёт неконтролируемо
- логирование и БД не съедают всё место
3. Минимальный smoke checklist
- VM загружается
- USB passthrough RTL-SDR работает
docker compose up -dуспешенpostgresживой и PostGIS включёнcaptureвидит устройствоpreprocessпишет stateapiотвечает/health- хотя бы одна тестовая запись проходит путь raw → core
4. Минимальный integration checklist
- raw packet попадает в
raw_packets - создаётся/обновляется
captures - создаётся/обновляется
aircraft - создаётся/обновляется
flights - создаются
track_points - обновляется
tracks processing_stateотражает последний checkpointapiвозвращает данные для визуализации
5. Recovery сценарий
Сценарий A: preprocess down
- Остановить
preprocess - Записать часть сырья
- Запустить
preprocess - Проверить, что недостающий диапазон дочитан
- Проверить отсутствие дублей на overlap
Сценарий B: temporary DB restart
- Перезапустить
postgres - Проверить, что контейнеры восстанавливают соединение
- Проверить, что
captureиpreprocessне теряют состояние навсегда
Сценарий C: capture restart
- Перезапустить
capture - Проверить, что new live поток продолжает попадать в raw слой
- Проверить, что recovery не ломается после краткой паузы
6. Data correctness checks
- координаты в допустимых диапазонах
- время монотонно внутри одного трека/сессии там, где это ожидается
track_pointsпривязаны к правильномуflight/tracktracksиflightsне расходятся по времени и объёму- геометрии PostGIS валидны
7. Performance checks
- нет резкого роста latency на ingest
- процесс recovery не блокирует live ingest
- API отвечает в приемлемое время на типовые запросы карты
- индексы реально используются, а не декоративны
8. What must be proven before handoff to Слава
Перед передачей Славе должны быть подтверждены:
- compose stack поднимается и переживает restart
- USB RTL-SDR стабильно доступен в VM
- raw retention работает
- recovery работает
- карта может читать данные из API
- БД и схема не вываливаются за лимиты VM
- базовые smoke/integration tests пройдены
9. Что должен вернуть Dev-агент
В отчёте Dev-агента должны быть:
- список тестов, которые он запускал
- команды, которыми он тестировал
- результаты smoke/integration/recovery tests
- замечания по рискам
- список того, что требует реального RTL-SDR железа для final verification