# 4. Mock Test Simulation Management — Test Cases

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

## Test Execution Policy

- Zero tolerance: any deviation from the documented behavior is a defect.
- Every failed test is logged with a Bug ID, the feature, the sub-feature, the expected vs actual result, and the severity; 100% of bugs are fixed before the group passes.
- 100% pass rate is required for the group to be marked complete.

## Coverage Matrix

| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 4.1 Exam-Like Environment Configuration | Environment strictness (no navigation, no copy-paste, fullscreen) | TC-SA-TE-6-001 |
| 4.1 Exam-Like Environment Configuration | Question palette (jump, mark for review, clear response) | TC-SA-TE-6-002 |
| 4.1 Exam-Like Environment Configuration | Auto-submit on time expiry | TC-SA-TE-6-003 |
| 4.1 Exam-Like Environment Configuration | Proctoring options (camera, tab-switch detection) | TC-SA-TE-6-004 |
| 4.1 Exam-Like Environment Configuration | Rule: tab-switch logged as violation not auto-failed | TC-SA-TE-6-005 |
| 4.1 Exam-Like Environment Configuration | Rule: auto-submit submits answered, unanswered blank | TC-SA-TE-6-006 |
| 4.1 Exam-Like Environment Configuration | Rule: fullscreen degrades gracefully on mobile | TC-SA-TE-6-007 |
| 4.1 Exam-Like Environment Configuration | Rule: no-navigation still allows question palette | TC-SA-TE-6-008 |
| 4.1 Exam-Like Environment Configuration | Audit logging of exam-like environment configuration | TC-SA-TE-6-009 |
| 4.2 Timed Test Settings | Total test duration | TC-SA-TE-7-001 |
| 4.2 Timed Test Settings | Per-section timing | TC-SA-TE-7-002 |
| 4.2 Timed Test Settings | Time warning thresholds | TC-SA-TE-7-003 |
| 4.2 Timed Test Settings | Time extension rules | TC-SA-TE-7-004 |
| 4.2 Timed Test Settings | Rule: section limits exceeding total rejected | TC-SA-TE-7-005 |
| 4.2 Timed Test Settings | Rule: warning fires once per threshold | TC-SA-TE-7-006 |
| 4.2 Timed Test Settings | Rule: extension logged and visible in record | TC-SA-TE-7-007 |
| 4.2 Timed Test Settings | Rule: section expiry auto-moves to next section | TC-SA-TE-7-008 |
| 4.2 Timed Test Settings | Audit logging of timed test settings | TC-SA-TE-7-009 |
| 4.3 Previous Year Papers Management | Paper upload (per exam type, per year) | TC-SA-TE-8-001 |
| 4.3 Previous Year Papers Management | Paper metadata (year, session, difficulty, source) | TC-SA-TE-8-002 |
| 4.3 Previous Year Papers Management | Paper question tagging (topic, importance, marks) | TC-SA-TE-8-003 |
| 4.3 Previous Year Papers Management | Paper availability (all, per cohort, per plan) | TC-SA-TE-8-004 |
| 4.3 Previous Year Papers Management | Rule: no tagged questions usable but excluded from analytics | TC-SA-TE-8-005 |
| 4.3 Previous Year Papers Management | Rule: disabled exam type not available to new students | TC-SA-TE-8-006 |
| 4.3 Previous Year Papers Management | Rule: duplicate paper rejected | TC-SA-TE-8-007 |
| 4.3 Previous Year Papers Management | Rule: per cohort availability enforced | TC-SA-TE-8-008 |
| 4.3 Previous Year Papers Management | Audit logging of previous year papers management | TC-SA-TE-8-009 |
| 4.4 Post-Test Analysis | Score analysis (total, per section, per question type) | TC-SA-TE-9-001 |
| 4.4 Post-Test Analysis | Weak area identification | TC-SA-TE-9-002 |
| 4.4 Post-Test Analysis | Time-per-section analysis | TC-SA-TE-9-003 |
| 4.4 Post-Test Analysis | Comparison (vs previous mock, vs cohort average) | TC-SA-TE-9-004 |
| 4.4 Post-Test Analysis | Rule: no completed attempts → no analysis | TC-SA-TE-9-005 |
| 4.4 Post-Test Analysis | Rule: weak area only for min attempt count | TC-SA-TE-9-006 |
| 4.4 Post-Test Analysis | Rule: cohort comparison requires min cohort size | TC-SA-TE-9-007 |
| 4.4 Post-Test Analysis | Rule: re-attempted shows latest, history retained | TC-SA-TE-9-008 |
| 4.4 Post-Test Analysis | Audit logging of post-test analysis | TC-SA-TE-9-009 |
| 4.5 Mock Test Scheduling & Series | Mock test scheduling (one-off, recurring) | TC-SA-TE-10-001 |
| 4.5 Mock Test Scheduling & Series | Mock test series (ordered sequence) | TC-SA-TE-10-002 |
| 4.5 Mock Test Scheduling & Series | Series progression rules | TC-SA-TE-10-003 |
| 4.5 Mock Test Scheduling & Series | Mock test reminders | TC-SA-TE-10-004 |
| 4.5 Mock Test Scheduling & Series | Rule: recurring respects end date | TC-SA-TE-10-005 |
| 4.5 Mock Test Scheduling & Series | Rule: progression locks next until previous done | TC-SA-TE-10-006 |
| 4.5 Mock Test Scheduling & Series | Rule: missed mock marked missed not auto-rescheduled | TC-SA-TE-10-007 |
| 4.5 Mock Test Scheduling & Series | Rule: reminder respects notification preferences | TC-SA-TE-10-008 |
| 4.5 Mock Test Scheduling & Series | Audit logging of mock test scheduling & series | TC-SA-TE-10-009 |

