Add standalone manual acceptance checklist.

Create dedicated cross-platform manual test checklist and link it from docs and technical specification.

Made-with: Cursor
This commit is contained in:
Andrey Lutsenko
2026-04-09 22:20:00 +10:00
parent 231c9045df
commit 235b996c5c
3 changed files with 99 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
# Manual Test Checklist
Этот чек-лист нужен для финальной ручной проверки перед приемкой на Linux и Windows.
## 0) Подготовка окружения
- [ ] Установлен Go 1.22+ (`go version`)
- [ ] Установлен PostgreSQL (локально)
- [ ] Созданы БД `nettopo` и пользователь `nettopo`
- [ ] Заполнен `.env` (или экспортированы env-переменные)
Рекомендуемые env для теста:
```bash
STORE_BACKEND=postgres
DB_DSN=postgres://nettopo:nettopo@localhost:5432/nettopo?sslmode=disable
RUN_MIGRATIONS=true
SNMP_ENABLED=true
SNMP_COMMUNITY=public
HTTP_ADDR=:8080
```
## 1) Запуск приложения
- [ ] Выполнить `go run ./cmd/server`
- [ ] Открыть `http://localhost:8080/`
- [ ] Проверить health: `GET /health` возвращает `status=ok`
## 2) Создание и выполнение scan через UI
- [ ] В UI ввести CIDR (например, `192.168.1.0/24`)
- [ ] Нажать `Создать scan`
- [ ] Убедиться, что `scan_id` появился в поле
- [ ] Нажать `Ждать завершения`
- [ ] Дождаться terminal state (`done/failed/canceled`) без ошибок UI
## 3) Проверка API результатов scan
- [ ] `GET /api/scans/{id}` возвращает статус/прогресс/stats
- [ ] `GET /api/scans/{id}/hosts` возвращает хосты
- [ ] `GET /api/scans/{id}/ports` возвращает портовые проверки
- [ ] `GET /api/scans/{id}/snmp` возвращает SNMP-данные (для доступных устройств)
- [ ] `GET /api/scans/{id}/lldp` возвращает LLDP-соседей (если есть)
- [ ] `GET /api/scans/{id}/links` возвращает базовые связи
- [ ] `GET /api/scans/{id}/topology` возвращает `nodes/edges`
## 4) Проверка diff между двумя scan
- [ ] Иметь минимум два scan
- [ ] Выполнить `GET /api/scans/diff?from=<id1>&to=<id2>`
- [ ] Проверить, что поля `new_hosts/missing_hosts/new_links/missing_links` заполнены корректно
- [ ] В UI выбрать `from/to` и нажать `Сравнить`
- [ ] Убедиться, что JSON diff показывается в блоке на странице
## 5) Проверка визуализации topology в UI
- [ ] Кнопка `Загрузить` рисует граф
- [ ] Кнопка `Последний scan` подставляет свежий scan
- [ ] Выпадающие списки scan работают и подставляют id в поля
- [ ] Легенда отображается корректно
- [ ] Фильтр узлов:
- [ ] `все`
- [ ] `только новые`
- [ ] `только пропавшие`
## 6) Проверка экспорта
- [ ] `Экспорт topology JSON` сохраняет файл `topology_<scan_id>.json`
- [ ] `Экспорт diff JSON` сохраняет файл `diff_<from>_to_<to>.json`
- [ ] Экспорт без предварительной загрузки показывает понятное сообщение
## 7) Негативные сценарии
- [ ] Пустой CIDR при создании scan => понятная ошибка
- [ ] Некорректный `scan_id` в API => `404`/сообщение об ошибке
- [ ] Некорректные query-параметры (`limit`, `from/to`) => `400`
## 8) Кроссплатформенная приемка (обязательно)
### Linux
- [ ] Запуск `go run ./cmd/server` успешен
- [ ] Все пункты 1-7 пройдены
### Windows
- [ ] Запуск `go run ./cmd/server` (или `nettopo-server.exe`) успешен
- [ ] Все пункты 1-7 пройдены
## 9) Результат приемки
- [ ] Linux: PASS
- [ ] Windows: PASS
- [ ] Общий статус: READY / NOT READY
## Примечания
- LLDP/SNMP результаты зависят от реальной сети, ACL и SNMP-доступа устройств.
- Если SNMP отключен или недоступен, topology будет частичной.
+1
View File
@@ -19,6 +19,7 @@
- Валидация CIDR и exclude IP.
- Два backend-хранилища: in-memory и PostgreSQL.
- После создания scan запускается фоновый discovery с обновлением статуса и прогресса.
- Отдельный чек-лист ручной приемки: `MANUAL_TEST_CHECKLIST.md`.
## Требования
+1
View File
@@ -56,6 +56,7 @@
- [x] UI содержит легенду и фильтр отображения узлов по diff.
- [x] UI поддерживает экспорт topology/diff в JSON.
- [x] UI позволяет создать scan по CIDR и дождаться его завершения.
- [x] Подготовлен отдельный ручной чек-лист приемки (`MANUAL_TEST_CHECKLIST.md`).
## Минимальные API