# 1. SRS Configuration — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: srs_configuration.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 |
|---------|--------------------|----------|
| 1.1 Review Interval Settings | Base review intervals (1 day, 3 days, 1 week, 2 weeks, 1 month) | TC-SA-SRS-1-001 |
| 1.1 Review Interval Settings | Interval progression mapping (recall outcome → next interval) | TC-SA-SRS-1-002 |
| 1.1 Review Interval Settings | Per-content-type interval overrides | TC-SA-SRS-1-003 |
| 1.1 Review Interval Settings | Interval cap and floor | TC-SA-SRS-1-004 |
| 1.1 Review Interval Settings | Rule: one recall outcome → exactly one next interval | TC-SA-SRS-1-005 |
| 1.1 Review Interval Settings | Rule: config change applies to newly scheduled reviews only | TC-SA-SRS-1-006 |
| 1.1 Review Interval Settings | Audit logging of SRS interval configuration | TC-SA-SRS-1-007 |
| 1.2 Ebbinghaus Curve Parameters | Memory decay rate and initial retention target | TC-SA-SRS-2-001 |
| 1.2 Ebbinghaus Curve Parameters | Curve shape parameters (decay exponent, stability factor) | TC-SA-SRS-2-002 |
| 1.2 Ebbinghaus Curve Parameters | Per-grade-band parameter sets | TC-SA-SRS-2-003 |
| 1.2 Ebbinghaus Curve Parameters | Parameter preview (predicted retention over time) | TC-SA-SRS-2-004 |
| 1.2 Ebbinghaus Curve Parameters | Rule: invalid parameter combinations rejected | TC-SA-SRS-2-005 |
| 1.2 Ebbinghaus Curve Parameters | Rule: preview uses the same model as scheduling | TC-SA-SRS-2-006 |
| 1.2 Ebbinghaus Curve Parameters | Audit logging of Ebbinghaus curve parameters | TC-SA-SRS-2-007 |
| 1.3 Recall Success Adjustment Rules | Success adjustment (interval extension factor) | TC-SA-SRS-3-001 |
| 1.3 Recall Success Adjustment Rules | Failure reset behavior | TC-SA-SRS-3-002 |
| 1.3 Recall Success Adjustment Rules | Consecutive-success bonus | TC-SA-SRS-3-003 |
| 1.3 Recall Success Adjustment Rules | Confidence rating mapping (Too Easy / Good / Hard) | TC-SA-SRS-3-004 |
| 1.3 Recall Success Adjustment Rules | Rule: failed recall never moves the item later | TC-SA-SRS-3-005 |
| 1.3 Recall Success Adjustment Rules | Rule: one recall event → exactly one adjustment | TC-SA-SRS-3-006 |
| 1.3 Recall Success Adjustment Rules | Audit logging of recall adjustment rules | TC-SA-SRS-3-007 |

## 1.1 Review Interval Settings