## 4.1 Exam-Like Environment Configuration

### TC-SA-TE-6-001 — Environment strictness (no navigation, no copy-paste, fullscreen)
**Type:** Positive
**Covers:** 4.1 → Environment strictness
**Preconditions:** A Super Admin account is active; the Target Exam feature is enabled.
**Steps:**
1. As a Super Admin, open Target Exam Management → Mock Tests → Environment.
2. Set the environment strictness (no navigation, no copy-paste, fullscreen).
3. Run a test mock and verify the environment behaves as configured.
**Expected Result:** Environment strictness — delivered exactly as documented.
**Priority:** Critical

### TC-SA-TE-6-002 — Question palette (jump, mark for review, clear response)
**Type:** Positive
**Covers:** 4.1 → Question palette
**Preconditions:** The environment is configured.
**Steps:**
1. Configure the question palette options (jump, mark for review, clear response).
2. Verify the palette behaves as configured during a mock.
**Expected Result:** Question palette — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-6-003 — Auto-submit on time expiry
**Type:** Positive
**Covers:** 4.1 → Auto-submit
**Preconditions:** The environment is configured.
**Steps:**
1. Enable the auto-submit on time expiry.
2. Let a mock reach time expiry and verify it auto-submits.
**Expected Result:** Auto-submit on time expiry — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-6-004 — Proctoring options (camera, tab-switch detection)
**Type:** Positive
**Covers:** 4.1 → Proctoring options
**Preconditions:** The environment is configured.
**Steps:**
1. Enable the proctoring options (camera, tab-switch detection).
2. Verify proctoring behaves as configured during a mock.
**Expected Result:** Proctoring options — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-6-005 — Rule: tab-switch logged as violation not auto-failed
**Type:** Edge
**Covers:** 4.1 → Rule: tab-switch
**Preconditions:** Proctoring with tab-switch detection is on.
**Steps:**
1. Switch tabs during a mock.
2. Verify it is logged as a violation (not auto-failed by default).
**Expected Result:** A tab-switch with proctoring on is logged as a violation (not auto-failed by default) — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-6-006 — Rule: auto-submit submits answered, unanswered blank
**Type:** Edge
**Covers:** 4.1 → Rule: auto-submit
**Preconditions:** Auto-submit is enabled and some questions are unanswered.
**Steps:**
1. Let the mock reach time expiry.
2. Verify it submits whatever is answered (unanswered = blank).
**Expected Result:** An auto-submit on time expiry submits whatever is answered (unanswered = blank) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-6-007 — Rule: fullscreen degrades gracefully on mobile
**Type:** Edge
**Covers:** 4.1 → Rule: mobile fullscreen
**Preconditions:** Fullscreen is required and the device is mobile.
**Steps:**
1. Start a mock on a mobile device.
2. Verify the fullscreen requirement degrades gracefully (no fullscreen).
**Expected Result:** A fullscreen requirement that cannot be met (mobile) degrades gracefully (no fullscreen) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-6-008 — Rule: no-navigation still allows question palette
**Type:** Edge
**Covers:** 4.1 → Rule: palette exception
**Preconditions:** No-navigation is set.
**Steps:**
1. Start a mock.
2. Verify the question palette is still allowed (documented exception).
**Expected Result:** A no-navigation setting still allows the question palette (documented exception) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-6-009 — Audit logging of exam-like environment configuration
**Type:** Positive
**Covers:** 4.1 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change an exam-like environment setting.
2. Verify the change is recorded in the audit log with actor, timestamp, and before/after values.
**Expected Result:** Audit logging of exam-like environment configuration — delivered exactly as documented.
**Priority:** Medium

