# 2. Offline Practice & Quizzes — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: offline_practice_quizzes.md — every feature, sub-feature, and rule covered

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature, expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 2.1 Offline Quiz Taking | Download a practice quiz for offline use | TC-ST-12-02-001 |
| 2.1 Offline Quiz Taking | Take a quiz offline | TC-ST-12-02-002 |
| 2.1 Offline Quiz Taking | Answers stored locally while offline | TC-ST-12-02-003 |
| 2.1 Offline Quiz Taking | Quiz results sync when back online | TC-ST-12-02-004 |
| 2.1 Offline Quiz Taking | Grading on sync | TC-ST-12-02-005 |
| 2.1 Offline Quiz Taking | Offline quiz list (downloaded) | TC-ST-12-02-006 |
| 2.1 Offline Quiz Taking | Delete a downloaded quiz | TC-ST-12-02-007 |
| 2.1 Offline Quiz Taking | Quiz event logging (downloaded, taken, synced) | TC-ST-12-02-008 |
| 2.1 Offline Quiz Taking | Audit logging of the offline quiz taking | TC-ST-12-02-009 |
| 2.1 Offline Quiz Taking | Rule: A quiz must be downloaded before it can be taken offline. | TC-ST-12-02-001 |
| 2.1 Offline Quiz Taking | Rule: Answers are stored locally while offline. | TC-ST-12-02-002 |
| 2.1 Offline Quiz Taking | Rule: Results sync and are graded when back online. | TC-ST-12-02-003 |
| 2.1 Offline Quiz Taking | Rule: Deleting a quiz removes it from the device. | TC-ST-12-02-004 |
| 2.1 Offline Quiz Taking | Rule: Quiz events (downloaded, taken, synced) are logged with the quiz and the timestamp. | TC-ST-12-02-005 |
| 2.1 Offline Quiz Taking | Rule: The offline quiz taking is audit-logged with the account, the quiz, and the timestamp. | TC-ST-12-02-006 |
| 2.2 Offline Flashcard Study | Download a flashcard deck for offline study | TC-ST-12-02-010 |
| 2.2 Offline Flashcard Study | Study a deck offline | TC-ST-12-02-011 |
| 2.2 Offline Flashcard Study | Self-rate recall offline (Again, Good, Easy) | TC-ST-12-02-012 |
| 2.2 Offline Flashcard Study | Study session syncs when back online | TC-ST-12-02-013 |
| 2.2 Offline Flashcard Study | Card mastery updates on sync | TC-ST-12-02-014 |
| 2.2 Offline Flashcard Study | Offline deck list (downloaded) | TC-ST-12-02-015 |
| 2.2 Offline Flashcard Study | Delete a downloaded deck | TC-ST-12-02-016 |
| 2.2 Offline Flashcard Study | Deck event logging (downloaded, studied, synced) | TC-ST-12-02-017 |
| 2.2 Offline Flashcard Study | Audit logging of the offline flashcard study | TC-ST-12-02-018 |
| 2.2 Offline Flashcard Study | Rule: A deck must be downloaded before it can be studied offline. | TC-ST-12-02-010 |
| 2.2 Offline Flashcard Study | Rule: Ratings are stored locally while offline. | TC-ST-12-02-011 |
| 2.2 Offline Flashcard Study | Rule: The study session syncs when back online. | TC-ST-12-02-012 |
| 2.2 Offline Flashcard Study | Rule: Card mastery updates on sync. | TC-ST-12-02-013 |
| 2.2 Offline Flashcard Study | Rule: Deck events (downloaded, studied, synced) are logged with the deck and the timestamp. | TC-ST-12-02-014 |
| 2.2 Offline Flashcard Study | Rule: The offline flashcard study is audit-logged with the account, the deck, and the timestamp. | TC-ST-12-02-015 |
| 2.3 Offline Exam Practice | Download a past paper or mock for offline practice | TC-ST-12-02-019 |
| 2.3 Offline Exam Practice | Attempt the paper/mock offline | TC-ST-12-02-020 |
| 2.3 Offline Exam Practice | Answers stored locally while offline | TC-ST-12-02-021 |
| 2.3 Offline Exam Practice | Attempt syncs when back online | TC-ST-12-02-022 |
| 2.3 Offline Exam Practice | Grading on sync | TC-ST-12-02-023 |
| 2.3 Offline Exam Practice | Offline paper/mock list (downloaded) | TC-ST-12-02-024 |
| 2.3 Offline Exam Practice | Delete a downloaded paper/mock | TC-ST-12-02-025 |
| 2.3 Offline Exam Practice | Paper event logging (downloaded, attempted, synced) | TC-ST-12-02-026 |
| 2.3 Offline Exam Practice | Audit logging of the offline exam practice | TC-ST-12-02-027 |
| 2.3 Offline Exam Practice | Rule: A paper or mock must be downloaded before it can be attempted offline. | TC-ST-12-02-019 |
| 2.3 Offline Exam Practice | Rule: Answers are stored locally while offline. | TC-ST-12-02-020 |
| 2.3 Offline Exam Practice | Rule: The attempt syncs and is graded when back online. | TC-ST-12-02-021 |
| 2.3 Offline Exam Practice | Rule: Deleting a paper removes it from the device. | TC-ST-12-02-022 |
| 2.3 Offline Exam Practice | Rule: Paper events (downloaded, attempted, synced) are logged with the paper and the timestamp. | TC-ST-12-02-023 |
| 2.3 Offline Exam Practice | Rule: The offline exam practice is audit-logged with the account, the paper, and the timestamp. | TC-ST-12-02-024 |

