← Quay lại mục lục

Bài 21 — Quiz / Test với timer

Bài thi 10 câu trắc nghiệm với timer 60s, scoring, pass threshold ≥ 7.

Khó #quiz #timer #scoring #state #time-based

📝 Bài 21: Quiz / Test với timer

Bài thi trắc nghiệm 10 câu hỏi với timer 60 giây (demo, spec gốc 5 phút). Test time-based + scoring + decision table.

📌 Cấu hình

  • Số câu hỏi: 10 câu trắc nghiệm 4 đáp án (A/B/C/D)
  • Mỗi câu: 1 điểm (max 10)
  • Timer: 60 giây (spec: 5 phút)
  • Pass: ≥ 7 điểm

🎯 Quy tắc

  1. User chọn 1 đáp án cho mỗi câu (radio).
  2. Có nút "Submit" để nộp sớm.
  3. Khi timer = 0 → tự động submit (force submit).
  4. Sau khi submit → hiển thị điểm + đáp án đúng + Pass/Fail.
  5. Sau submit, KHÔNG cho thay đổi đáp án (form lock).
  6. Nút "Mark for review" trên mỗi câu (visual flag — không ảnh hưởng điểm).
  7. Câu chưa trả lời tính 0 điểm (không trừ).

📋 Display

  • Header: timer (đếm ngược MM:SS) + counter (X/10 đã trả lời) + nút Submit.
  • Body: list 10 câu hỏi.
  • Result: hiển thị sau submit — score (X/10), Pass/Fail, đáp án đúng từng câu.

🎯 Yêu cầu

  1. Test happy path: trả lời đầy đủ → Submit → score đúng.
  2. Test timer = 0 → tự submit + lock form.
  3. Test sau submit → click radio không thay đổi.
  4. Test scoring: câu chưa trả lời (skip) → tính 0 điểm.
  5. Test boundary score: 6/10 = Fail, 7/10 = Pass, 10/10 = Pass.
  6. Test nút "Mark for review" — visual only.
⚠️ Bug được cài cắm: timer không stop sau submit, scoring (câu skip), lock form không hoạt động, pass threshold sai, đáp án đúng hiển thị sai.
🔐

Vui lòng đăng nhập để nộp bài.

Đăng nhập
🔐

Tab dành cho giảng viên

Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.