## 4.2 Timed Test Settings

### TC-SA-TE-7-001 — Total test duration
**Type:** Positive
**Covers:** 4.2 → Total test duration
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open Mock Tests → Timing.
2. Set the total test duration.
3. Verify the mock runs for the configured duration.
**Expected Result:** Total test duration — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-7-002 — Per-section timing
**Type:** Positive
**Covers:** 4.2 → Per-section timing
**Preconditions:** The total test duration is set.
**Steps:**
1. Configure the per-section timing (section-level time limits).
2. Verify sections enforce the configured time limits.
**Expected Result:** Per-section timing — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-7-003 — Time warning thresholds
**Type:** Positive
**Covers:** 4.2 → Time warning thresholds
**Preconditions:** The total test duration is set.
**Steps:**
1. Set the time warning thresholds (e.g., 10 min, 5 min remaining).
2. Verify warnings fire at the configured thresholds.
**Expected Result:** Time warning thresholds — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-7-004 — Time extension rules
**Type:** Positive
**Covers:** 4.2 → Time extension rules
**Preconditions:** The total test duration is set.
**Steps:**
1. Define the time extension rules (for approved cases).
2. Apply an extension and verify the mock duration is extended.
**Expected Result:** Time extension rules — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-7-005 — Rule: section limits exceeding total rejected
**Type:** Negative
**Covers:** 4.2 → Rule: rejected
**Preconditions:** Per-section timing is configured.
**Steps:**
1. Set per-section time limits summing to more than the total duration.
2. Verify the configuration is rejected.
**Expected Result:** A per-section time limit summing to more than the total duration is rejected — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-7-006 — Rule: warning fires once per threshold
**Type:** Edge
**Covers:** 4.2 → Rule: once per threshold
**Preconditions:** Time warning thresholds are set.
**Steps:**
1. Reach a warning threshold.
2. Verify the warning fires only once per threshold (no repeated pings).
**Expected Result:** A time warning fires only once per threshold (no repeated pings) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-7-007 — Rule: extension logged and visible in record
**Type:** Edge
**Covers:** 4.2 → Rule: extension logged
**Preconditions:** A time extension is applied.
**Steps:**
1. Apply a time extension.
2. Verify it is logged and visible in the test record.
**Expected Result:** A time extension is logged and visible in the test record — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-7-008 — Rule: section expiry auto-moves to next section
**Type:** Edge
**Covers:** 4.2 → Rule: auto-move
**Preconditions:** Per-section timing is configured.
**Steps:**
1. Let a section time limit expire.
2. Verify it auto-moves to the next section (unanswered = blank).
**Expected Result:** A section time limit expiry auto-moves to the next section (unanswered = blank) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-7-009 — Audit logging of timed test settings
**Type:** Positive
**Covers:** 4.2 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a timed test setting.
2. Verify the change is recorded in the audit log with actor, timestamp, and before/after values.
**Expected Result:** Audit logging of timed test settings — delivered exactly as documented.
**Priority:** Medium

## 4.3 Previous Year Papers Management