## 2.1 Offline Quiz Taking

### TC-ST-12-02-001 — Download a practice quiz for offline use
**Type:** Positive
**Covers:** 2.1 → Download a practice quiz for offline use; Rule: A quiz must be downloaded before it can be taken offline.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Download a practice quiz for offline use.
2. Observe the result and verify the full behavior: Download a practice quiz for offline use.
**Expected Result:** Download a practice quiz for offline use — delivered exactly as documented.
**Priority:** Critical

### TC-ST-12-02-002 — Take a quiz offline
**Type:** Positive
**Covers:** 2.1 → Take a quiz offline; Rule: Answers are stored locally while offline.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Take a quiz offline.
2. Observe the result and verify the full behavior: Take a quiz offline.
**Expected Result:** Take a quiz offline — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-003 — Answers stored locally while offline
**Type:** Positive
**Covers:** 2.1 → Answers stored locally while offline; Rule: Results sync and are graded when back online.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Answers stored locally while offline.
2. Observe the result and verify the full behavior: Answers stored locally while offline.
**Expected Result:** Answers stored locally while offline — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-004 — Quiz results sync when back online
**Type:** Positive
**Covers:** 2.1 → Quiz results sync when back online; Rule: Deleting a quiz removes it from the device.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Quiz results sync when back online.
2. Observe the result and verify the full behavior: Quiz results sync when back online.
**Expected Result:** Quiz results sync when back online — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-005 — Grading on sync
**Type:** Positive
**Covers:** 2.1 → Grading on sync; Rule: Quiz events (downloaded, taken, synced) are logged with the quiz and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Grading on sync.
2. Observe the result and verify the full behavior: Grading on sync.
**Expected Result:** Grading on sync — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-006 — Offline quiz list (downloaded)
**Type:** Positive
**Covers:** 2.1 → Offline quiz list (downloaded); Rule: The offline quiz taking is audit-logged with the account, the quiz, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Offline quiz list (downloaded).
2. Observe the result and verify the full behavior: Offline quiz list (downloaded).
**Expected Result:** Offline quiz list (downloaded) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-007 — Delete a downloaded quiz
**Type:** Positive
**Covers:** 2.1 → Delete a downloaded quiz
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Delete a downloaded quiz.
2. Observe the result and verify the full behavior: Delete a downloaded quiz.
**Expected Result:** Delete a downloaded quiz — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-008 — Quiz event logging (downloaded, taken, synced)
**Type:** Positive
**Covers:** 2.1 → Quiz event logging (downloaded, taken, synced)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Quiz event logging (downloaded.
2. Observe the result and verify the full behavior: Quiz event logging (downloaded, taken, synced).
**Expected Result:** Quiz event logging (downloaded, taken, synced) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-009 — Audit logging of the offline quiz taking
**Type:** Positive
**Covers:** 2.1 → Audit logging of the offline quiz taking
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the offline quiz taking.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.2 Offline Flashcard Study

### TC-ST-12-02-010 — Download a flashcard deck for offline study
**Type:** Positive
**Covers:** 2.2 → Download a flashcard deck for offline study; Rule: A deck must be downloaded before it can be studied offline.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Download a flashcard deck for offline study.
2. Observe the result and verify the full behavior: Download a flashcard deck for offline study.
**Expected Result:** Download a flashcard deck for offline study — delivered exactly as documented.
**Priority:** Critical

### TC-ST-12-02-011 — Study a deck offline
**Type:** Positive
**Covers:** 2.2 → Study a deck offline; Rule: Ratings are stored locally while offline.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Study a deck offline.
2. Observe the result and verify the full behavior: Study a deck offline.
**Expected Result:** Study a deck offline — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-012 — Self-rate recall offline (Again, Good, Easy)
**Type:** Positive
**Covers:** 2.2 → Self-rate recall offline (Again, Good, Easy); Rule: The study session syncs when back online.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Self-rate recall offline (Again.
2. Observe the result and verify the full behavior: Self-rate recall offline (Again, Good, Easy).
**Expected Result:** Self-rate recall offline (Again, Good, Easy) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-013 — Study session syncs when back online
**Type:** Positive
**Covers:** 2.2 → Study session syncs when back online; Rule: Card mastery updates on sync.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Study session syncs when back online.
2. Observe the result and verify the full behavior: Study session syncs when back online.
**Expected Result:** Study session syncs when back online — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-014 — Card mastery updates on sync
**Type:** Positive
**Covers:** 2.2 → Card mastery updates on sync; Rule: Deck events (downloaded, studied, synced) are logged with the deck and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Card mastery updates on sync.
2. Observe the result and verify the full behavior: Card mastery updates on sync.
**Expected Result:** Card mastery updates on sync — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-015 — Offline deck list (downloaded)
**Type:** Positive
**Covers:** 2.2 → Offline deck list (downloaded); Rule: The offline flashcard study is audit-logged with the account, the deck, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Offline deck list (downloaded).
2. Observe the result and verify the full behavior: Offline deck list (downloaded).
**Expected Result:** Offline deck list (downloaded) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-016 — Delete a downloaded deck
**Type:** Positive
**Covers:** 2.2 → Delete a downloaded deck
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Delete a downloaded deck.
2. Observe the result and verify the full behavior: Delete a downloaded deck.
**Expected Result:** Delete a downloaded deck — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-017 — Deck event logging (downloaded, studied, synced)
**Type:** Positive
**Covers:** 2.2 → Deck event logging (downloaded, studied, synced)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Deck event logging (downloaded.
2. Observe the result and verify the full behavior: Deck event logging (downloaded, studied, synced).
**Expected Result:** Deck event logging (downloaded, studied, synced) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-018 — Audit logging of the offline flashcard study
**Type:** Positive
**Covers:** 2.2 → Audit logging of the offline flashcard study
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the offline flashcard study.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.3 Offline Exam Practice

### TC-ST-12-02-019 — Download a past paper or mock for offline practice
**Type:** Positive
**Covers:** 2.3 → Download a past paper or mock for offline practice; Rule: A paper or mock must be downloaded before it can be attempted offline.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Download a past paper or mock for offline practice.
2. Observe the result and verify the full behavior: Download a past paper or mock for offline practice.
**Expected Result:** Download a past paper or mock for offline practice — delivered exactly as documented.
**Priority:** Critical

### TC-ST-12-02-020 — Attempt the paper/mock offline
**Type:** Positive
**Covers:** 2.3 → Attempt the paper/mock offline; Rule: Answers are stored locally while offline.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Attempt the paper/mock offline.
2. Observe the result and verify the full behavior: Attempt the paper/mock offline.
**Expected Result:** Attempt the paper/mock offline — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-021 — Answers stored locally while offline
**Type:** Positive
**Covers:** 2.3 → Answers stored locally while offline; Rule: The attempt syncs and is graded when back online.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Answers stored locally while offline.
2. Observe the result and verify the full behavior: Answers stored locally while offline.
**Expected Result:** Answers stored locally while offline — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-022 — Attempt syncs when back online
**Type:** Positive
**Covers:** 2.3 → Attempt syncs when back online; Rule: Deleting a paper removes it from the device.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Attempt syncs when back online.
2. Observe the result and verify the full behavior: Attempt syncs when back online.
**Expected Result:** Attempt syncs when back online — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-023 — Grading on sync
**Type:** Positive
**Covers:** 2.3 → Grading on sync; Rule: Paper events (downloaded, attempted, synced) are logged with the paper and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Grading on sync.
2. Observe the result and verify the full behavior: Grading on sync.
**Expected Result:** Grading on sync — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-024 — Offline paper/mock list (downloaded)
**Type:** Positive
**Covers:** 2.3 → Offline paper/mock list (downloaded); Rule: The offline exam practice is audit-logged with the account, the paper, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Offline paper/mock list (downloaded).
2. Observe the result and verify the full behavior: Offline paper/mock list (downloaded).
**Expected Result:** Offline paper/mock list (downloaded) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-025 — Delete a downloaded paper/mock
**Type:** Positive
**Covers:** 2.3 → Delete a downloaded paper/mock
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Delete a downloaded paper/mock.
2. Observe the result and verify the full behavior: Delete a downloaded paper/mock.
**Expected Result:** Delete a downloaded paper/mock — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-026 — Paper event logging (downloaded, attempted, synced)
**Type:** Positive
**Covers:** 2.3 → Paper event logging (downloaded, attempted, synced)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Paper event logging (downloaded.
2. Observe the result and verify the full behavior: Paper event logging (downloaded, attempted, synced).
**Expected Result:** Paper event logging (downloaded, attempted, synced) — delivered exactly as documented.
**Priority:** High

### TC-ST-12-02-027 — Audit logging of the offline exam practice
**Type:** Positive
**Covers:** 2.3 → Audit logging of the offline exam practice
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the offline exam practice.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical
