Lewati ke isi

UAT Manual: Alur CBT Learning → Penilaian → e-Rapor

Versi: 1.0
Tanggal: 2026-06-13
Status: Siap UAT
Mode: server · Workspace: /home/scola/odoo
Environment referensi: https://dev.gcgscola.id · Odoo scoladev (:8074)

Dokumen ini menjadi panduan UAT linear dari pembuatan ujian CBT context learning sampai nilai terlihat di e-Rapor. Untuk matriks role lengkap (SPMB, independent, proctor, audit), lihat cbt-manual-uat.md. Untuk sign-off QA otomatis, lihat cbt-qa-runbook-2026-05-28.md.


1. Tujuan & Cakupan

Item Detail
Workflow utama Bank soal → buat ujian learning → publish → siswa runner → grading → publish gradebook → agregasi e-Rapor
Context ujian learning saja (nilai masuk gradebook/e-Rapor). Context independent dan admission dijelaskan di §9 sebagai out-of-scope integrasi rapor
Modul terkait scola_cbt, scola_lms / assignments, scola_report_card (e-Rapor), gradebook akademik
Evidence wajib Screenshot tiap fase, exam_id, attempt_id, status pipeline gradebook, ID rapor siswa

Prasyarat modul & konfigurasi

  • [ ] Feature flag tenant: scola_cbt aktif
  • [ ] Bobot komponen nilai rapor sudah diset (PH / PTS / PAS / US) — lihat uat-eraport-manual-e2e.md SETUP.03
  • [ ] Guru mapel sudah ditugaskan ke rombel target
  • [ ] Minimal 1 bank soal dengan ≥ 3 soal (MCQ + 1 essay untuk uji grading manual)
  • [ ] Rombel aktif dengan ≥ 2 siswa (current_batch_id terisi)

Akun uji scoladev

Peran Username Password Dipakai di fase
Guru mapel / author CBT budi.santosa budi.santosa Fase 1–5
Siswa 202600123 student123 Fase 2
Wali kelas wali_user wali123 Fase 6
Kepala sekolah kepsek kepsek123 Fase 6
Orang tua 3275081205800002 parent123 Fase 6 (opsional)

Profil Playwright: .env.e2e.scoladev.example


2. Diagram Alur End-to-End

flowchart TD
  A[Bank Soal] --> B[Buat Ujian Learning]
  B --> C{Komponen Nilai PH/PTS/PAS/US}
  C --> D[Publish: draft → schedule → held]
  D --> E[Siswa: /student/cbt + Runner]
  E --> F{Ada soal Essay?}
  F -->|Ya| G[Guru: Grading Essay]
  F -->|Tidak| H[Auto-grade MCQ]
  G --> I[Attempt status: graded]
  H --> I
  I --> J[Publish ke Gradebook]
  J --> K[Komponen nilai di Gradebook / Input Nilai Mapel]
  K --> L[Wali Kelas: agregasi rapor]
  L --> M[Kepsek: approve & publikasi]
  M --> N[Orang tua / siswa lihat rapor]

Integrasi e-Rapor: CBT learning mempublish skor ke academic.grade melalui mapping grade_component_type (PH, PTS, PAS, US). Nilai tersebut mengisi kolom komponen yang sama saat guru/wali kelas membuka Manajemen Raport > Nilai Mata Pelajaran, lalu mengalir ke workflow rapor (submit mapel → wali kelas → kepsek → portal).


3. Fase UAT — Checklist Eksekusi

Isi kolom Status: PASS / FAIL / SKIP · Tester · Tanggal · Catatan / ID

FASE 0 — Persiapan Bank Soal & Komponen Nilai

ID Langkah Hasil yang diharapkan Status
CBT-UAT-00A Login budi.santosa/faculty/question-bank Daftar bank soal tampil
CBT-UAT-00B Buat atau pilih set soal aktif (≥ 3 soal: MCQ + essay) question_count > 0 di detail set
CBT-UAT-00C Admin/kurikulum: bobot komponen rapor total 100% Konfigurasi valid (SETUP.03 e-Rapor)
CBT-UAT-00D Pastikan guru budi.santosa punya penugasan mapel + rombel uji Mapel muncul di form ulangan

FASE 1 — Pembuatan Ujian Learning (Tugas & Ulangan Kelas)

Route: /faculty/assignments/exam-create atau Tugas & Ulangan Kelas → tab Ulangan → tambah ulangan CBT

