docs: завершить LDD baseline и release evidence

This commit is contained in:
2026-10-28 00:40:13 +03:00
parent 85d34e78cb
commit 287e01cde8
5 changed files with 96 additions and 31 deletions

View File

@@ -488,16 +488,56 @@
},
{
"id": "LDD-BROWSER-001",
"title": "Браузерный E2E админа, преподавателя и студента",
"title": "Браузерный E2E админа, преподавателя и студента, включая сдачу и mobile",
"criticality": "P1",
"status": "active",
"requirement": "docs/evidence/README.md",
"claim": "Playwright на реальном стеке: admin видит курс и аудит, teacher открывает курс/ведомость/профиль и создаёт главу, аноним и студент не попадают в админку.",
"claim": "Playwright на реальном стеке: admin видит курс и аудит; teacher открывает курс/ведомость/профиль, создаёт главу и видит mobile-вид; student сдаёт файл; аноним и студент не попадают в админку.",
"oracle": "Playwright assertions на DOM/URL",
"runtime": [
"browser.e2e"
],
"limitations": "Один Chromium, один сценарий на роль; визуальная регрессия и мобильные размеры не проверяются."
"limitations": "4 сценария, один Chromium; нет визуальной регрессии и Safari/Firefox."
},
{
"id": "LDD-RUNTIME-002",
"title": "Нагрузочный smoke чтения курса, лаб, профиля и аудита",
"criticality": "P1",
"status": "active",
"requirement": "docs/evidence/README.md",
"claim": "100 параллельных чтений (10 workers) через gateway дают 0 ошибок и p95 < 2 c.",
"oracle": "HTTP status + latency percentiles",
"runtime": [
"runtime.load_gradebook_profile"
],
"limitations": "Smoke, не benchmark; одна машина и синтетические данные, без SLA production."
},
{
"id": "LDD-PROM-006",
"title": "Конкурентные apply/rollback одного запуска повышения",
"criticality": "P0",
"status": "active",
"requirement": "docs/07-groups-courses.md, §7",
"claim": "Два одновременных apply не дублируют историю; два одновременных rollback дают ровно один успех и один конфликт, состояние восстанавливается один раз.",
"oracle": "Результаты двух потоков, количество APPLY/ROLLBACK и history",
"evidence": [
"ru.ysu.lms.identity.promotion.PromotionConcurrencyIntegrationTest#concurrent apply of one run is idempotent and writes history once()",
"ru.ysu.lms.identity.promotion.PromotionConcurrencyIntegrationTest#concurrent rollback allows exactly one rollback and restores once()"
],
"limitations": "Два потока в одном JVM; распределённая нагрузка и несколько инстансов проверяются advisory lock-ом, но не chaos-тестом."
},
{
"id": "LDD-PROM-007",
"title": "Транзакционный apply/rollback на сгенерированных когортах",
"criticality": "P1",
"status": "active",
"requirement": "docs/07-groups-courses.md, §7",
"claim": "Для 10 сгенерированных когорт apply приводит группу к плану, а rollback возвращает точный before-state и активный статус студента.",
"oracle": "Сравнение состояния группы/студента до, после apply и после rollback",
"evidence": [
"ru.ysu.lms.identity.promotion.PromotionApplyRollbackPropertyTest#generated cohorts apply to plan and rollback to before-state()"
],
"limitations": "10 детерминированных сценариев в одной транзакции; не заменяет property-генератор по всем полям."
}
]
}