### TC-SA-TE-8-001 — Paper upload (per exam type, per year)
**Type:** Positive
**Covers:** 4.3 → Paper upload
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open Mock Tests → Previous Year Papers.
2. Upload a paper per exam type and year.
3. Verify the paper is uploaded and listed.
**Expected Result:** Paper upload — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-8-002 — Paper metadata (year, session, difficulty, source)
**Type:** Positive
**Covers:** 4.3 → Paper metadata
**Preconditions:** A paper is uploaded.
**Steps:**
1. Set the paper metadata (year, session, difficulty, source).
2. Verify the metadata is stored and displayed.
**Expected Result:** Paper metadata — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-8-003 — Paper question tagging (topic, importance, marks)
**Type:** Positive
**Covers:** 4.3 → Question tagging
**Preconditions:** A paper is uploaded.
**Steps:**
1. Tag the paper's questions (topic, importance, marks).
2. Verify the tags are stored and used in analytics.
**Expected Result:** Paper question tagging — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-8-004 — Paper availability (all, per cohort, per plan)
**Type:** Positive
**Covers:** 4.3 → Paper availability
**Preconditions:** A paper is uploaded.
**Steps:**
1. Set the paper availability (all students, per cohort, per plan).
2. Verify the paper is accessible to the intended audience.
**Expected Result:** Paper availability — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-8-005 — Rule: no tagged questions usable but excluded from analytics
**Type:** Edge
**Covers:** 4.3 → Rule: no tags
**Preconditions:** A paper has no tagged questions.
**Steps:**
1. Attempt the paper and verify it is usable.
2. Verify it is excluded from topic analytics.
**Expected Result:** A paper with no tagged questions is usable but excluded from topic analytics — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-8-006 — Rule: disabled exam type not available to new students
**Type:** Negative
**Covers:** 4.3 → Rule: disabled exam type
**Preconditions:** A paper is for a disabled exam type.
**Steps:**
1. Enroll a new student.
2. Verify the paper is not available to the new student.
**Expected Result:** A paper for a disabled exam type is not available to new students — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-8-007 — Rule: duplicate paper rejected
**Type:** Negative
**Covers:** 4.3 → Rule: duplicate
**Preconditions:** A paper with the same exam type, year, and session exists.
**Steps:**
1. Attempt to upload the duplicate paper.
2. Verify it is rejected.
**Expected Result:** A duplicate paper (same exam type, year, session) is rejected — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-8-008 — Rule: per cohort availability enforced
**Type:** Edge
**Covers:** 4.3 → Rule: cohort enforced
**Preconditions:** A paper's availability is set to a specific cohort.
**Steps:**
1. Attempt to access the paper from another cohort.
2. Verify access is denied.
**Expected Result:** A paper availability of per cohort is enforced (other cohorts cannot access) — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-8-009 — Audit logging of previous year papers management
**Type:** Positive
**Covers:** 4.3 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a previous year paper setting.
2. Verify the change is recorded in the audit log with actor, timestamp, and before/after values.
**Expected Result:** Audit logging of previous year papers management — delivered exactly as documented.
**Priority:** Medium

## 4.4 Post-Test Analysis

### TC-SA-TE-9-001 — Score analysis (total, per section, per question type)
**Type:** Positive
**Covers:** 4.4 → Score analysis
**Preconditions:** A Super Admin account is active; a mock has been completed.
**Steps:**
1. Open Mock Tests → Post-Test Analysis.
2. Configure the score analysis dimensions (total, per section, per question type).
3. Verify the score analysis is generated.
**Expected Result:** Score analysis — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-9-002 — Weak area identification
**Type:** Positive
**Covers:** 4.4 → Weak area identification
**Preconditions:** A mock has been completed.
**Steps:**
1. Enable the weak area identification.
2. Verify topics with low accuracy are identified.
**Expected Result:** Weak area identification — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-9-003 — Time-per-section analysis
**Type:** Positive
**Covers:** 4.4 → Time-per-section analysis
**Preconditions:** A mock has been completed.
**Steps:**
1. Set the time-per-section analysis view.
2. Verify time spent vs allocated is shown per section.
**Expected Result:** Time-per-section analysis — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-9-004 — Comparison (vs previous mock, vs cohort average)
**Type:** Positive
**Covers:** 4.4 → Comparison
**Preconditions:** A mock has been completed.
**Steps:**
1. Set the comparison views (vs previous mock, vs cohort average).
2. Verify the comparisons are generated.
**Expected Result:** Comparison — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-9-005 — Rule: no completed attempts → no analysis
**Type:** Edge
**Covers:** 4.4 → Rule: no attempts
**Preconditions:** A mock has no completed attempts.
**Steps:**
1. Open the post-test analysis.
2. Verify no analysis is shown (prompt to attempt).
**Expected Result:** A mock with no completed attempts shows no analysis (prompt to attempt) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-9-006 — Rule: weak area only for min attempt count
**Type:** Edge
**Covers:** 4.4 → Rule: min attempts
**Preconditions:** A topic has fewer than the minimum attempt count.
**Steps:**
1. Review the weak area identification.
2. Verify the topic is not identified as a weak area.
**Expected Result:** A weak area is identified only for topics with a minimum attempt count — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-9-007 — Rule: cohort comparison requires min cohort size
**Type:** Edge
**Covers:** 4.4 → Rule: min cohort
**Preconditions:** The cohort is below the minimum size.
**Steps:**
1. Review the comparison vs cohort average.
2. Verify it is hidden.
**Expected Result:** A comparison vs cohort average requires a minimum cohort size (else hidden) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-9-008 — Rule: re-attempted shows latest, history retained
**Type:** Edge
**Covers:** 4.4 → Rule: re-attempt
**Preconditions:** A mock has been re-attempted.
**Steps:**
1. Review the post-test analysis.
2. Verify the latest attempt is shown and the history is retained.
**Expected Result:** A re-attempted mock shows the latest attempt (history retained) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-9-009 — Audit logging of post-test analysis
**Type:** Positive
**Covers:** 4.4 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a post-test analysis setting.
2. Verify the change is recorded in the audit log with actor, timestamp, and before/after values.
**Expected Result:** Audit logging of post-test analysis — delivered exactly as documented.
**Priority:** Medium

