Files
LMS/docs/evidence/baseline-2026-10-29.md

45 lines
2.8 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.

# LDD baseline: 2026-10-29
Актуальный прогон после закрытия P1/P2-остатка: контракт профиля, финальные
ограничения когорты, возврат группы из архива, пагинация, пакетные сдачи,
row-level XLSX-импорт и audit-события ростера.
## Результат
| Проверка | Результат |
|---|---|
| JUnit/интеграционные тесты | **398**, 0 failures/errors/skipped |
| ktlint + detekt | зелёные |
| Claims | **66** (27 P0 / 39 P1), **66/66 proven**, P0 gaps = 0 |
| Migration master→branch | PASS; identity `V4–V14`, повторные V13/V14 |
| Mutation `CourseAccessService` | 75% test strength (порог 70%) |
| Mutation `PromotionPlanner` | 69% test strength (порог 60%) |
| Browser E2E | 18/18 (Chromium/Firefox/WebKit) |
| Load smoke | 125 запросов, 0 ошибок, p95 0.918 с (порог < 1 с) |
## Что добавлено в этой итерации
- профиль соответствует `docs/09`: `variant.id`, `level.id/code`,
`grade.updatedBy`, `author.name`; `submissionLimit`/`submissionsTotal` и
SQL-тест «без N+1» на 10 лабораторных;
- `V14__cohort_constraints.sql`: `NOT NULL` для пяти полей когорты, полный
unique index и строгие check-ограничения; legacy-строки останавливают
миграцию с явной ошибкой;
- возврат группы из архива (`POST /api/v1/groups/{id}/restore`) с аудитом;
- пагинация `/admin/groups` и плоского списка материалов;
- `latestPerStudentByLab` — один запрос сдач на все лабораторные ведомости;
- XLSX-тесты preflight-ошибок импорта (занятый логин, неактивная группа);
- аудит `GROUP_CREATE/STUDENT_CREATE/GROUP_ENROLL/GROUP_IMPORT/GROUP_ARCHIVE/GROUP_RESTORE`;
- история членства на странице группы (последние 200 событий).
## Остаточные ограничения
- гонка импорта с параллельной вставкой логина всё ещё даёт общий 409;
- screenshot-diff/визуальной регрессии нет;
- mutation testing не 100%, нагрузочный smoke не является SLA;
- restore на staging, первый реальный Woodpecker pipeline, инвентаризация
legacy-активов и daily backup timer требуют доступа к стенду/серверу.
Артефакты прогона: `build/evidence/{runtime,migration,mutation,browser,smoke}.json`,
отчёт gate — `build/reports/evidence/index.md`.