docs: статус проекта, инструкция dev, обновление всех .md
- PROJECT_STATUS: что сделано (черновики, версии, разбор, каталог) и планы - DEV_CONTOUR_USER_GUIDE: сценарии для проверяющих на dev-стенде - README, ТЗ, card1, журнал, бэклоги, шаги 01–11+README, спринты, TEST_TABLES: ссылки и примечания - backend/PROGRESS: ссылка на PROJECT_STATUS Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Спринт 2 — тестирование (AI-помощники)
|
||||
|
||||
**Состояние продукта:** [../PROJECT_STATUS.md](../PROJECT_STATUS.md) · чек-лист импорта и API — ниже.
|
||||
|
||||
**Предпосылка:** спринт 1 (версии) принят.
|
||||
**Секреты:** для стенда допускается отдельный ключ DeepSeek; в логах/скриншотах **не** светить полный ключ.
|
||||
|
||||
**MVP 2026-04 (импорт + LLM, до полного спринта 2):** в `backend` задать `DEEPSEEK_API_KEY` *или* `OPENAI_API_KEY` → `POST /api/tests/import/document` при загрузке файла возвращает `generation.draft` → в карточке теста, блок «Импорт из файла», кнопка **«Применить сгенерированный черновик»** → затем **«Сохранить черновик»**. Юнит-тесты: `documentGenService.test.js`.
|
||||
|
||||
---
|
||||
|
||||
## 1. Автоматизировано и self-check (разработка)
|
||||
|
||||
_Отмечайте [ ] → [x] по мере выполнения._
|
||||
|
||||
### 1.1 Безопасность и API
|
||||
|
||||
- [ ] Эндпоинты настроек не возвращают сырой ключ на клиент
|
||||
- [ ] Ошибка при отсутствии/невалидном ключе — структурированная, с кодом/текстом для UI
|
||||
- [ ] «Проверить подключение» при валидном ключе — успех; при фейле — сообщение об ошибке сети/401 и т.д.
|
||||
|
||||
### 1.2 Моки / контракты (по возможности)
|
||||
|
||||
- [ ] Парсинг JSON-ответов LLM: при невалидном JSON — пользователю сообщение, не 500 без текста
|
||||
- [ ] Unit-тесты маппинга «ответ LLM → черновик теста/вопроса» (на фикстурах)
|
||||
|
||||
### 1.3 Смоук перед передачей
|
||||
|
||||
- [ ] Сгенерировать тест: только с названием; превью; применить — вопросы в редакторе
|
||||
- [ ] Проверить тест: модалка с текстом
|
||||
- [ ] Улучшить вопрос: чекбоксы, применение частично
|
||||
- [ ] Дистракторы: к существующим ответам добавилось 3 варианта
|
||||
- [ ] После применения AI-изменений сохранение теста согласовано с правилами **версий** (если были попытки)
|
||||
|
||||
---
|
||||
|
||||
## 2. Ручная приёмка (я / заказчик)
|
||||
|
||||
### 2.1 Настройки
|
||||
|
||||
- [ ] Сохранить ключ, обновить страницу — приложение не показывает ключ, но AI-функции работают
|
||||
- [ ] Очистить/испортить ключ — AI показывает ошибку и **есть** переход/ссылка на настройки
|
||||
- [ ] «Проверить подключение» отражает реальное состояние (успех/ошибка)
|
||||
|
||||
### 2.2 Уровень теста
|
||||
|
||||
- [ ] **Сгенерировать тест** недоступен при пустом названии; при заполненном — выдаёт осмысленный черновик, применяется **целиком** по кнопке
|
||||
- [ ] **Проверить тест** — рекомендации читаемы, модалка закрывается, данные теста не портит без явного применения
|
||||
- [ ] **Предложить улучшение** — сравнение было/стало, выбор чекбоксами, применяется только отмеченное
|
||||
|
||||
### 2.3 Уровень вопроса
|
||||
|
||||
- [ ] **Улучшить вопрос** — нет молчаливой перезаписи; подтверждение через чекбоксы/применить
|
||||
- [ ] **Дистракторы** — три новых **не** заменяют старые ответы
|
||||
- [ ] **Сгенерировать подсказку** — текст появляется в поле, можно отредактировать и сохранить
|
||||
|
||||
### 2.4 Версионирование + AI (регресс)
|
||||
|
||||
- [ ] На тесте **без** попыток: массовое применение AI не создаёт лишних версий бессмысленно (ожидание как в спринте 1)
|
||||
- [ ] На тесте **с** попытками: осмысленные сохранения ведут себя по правилам 4.1 (новая версия при изменении)
|
||||
|
||||
### 2.5 Дизайн
|
||||
|
||||
- [ ] Кнопки, модалки, превью, состояния загрузки/ошибок **визуально** в одном ряду с остальным модулем (как спринт 1)
|
||||
|
||||
### 2.6 Качество UX
|
||||
|
||||
- [ ] Долгий ответ LLM: индикатор ожидания, нельзя «задвоить» запросы без контроля
|
||||
- [ ] Понятные сообщения при сбое сети или API DeepSeek
|
||||
|
||||
---
|
||||
|
||||
**Итог приёмки спринта 2:** дата __________, комментарий _________________________
|
||||
Reference in New Issue
Block a user