## 4.5 Mock Test Scheduling & Series

### TC-SA-TE-10-001 — Mock test scheduling (one-off, recurring)
**Type:** Positive
**Covers:** 4.5 → Scheduling
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Open Mock Tests → Scheduling & Series.
2. Schedule a mock test (one-off or recurring).
3. Verify the mock appears on the schedule.
**Expected Result:** Mock test scheduling — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-10-002 — Mock test series (ordered sequence)
**Type:** Positive
**Covers:** 4.5 → Series
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Create a mock test series (ordered sequence of mocks).
2. Verify the series is ordered correctly.
**Expected Result:** Mock test series — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-10-003 — Series progression rules
**Type:** Positive
**Covers:** 4.5 → Progression rules
**Preconditions:** A mock test series is created.
**Steps:**
1. Set the series progression rules (next mock unlocks after previous).
2. Verify the progression behaves as configured.
**Expected Result:** Series progression rules — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-10-004 — Mock test reminders
**Type:** Positive
**Covers:** 4.5 → Reminders
**Preconditions:** A mock test is scheduled.
**Steps:**
1. Enable the mock test reminders.
2. Verify reminders are sent before scheduled mocks.
**Expected Result:** Mock test reminders — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-10-005 — Rule: recurring respects end date
**Type:** Edge
**Covers:** 4.5 → Rule: end date
**Preconditions:** A recurring mock has a recurrence end date.
**Steps:**
1. Advance past the recurrence end date.
2. Verify no further mocks are scheduled (no infinite series).
**Expected Result:** A recurring mock respects the recurrence end date (no infinite series) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-10-006 — Rule: progression locks next until previous done
**Type:** Edge
**Covers:** 4.5 → Rule: lock
**Preconditions:** A series progression rule is set.
**Steps:**
1. Attempt to access the next mock before completing the previous.
2. Verify the next mock is locked.
**Expected Result:** A series progression rule locks the next mock until the previous is completed — delivered exactly as documented.
**Priority:** High

### TC-SA-TE-10-007 — Rule: missed mock marked missed not auto-rescheduled
**Type:** Edge
**Covers:** 4.5 → Rule: missed
**Preconditions:** A scheduled mock is missed.
**Steps:**
1. Let the scheduled mock pass without completion.
2. Verify it is marked missed (not auto-rescheduled by default).
**Expected Result:** A missed scheduled mock is marked missed (not auto-rescheduled by default) — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-10-008 — Rule: reminder respects notification preferences
**Type:** Edge
**Covers:** 4.5 → Rule: preferences
**Preconditions:** A student has mock reminders disabled.
**Steps:**
1. Trigger a mock reminder.
2. Verify the student is not reminded.
**Expected Result:** A reminder respects the student's notification preferences — delivered exactly as documented.
**Priority:** Medium

### TC-SA-TE-10-009 — Audit logging of mock test scheduling & series
**Type:** Positive
**Covers:** 4.5 → Audit logging
**Preconditions:** A Super Admin account is active.
**Steps:**
1. Change a mock test scheduling or series setting.
2. Verify the change is recorded in the audit log with actor, timestamp, and before/after values.
**Expected Result:** Audit logging of mock test scheduling & series — delivered exactly as documented.
**Priority:** Medium
