You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.3 KiB
5.3 KiB
Спринт 2 — тестирование (AI-помощники)
Состояние продукта: ../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: дата __________, комментарий _________________________