ID Langkah Hasil yang diharapkan Status
CBT-UAT-01A Buka /faculty/assignments/exam-create Form "Tambah Ulangan Baru" tampil
CBT-UAT-01B Pilih Kelas/Rombel siswa uji (mis. 8A) Rombel terpilih
CBT-UAT-01C Pilih Mata Pelajaran sesuai penugasan guru Mapel valid
CBT-UAT-01D Aktifkan CBT → pilih Bank Soal Question set terhubung
CBT-UAT-01E Set Komponen Nilai = PH (Penilaian Harian) atau PTS/PAS sesuai skenario Field grade_component_type terisi
CBT-UAT-01F Set waktu mulai ≤ sekarang, waktu selesai > sekarang, durasi (mis. 30 menit) Validasi waktu lulus
CBT-UAT-01G (Opsional) Centang Auto publish ke gradebook Flag tersimpan jika CBT aktif
CBT-UAT-01H Simpan ujian Ujian context learning, state draft; siswa rombel otomatis jadi attendee
CBT-UAT-01I Buka /faculty/assignments?tab=exams Ujian muncul di tab Ulangan (bukan di /faculty/cbt/exams)

Catatan negatif: Ujian Independent dibuat dari /faculty/cbt/examstidak masuk tab Ulangan dan tidak sinkron ke e-Rapor.


FASE 2 — Publish Ujian & Siswa Mengerjakan

ID Langkah Hasil yang diharapkan Status
CBT-UAT-02A Di detail ujian: transisi Draft → Terjadwal → Berlangsung (scheduleheld) State held, token CBT tampil untuk guru
CBT-UAT-02B Login siswa 202600123/student/cbt Kartu ujian muncul (status not_started / on_going)
CBT-UAT-02C Klik mulai → masukkan Token CBT dari detail ujian guru Runner /student/cbt/runner/:exam_id terbuka
CBT-UAT-02D Jawab semua soal (MCQ + essay jika ada) → Submit Attempt submitted atau graded (MCQ auto-grade)
CBT-UAT-02E Ulangi dengan siswa ke-2 di rombel yang sama (opsional) Kedua siswa punya attempt terpisah

Automated regression: SM-CBT-006 (Playwright) — create learning + runner submit API.


FASE 3 — Proctoring (Opsional P1)

ID Langkah Hasil yang diharapkan Status
CBT-UAT-03A Assign proctor di detail ujian → login proctor → /faculty/cbt/proctor Dashboard proctor menampilkan ujian
CBT-UAT-03B Extend time / force submit (dengan alasan) Audit log tercatat; siswa melihat efek

FASE 4 — Penilaian (Grading)

ID Langkah Hasil yang diharapkan Status
CBT-UAT-04A Guru buka /faculty/cbt/exams/:examId atau report hasil Daftar attempt; MCQ sudah berskor
CBT-UAT-04B Buka grading attempt dengan soal essay Workspace jawaban + input skor
CBT-UAT-04C Simpan skor essay → finalize Attempt status graded
CBT-UAT-04D Buka /faculty/cbt/exams/:examId → tab/report Pipeline Stage: grading ✓, gradebook pending/published, e-Rapor status

Jika bank soal hanya MCQ, fase 4B–4C bisa SKIP — lanjut ke Fase 5 setelah auto-grade.


FASE 5 — Publish Nilai ke Gradebook (Jembatan ke e-Rapor)

ID Langkah Hasil yang diharapkan Status
CBT-UAT-05A Pastikan semua attempt target sudah graded Tombol publish enabled
CBT-UAT-05B Detail ujian → Publish ke Gradebook (komponen PH/PTS/…) API publishExamResults sukses; toast sukses
CBT-UAT-05C Buka Report Hasil Ujian → panel pipeline gradebook.publishedCount > 0; tidak ada failure reason
CBT-UAT-05D Publish ulang (idempotent) Tidak duplikat nilai
CBT-UAT-05E Guru mapel → Manajemen Raport > Nilai Mata Pelajaran → rombel + mapel Kolom komponen (PH/PTS/…) terisi skor dari CBT

Mapping backend: op.exam.grade_component_typeacademic.grade dengan component_type sama.


FASE 6 — Verifikasi di e-Rapor

Lanjutkan workflow rapor standar (uat-eraport-manual-e2e.md) dengan nilai komponen yang sudah terisi dari CBT.