### TC-SA-SRS-1-001 — Base review intervals (1 day, 3 days, 1 week, 2 weeks, 1 month)
**Type:** Positive
**Covers:** 1.1 → Base review intervals
**Preconditions:** A Super Admin account is active; SRS is enabled.
**Steps:**
1. As a Super Admin, open SRS Management → Configuration and set the base review intervals (1 day, 3 days, 1 week, 2 weeks, 1 month).
2. Verify the intervals are saved and applied to new SRS scheduling.
**Expected Result:** Base review intervals — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-1-002 — Interval progression mapping (recall outcome → next interval)
**Type:** Positive
**Covers:** 1.1 → Interval progression mapping
**Preconditions:** Base review intervals are set.
**Steps:**
1. Map the interval progression per recall outcome (e.g., "Hard" → 1 day, "Good" → 3 days, "Easy" → 1 week).
2. Trigger each recall outcome and verify the next interval matches the mapping.
**Expected Result:** Interval progression mapping — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-1-003 — Per-content-type interval overrides
**Type:** Positive
**Covers:** 1.1 → Per-content-type overrides
**Preconditions:** Base review intervals are set.
**Steps:**
1. Set a per-content-type interval override (e.g., videos use longer intervals).
2. Verify the override applies to that content type and the base applies to others.
**Expected Result:** Per-content-type interval overrides — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-1-004 — Interval cap and floor
**Type:** Positive
**Covers:** 1.1 → Interval cap and floor
**Preconditions:** Base review intervals are set.
**Steps:**
1. Set the interval cap (maximum) and floor (minimum).
2. Verify no scheduled interval exceeds the cap or falls below the floor.
**Expected Result:** Interval cap and floor — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-1-005 — Rule: one recall outcome → exactly one next interval
**Type:** Negative
**Covers:** 1.1 → Rule: unambiguous mapping
**Preconditions:** The interval progression mapping is configured.
**Steps:**
1. Attempt to configure a recall outcome with two next intervals.
2. Verify the configuration is rejected (each outcome maps to exactly one interval).
**Expected Result:** A recall outcome always maps to exactly one next interval — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-1-006 — Rule: config change applies to newly scheduled reviews only
**Type:** Negative
**Covers:** 1.1 → Rule: change scope
**Preconditions:** Reviews are already scheduled; the interval configuration changes.
**Steps:**
1. Change the interval configuration.
2. Verify already-scheduled reviews keep their interval until re-evaluated, and new reviews use the new configuration.
**Expected Result:** A configuration change applies to newly scheduled reviews; already-scheduled reviews keep their interval until re-evaluated — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-1-007 — Audit logging of SRS interval configuration
**Type:** Positive
**Covers:** 1.1 → Audit logging
**Preconditions:** Interval configuration changes have been made.
**Steps:**
1. Open the audit trail and filter by SRS interval configuration.
2. Verify entries show the setting, the change, and the timestamp.
**Expected Result:** Audit logging of SRS interval configuration — delivered exactly as documented.
**Priority:** Critical

## 1.2 Ebbinghaus Curve Parameters

### TC-SA-SRS-2-001 — Memory decay rate and initial retention target
**Type:** Positive
**Covers:** 1.2 → Decay rate and retention target
**Preconditions:** A Super Admin is configuring Ebbinghaus parameters.
**Steps:**
1. Set the memory decay rate and the initial retention target (e.g., 90% recall at first review).
2. Verify the parameters are saved and drive the SRS scheduling.
**Expected Result:** Memory decay rate and initial retention target — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-2-002 — Curve shape parameters (decay exponent, stability factor)
**Type:** Positive
**Covers:** 1.2 → Curve shape parameters
**Preconditions:** Ebbinghaus parameters are being configured.
**Steps:**
1. Adjust the curve shape parameters (decay exponent, stability factor).
2. Verify the retention curve reflects the adjusted shape.
**Expected Result:** Curve shape parameters — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-2-003 — Per-grade-band parameter sets
**Type:** Positive
**Covers:** 1.2 → Per-grade-band parameter sets
**Preconditions:** Global Ebbinghaus parameters are set.
**Steps:**
1. Define a per-grade-band parameter set (age-appropriate decay).
2. Verify students in that band use the band set and others use the global set.
**Expected Result:** Per-grade-band parameter sets — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-2-004 — Parameter preview (predicted retention over time)
**Type:** Positive
**Covers:** 1.2 → Parameter preview
**Preconditions:** Ebbinghaus parameters are being configured.
**Steps:**
1. Use the parameter preview to see the predicted retention over time for a given setting.
2. Verify the preview renders the retention curve for the setting.
**Expected Result:** Parameter preview — delivered exactly as documented.
**Priority:** Medium

