# 2. Student Roster & Groups — Test Cases

User Type: **Training Institute**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: student_roster_groups.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 |
|---------|--------------------|----------|
| 2.1 | Full student roster | TC-TI-4-02-001 |
| 2.1 | Status, license, course, and last activity per student | TC-TI-4-02-002 |
| 2.1 | Search the roster | TC-TI-4-02-003 |
| 2.1 | Filter by status, course, or license | TC-TI-4-02-004 |
| 2.1 | Sort the roster | TC-TI-4-02-005 |
| 2.1 | Export the roster | TC-TI-4-02-006 |
| 2.1 | Roster available on web and mobile | TC-TI-4-02-007 |
| 2.1 | Roster event logging (viewed, exported) | TC-TI-4-02-008 |
| 2.1 | Audit logging of the student roster | TC-TI-4-02-009 |
| 2.1 | Rule: The roster is searchable and filterable. | TC-TI-4-02-001 |
| 2.1 | Rule: The roster can be exported. | TC-TI-4-02-002 |
| 2.1 | Rule: Roster events (viewed, exported) are logged with the account and the timestamp. | TC-TI-4-02-003 |
| 2.1 | Rule: The student roster is audit-logged with the account and the timestamp. | TC-TI-4-02-004 |
| 2.2 | Create a student group | TC-TI-4-02-010 |
| 2.2 | Add students to a group | TC-TI-4-02-011 |
| 2.2 | Remove students from a group | TC-TI-4-02-012 |
| 2.2 | Group course assignment | TC-TI-4-02-013 |
| 2.2 | Groups with member counts | TC-TI-4-02-014 |
| 2.2 | Rename or delete a group | TC-TI-4-02-015 |
| 2.2 | Groups available on web and mobile | TC-TI-4-02-016 |
| 2.2 | Groups event logging (created, updated) | TC-TI-4-02-017 |
| 2.2 | Audit logging of the student groups and cohorts | TC-TI-4-02-018 |
| 2.2 | Rule: A student can belong to multiple groups. | TC-TI-4-02-010 |
| 2.2 | Rule: A group with members cannot be deleted without reassignment. | TC-TI-4-02-011 |
| 2.2 | Rule: Groups events (created, updated) are logged with the account and the timestamp. | TC-TI-4-02-012 |
| 2.2 | Rule: The student groups and cohorts is audit-logged with the account and the timestamp. | TC-TI-4-02-013 |
| 2.3 | Student status view | TC-TI-4-02-019 |
| 2.3 | Activate a student | TC-TI-4-02-020 |
| 2.3 | Suspend a student | TC-TI-4-02-021 |
| 2.3 | Deactivate a student | TC-TI-4-02-022 |
| 2.3 | Access changes with status | TC-TI-4-02-023 |
| 2.3 | Reason recorded for status change | TC-TI-4-02-024 |
| 2.3 | Status available on web and mobile | TC-TI-4-02-025 |
| 2.3 | Status event logging (changed) | TC-TI-4-02-026 |
| 2.3 | Audit logging of the student status management | TC-TI-4-02-027 |
| 2.3 | Rule: A suspended student's access is paused, not revoked. | TC-TI-4-02-019 |
| 2.3 | Rule: A deactivated student's license is returned to the pool. | TC-TI-4-02-020 |
| 2.3 | Rule: Status events (changed) are logged with the account and the timestamp. | TC-TI-4-02-021 |
| 2.3 | Rule: The student status management is audit-logged with the account and the timestamp. | TC-TI-4-02-022 |

## 2.1 Student Roster

### TC-TI-4-02-001 — Full student roster
**Type:** Positive
**Covers:** 2.1 → Full student roster; Rule: The roster is searchable and filterable.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Full student roster.
2. Observe the result and verify the full behavior: Full student roster.
**Expected Result:** Full student roster — delivered exactly as documented.
**Priority:** Critical

### TC-TI-4-02-002 — Status, license, course, and last activity per student
**Type:** Positive
**Covers:** 2.1 → Status, license, course, and last activity per student; Rule: The roster can be exported.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Status, license, course, and last activity per student.
2. Observe the result and verify the full behavior: Status, license, course, and last activity per student.
**Expected Result:** Status, license, course, and last activity per student — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-003 — Search the roster
**Type:** Positive
**Covers:** 2.1 → Search the roster; Rule: Roster events (viewed, exported) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Search the roster.
2. Observe the result and verify the full behavior: Search the roster.
**Expected Result:** Search the roster — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-004 — Filter by status, course, or license
**Type:** Positive
**Covers:** 2.1 → Filter by status, course, or license; Rule: The student roster is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Filter by status, course, or license.
2. Observe the result and verify the full behavior: Filter by status, course, or license.
**Expected Result:** Filter by status, course, or license — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-005 — Sort the roster
**Type:** Positive
**Covers:** 2.1 → Sort the roster
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Sort the roster.
2. Observe the result and verify the full behavior: Sort the roster.
**Expected Result:** Sort the roster — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-006 — Export the roster
**Type:** Positive
**Covers:** 2.1 → Export the roster
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Export the roster.
2. Observe the result and verify the full behavior: Export the roster.
**Expected Result:** Export the roster — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-007 — Roster available on web and mobile
**Type:** Positive
**Covers:** 2.1 → Roster available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Roster available on web and mobile.
2. Observe the result and verify the full behavior: Roster available on web and mobile.
**Expected Result:** Roster available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-008 — Roster event logging (viewed, exported)
**Type:** Positive
**Covers:** 2.1 → Roster event logging (viewed, exported)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Roster event logging (viewed, exported).
2. Observe the result and verify the full behavior: Roster event logging (viewed, exported).
**Expected Result:** Roster event logging (viewed, exported) — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-009 — Audit logging of the student roster
**Type:** Positive
**Covers:** 2.1 → Audit logging of the student roster
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the student roster action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The student roster action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 2.2 Student Groups & Cohorts