ID Langkah Hasil yang diharapkan Status
CBT-UAT-06A Login guru mapel → review nilai komponen dari CBT Skor konsisten dengan report CBT
CBT-UAT-06B Kirim Nilai ke Wali Kelas (GRADE.05) Status mapel Submitted
CBT-UAT-06C Login wali_user → monitoring + submit rapor (HOME.01–05) Progress lengkap; rapor waiting approval
CBT-UAT-06D Login kepsek → approve & publikasi (APP.01–04) Rapor published
CBT-UAT-06E Login parent123 / siswa → Laporan Hasil Belajar Nilai komponen CBT terlihat di rapor PDF/digital

4. Matriks Integrasi CBT ↔ e-Rapor

Tahap CBT Artefak sistem Titik integrasi e-Rapor
Create learning exam op.exam + grade_component_type Menentukan kolom komponen di input nilai mapel
Attendee auto-enroll op.exam.attendees Daftar siswa yang dinilai
Runner submit scola.cbt.attempt Sumber skor
Grading finalize attempt graded Syarat publish
Publish gradebook academic.grade Nilai komponen rapor
Submit mapel → WK → Kepsek scola.report.line / workflow rapor Agregasi final rapor

5. Skenario Independent (Tanpa e-Rapor)

Detail lengkap best practice try out/lomba: cbt-independent-admission-uat-end-to-end.md §2.

ID Langkah Hasil yang diharapkan
CBT-UAT-IND-01 Buat ujian di /faculty/cbt/exams context Independent (form ringkas) Redirect tab Pengaturan; tidak muncul di tab Ulangan assignments
CBT-UAT-IND-02 Tab Peserta → enroll multi-rombel (atau import/tambah manual) participant_count > 0; siswa lihat di /student/cbt
CBT-UAT-IND-03 Siswa selesai runner submit Attempt graded/submitted
CBT-UAT-IND-04 Coba Publish ke Gradebook Ditolak atau tombol tidak ada — independent tidak masuk gradebook learning

Automated regression: SM-CBT-003008 (Playwright).


6. Kriteria Sign-Off UAT

Semua item P0 below harus PASS:

  • [ ] CBT-UAT-01A–01I — authoring learning dari assignments
  • [ ] CBT-UAT-02A–02D — siswa mengerjakan & submit
  • [ ] CBT-UAT-05A–05E — publish gradebook + nilai terlihat di input mapel
  • [ ] CBT-UAT-06A–06E — nilai CBT muncul di rapor terpublikasi

P1 (disarankan): Fase 3 proctor, Fase 4 essay manual, idempotent re-publish.

Template sign-off

Field Nilai
Environment dev / staging / prod-pilot
Tanggal UAT
Tester
exam_id uji
Verdict PASS / FAIL / PASS with notes
Blocker

Form lengkap: uat-signoff-template.md


7. Regresi Otomatis (Playwright)

Jalankan sebelum atau sesudah UAT manual untuk memvalidasi kontrak API:

cd /home/scola/odoo/scola-fe-v2
E2E_ENV_FILE=.env.e2e.scoladev.example E2E_ODOO_URL=http://127.0.0.1:8074 \
  npx playwright test tests/e2e/smoke/cbt_smoke.spec.ts \
    tests/e2e/smoke/cbt_independent_enrollment.spec.ts \
    tests/e2e/smoke/cbt_runner_flow.spec.ts \
    --project=chromium --workers=1
Test ID Cakupan manual yang di-backup
SM-CBT-001 Guru akses workspace CBT
SM-CBT-002 Kontrak schedule siswa
SM-CBT-003–005 Independent enroll & visibility
SM-CBT-006 Learning + runner submit + tab assignments
SM-CBT-007 Independent full runner submit
SM-CBT-008 Multi-rombel enroll-batches post-create

Gap otomatis (UAT manual tetap wajib): publish gradebook → e-Rapor → approve kepsek → portal orang tua.


8. Referensi

Dokumen Isi
cbt-manual-uat.md Matriks role lengkap + SPMB + independent
cbt-qa-runbook-2026-05-28.md QC gate & playbook diagnosa
uat-eraport-manual-e2e.md Workflow rapor setelah nilai komponen terisi
cbt-exam-workspace-enrollment-plan.md Plan workspace & enrollment (Phase 1–3)
buat-ujian-cbt.md Quick start guru
configuration-guides/cbt.md Setup modul

9. Riwayat Perubahan

Tanggal Versi Perubahan
2026-06-13 1.0 Dokumen awal — alur learning CBT → gradebook → e-Rapor; referensi E2E SM-CBT-003–007
2026-06-11 1.1 Independent §5 diselaraskan workspace Phase 3; tambah SM-CBT-008