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

Спринт 2 — тестирование (AI-помощники)

Состояние продукта: ../PROJECT_STATUS.md · чек-лист импорта и API — ниже.

Предпосылка: спринт 1 (версии) принят.
Секреты: для стенда допускается отдельный ключ DeepSeek; в логах/скриншотах не светить полный ключ.

MVP 2026-04 (импорт + LLM, до полного спринта 2): в backend задать DEEPSEEK_API_KEY или OPENAI_API_KEYPOST /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: дата __________, комментарий _________________________