docs: LDD baseline с mutation и browser E2E
This commit is contained in:
@@ -44,16 +44,27 @@
|
||||
|
||||
# 4. Проверка upgrade с master-схемы
|
||||
./scripts/ldd-migration-upgrade.sh
|
||||
|
||||
# 5. Mutation testing критичных P0-компонентов
|
||||
./scripts/ldd-mutation.sh
|
||||
|
||||
# 6. Браузерный E2E (Playwright + Chromium)
|
||||
./scripts/ldd-browser.sh
|
||||
```
|
||||
|
||||
Для E2E один раз установите зависимости: `cd e2e && npm install`.
|
||||
Mutation harness использует JUnit 4: JUnit5-плагин PIT несовместим с JUnit
|
||||
Platform 6 из Spring Boot 4.
|
||||
|
||||
Отчёт: `build/reports/evidence/index.md`.
|
||||
|
||||
## Правила
|
||||
|
||||
1. Новое P0-требование без свидетельства не мержится.
|
||||
2. Свидетельство должно быть воспроизводимым в CI, а не «проверил руками».
|
||||
3. Тест должен падать при поломке соответствующей логики; для критичных
|
||||
пакетов позже добавим mutation testing.
|
||||
3. Тест должен падать при поломке соответствующей логики. Для критичных
|
||||
пакетов это измеряется mutation testing: сейчас `CourseAccessService` —
|
||||
75% test strength, `PromotionPlanner` — 69%.
|
||||
4. Один тест может подтверждать несколько claims, но claim не должен
|
||||
опираться на тест, который проверяет только реализацию.
|
||||
5. `limitations` обязателен: LDD не должен создавать иллюзию полного
|
||||
@@ -65,12 +76,21 @@
|
||||
|
||||
## Текущий baseline
|
||||
|
||||
Первый прогон LDD выполнен 2026-10-27:
|
||||
Первый LDD-цикл выполнен 2026-10-27/28:
|
||||
|
||||
- 267 автоматических тестов, 0 failures/errors;
|
||||
- 33 claims: P0 — доступы, повышение, жизненный цикл, профиль/скачивание,
|
||||
материалы/активы, миграция V13, аудит; P1 — группы, авторство, UI,
|
||||
контракты, импорт, копирование лаб, runtime.
|
||||
- Runtime-smoke и master-upgrade вынесены в отдельные скрипты.
|
||||
- **273 автоматических теста**, 0 failures/errors;
|
||||
- **34 claims**: 19 P0 + 15 P1. P0 — доступы, повышение, жизненный цикл,
|
||||
профиль/скачивание, материалы/активы, миграция V13, аудит; P1 — группы,
|
||||
авторство, UI, контракты, импорт, копирование лаб, runtime, mutation и
|
||||
browser E2E;
|
||||
- mutation testing: `CourseAccessService` 75% test strength,
|
||||
`PromotionPlanner` 69%;
|
||||
- Playwright: 3 сценария (admin, teacher, student/anonymous), все зелёные;
|
||||
- runtime-smoke, master-upgrade, mutation и browser E2E вынесены в отдельные
|
||||
скрипты.
|
||||
|
||||
Результаты и найденные пробелы — в `baseline-2026-10-27.md`.
|
||||
В ходе E2E найден и исправлен реальный дефект: Jackson 3 не применял
|
||||
Kotlin-модуль, поэтому DTO с default-значениями требовали все поля JSON
|
||||
(например, создание студента без `firstName`/`basis` давало 400).
|
||||
|
||||
Результаты и остаточные ограничения — в `baseline-2026-10-27.md`.
|
||||
|
||||
Reference in New Issue
Block a user