Files
nettopo-go/MANUAL_TEST_CHECKLIST.md
Andrey Lutsenko 235b996c5c Add standalone manual acceptance checklist.
Create dedicated cross-platform manual test checklist and link it from docs and technical specification.

Made-with: Cursor
2026-04-09 22:20:00 +10:00

98 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 будет частичной.