### TC-SA-SRS-2-005 — Rule: invalid parameter combinations rejected
**Type:** Negative
**Covers:** 1.2 → Rule: invalid combination rejection
**Preconditions:** A Super Admin is configuring Ebbinghaus parameters.
**Steps:**
1. Enter a parameter combination that does not produce a monotonically decaying curve.
2. Verify the combination is rejected with the reason.
**Expected Result:** Invalid parameter combinations are rejected with the reason — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-2-006 — Rule: preview uses the same model as scheduling
**Type:** Negative
**Covers:** 1.2 → Rule: preview/scheduling parity
**Preconditions:** Ebbinghaus parameters are set.
**Steps:**
1. Record the parameter preview for a setting.
2. Schedule a review with the same setting and verify the predicted retention matches the preview.
**Expected Result:** The parameter preview is computed from the same model used for scheduling — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-2-007 — Audit logging of Ebbinghaus curve parameters
**Type:** Positive
**Covers:** 1.2 → Audit logging
**Preconditions:** Ebbinghaus parameter changes have been made.
**Steps:**
1. Open the audit trail and filter by Ebbinghaus curve parameters.
2. Verify entries show the parameter, the change, and the timestamp.
**Expected Result:** Audit logging of Ebbinghaus curve parameters — delivered exactly as documented.
**Priority:** Critical

## 1.3 Recall Success Adjustment Rules

### TC-SA-SRS-3-001 — Success adjustment (interval extension factor)
**Type:** Positive
**Covers:** 1.3 → Success adjustment
**Preconditions:** A Super Admin is configuring recall adjustment rules.
**Steps:**
1. Set the success adjustment (interval extension factor per successful recall).
2. Trigger a successful recall and verify the interval extends per the factor.
**Expected Result:** Success adjustment — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-3-002 — Failure reset behavior
**Type:** Positive
**Covers:** 1.3 → Failure reset
**Preconditions:** Recall adjustment rules are configured.
**Steps:**
1. Define the failure reset behavior (e.g., reset to 1 day).
2. Trigger a failed recall and verify the interval resets per the rule.
**Expected Result:** Failure reset behavior — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-3-003 — Consecutive-success bonus
**Type:** Positive
**Covers:** 1.3 → Consecutive-success bonus
**Preconditions:** Recall adjustment rules are configured.
**Steps:**
1. Enable the consecutive-success bonus (accelerated progression).
2. Trigger consecutive successful recalls and verify the progression accelerates per the bonus.
**Expected Result:** Consecutive-success bonus — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-3-004 — Confidence rating mapping (Too Easy / Good / Hard)
**Type:** Positive
**Covers:** 1.3 → Confidence rating mapping
**Preconditions:** Recall adjustment rules are configured.
**Steps:**
1. Map the confidence ratings (Too Easy / Good / Hard) to the adjustment outcomes.
2. Trigger each rating and verify the adjustment matches the mapping.
**Expected Result:** Confidence rating mapping — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-3-005 — Rule: failed recall never moves the item later
**Type:** Negative
**Covers:** 1.3 → Rule: failure never extends
**Preconditions:** An item is scheduled for a future review.
**Steps:**
1. Trigger a failed recall on the item.
2. Verify the next review is earlier than the current schedule (never later).
**Expected Result:** A failed recall always moves the item to an earlier review — delivered exactly as documented.
**Priority:** Critical

### TC-SA-SRS-3-006 — Rule: one recall event → exactly one adjustment
**Type:** Negative
**Covers:** 1.3 → Rule: single adjustment per event
**Preconditions:** A recall event occurs.
**Steps:**
1. Trigger a single recall event.
2. Verify exactly one schedule adjustment is applied (no compounding within the review).
**Expected Result:** Each recall event produces exactly one schedule adjustment — delivered exactly as documented.
**Priority:** High

### TC-SA-SRS-3-007 — Audit logging of recall adjustment rules
**Type:** Positive
**Covers:** 1.3 → Audit logging
**Preconditions:** Recall adjustment rule changes have been made.
**Steps:**
1. Open the audit trail and filter by recall adjustment rules.
2. Verify entries show the rule, the change, and the timestamp.
**Expected Result:** Audit logging of recall adjustment rules — delivered exactly as documented.
**Priority:** Critical