### TC-TI-4-02-010 — Create a student group
**Type:** Positive
**Covers:** 2.2 → Create a student group; Rule: A student can belong to multiple groups.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Create a student group.
2. Observe the result and verify the full behavior: Create a student group.
**Expected Result:** Create a student group — delivered exactly as documented.
**Priority:** Critical

### TC-TI-4-02-011 — Add students to a group
**Type:** Positive
**Covers:** 2.2 → Add students to a group; Rule: A group with members cannot be deleted without reassignment.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Add students to a group.
2. Observe the result and verify the full behavior: Add students to a group.
**Expected Result:** Add students to a group — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-012 — Remove students from a group
**Type:** Positive
**Covers:** 2.2 → Remove students from a group; Rule: Groups events (created, updated) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Remove students from a group.
2. Observe the result and verify the full behavior: Remove students from a group.
**Expected Result:** Remove students from a group — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-013 — Group course assignment
**Type:** Positive
**Covers:** 2.2 → Group course assignment; Rule: The student groups and cohorts is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Group course assignment.
2. Observe the result and verify the full behavior: Group course assignment.
**Expected Result:** Group course assignment — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-014 — Groups with member counts
**Type:** Positive
**Covers:** 2.2 → Groups with member counts
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Groups with member counts.
2. Observe the result and verify the full behavior: Groups with member counts.
**Expected Result:** Groups with member counts — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-015 — Rename or delete a group
**Type:** Positive
**Covers:** 2.2 → Rename or delete a group
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Rename or delete a group.
2. Observe the result and verify the full behavior: Rename or delete a group.
**Expected Result:** Rename or delete a group — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-016 — Groups available on web and mobile
**Type:** Positive
**Covers:** 2.2 → Groups available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Groups available on web and mobile.
2. Observe the result and verify the full behavior: Groups available on web and mobile.
**Expected Result:** Groups available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-017 — Groups event logging (created, updated)
**Type:** Positive
**Covers:** 2.2 → Groups event logging (created, updated)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Groups event logging (created, updated).
2. Observe the result and verify the full behavior: Groups event logging (created, updated).
**Expected Result:** Groups event logging (created, updated) — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-018 — Audit logging of the student groups and cohorts
**Type:** Positive
**Covers:** 2.2 → Audit logging of the student groups and cohorts
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the student groups and cohorts action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The student groups and cohorts action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 2.3 Student Status Management

### TC-TI-4-02-019 — Student status view
**Type:** Positive
**Covers:** 2.3 → Student status view; Rule: A suspended student's access is paused, not revoked.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Student status view.
2. Observe the result and verify the full behavior: Student status view.
**Expected Result:** Student status view — delivered exactly as documented.
**Priority:** Critical

### TC-TI-4-02-020 — Activate a student
**Type:** Positive
**Covers:** 2.3 → Activate a student; Rule: A deactivated student's license is returned to the pool.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Activate a student.
2. Observe the result and verify the full behavior: Activate a student.
**Expected Result:** Activate a student — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-021 — Suspend a student
**Type:** Positive
**Covers:** 2.3 → Suspend a student; Rule: Status events (changed) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Suspend a student.
2. Observe the result and verify the full behavior: Suspend a student.
**Expected Result:** Suspend a student — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-022 — Deactivate a student
**Type:** Positive
**Covers:** 2.3 → Deactivate a student; Rule: The student status management is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Deactivate a student.
2. Observe the result and verify the full behavior: Deactivate a student.
**Expected Result:** Deactivate a student — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-023 — Access changes with status
**Type:** Positive
**Covers:** 2.3 → Access changes with status
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Access changes with status.
2. Observe the result and verify the full behavior: Access changes with status.
**Expected Result:** Access changes with status — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-024 — Reason recorded for status change
**Type:** Positive
**Covers:** 2.3 → Reason recorded for status change
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Reason recorded for status change.
2. Observe the result and verify the full behavior: Reason recorded for status change.
**Expected Result:** Reason recorded for status change — delivered exactly as documented.
**Priority:** High

### TC-TI-4-02-025 — Status available on web and mobile
**Type:** Positive
**Covers:** 2.3 → Status available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Status available on web and mobile.
2. Observe the result and verify the full behavior: Status available on web and mobile.
**Expected Result:** Status available on web and mobile — delivered exactly as documented.
**Priority:** High

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

### TC-TI-4-02-027 — Audit logging of the student status management
**Type:** Positive
**Covers:** 2.3 → Audit logging of the student status management
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the student status management action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The student status management action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
