# 4. License Reports & Audit — Test Cases

User Type: **Training Institute**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: license_reports_audit.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 | License usage report | TC-TI-3-04-001 |
| 4.1 | Licenses used over time | TC-TI-3-04-002 |
| 4.1 | Peak usage shown | TC-TI-3-04-003 |
| 4.1 | Idle licenses shown | TC-TI-3-04-004 |
| 4.1 | Utilization rate shown | TC-TI-3-04-005 |
| 4.1 | Set the report period | TC-TI-3-04-006 |
| 4.1 | View or export the report | TC-TI-3-04-007 |
| 4.1 | Report available on web and mobile | TC-TI-3-04-008 |
| 4.1 | Report event logging (viewed, exported) | TC-TI-3-04-009 |
| 4.1 | Audit logging of the license usage report | TC-TI-3-04-010 |
| 4.1 | Rule: The utilization rate is used over total. | TC-TI-3-04-001 |
| 4.1 | Rule: The report period is selectable. | TC-TI-3-04-002 |
| 4.1 | Rule: Report events (viewed, exported) are logged with the account and the timestamp. | TC-TI-3-04-003 |
| 4.1 | Rule: The license usage report is audit-logged with the account and the timestamp. | TC-TI-3-04-004 |
| 4.2 | License audit trail | TC-TI-3-04-011 |
| 4.2 | Every license event recorded | TC-TI-3-04-012 |
| 4.2 | Actor, license, and timestamp per event | TC-TI-3-04-013 |
| 4.2 | Filter by event type | TC-TI-3-04-014 |
| 4.2 | Export the trail | TC-TI-3-04-015 |
| 4.2 | Trail paginated | TC-TI-3-04-016 |
| 4.2 | Trail available on web and mobile | TC-TI-3-04-017 |
| 4.2 | Trail event logging (viewed, exported) | TC-TI-3-04-018 |
| 4.2 | Audit logging of the license audit trail | TC-TI-3-04-019 |
| 4.2 | Rule: The trail is immutable and append-only. | TC-TI-3-04-011 |
| 4.2 | Rule: The trail is filterable by event type. | TC-TI-3-04-012 |
| 4.2 | Rule: Trail events (viewed, exported) are logged with the account and the timestamp. | TC-TI-3-04-013 |
| 4.2 | Rule: The license audit trail is audit-logged with the account and the timestamp. | TC-TI-3-04-014 |
| 4.3 | License cost report | TC-TI-3-04-020 |
| 4.3 | Spend by period | TC-TI-3-04-021 |
| 4.3 | Spend by tier and term | TC-TI-3-04-022 |
| 4.3 | Cost per active student | TC-TI-3-04-023 |
| 4.3 | Set the report period | TC-TI-3-04-024 |
| 4.3 | View or export the report | TC-TI-3-04-025 |
| 4.3 | Report available on web and mobile | TC-TI-3-04-026 |
| 4.3 | Report event logging (viewed, exported) | TC-TI-3-04-027 |
| 4.3 | Audit logging of the license cost report | TC-TI-3-04-028 |
| 4.3 | Rule: The cost per active student is total spend over active students. | TC-TI-3-04-020 |
| 4.3 | Rule: The report period is selectable. | TC-TI-3-04-021 |
| 4.3 | Rule: Report events (viewed, exported) are logged with the account and the timestamp. | TC-TI-3-04-022 |
| 4.3 | Rule: The license cost report is audit-logged with the account and the timestamp. | TC-TI-3-04-023 |

## 4.1 License Usage Report

### TC-TI-3-04-001 — License usage report
**Type:** Positive
**Covers:** 4.1 → License usage report; Rule: The utilization rate is used over total.
**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: License usage report.
2. Observe the result and verify the full behavior: License usage report.
**Expected Result:** License usage report — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-04-002 — Licenses used over time
**Type:** Positive
**Covers:** 4.1 → Licenses used over time; Rule: The report period is selectable.
**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: Licenses used over time.
2. Observe the result and verify the full behavior: Licenses used over time.
**Expected Result:** Licenses used over time — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-003 — Peak usage shown
**Type:** Positive
**Covers:** 4.1 → Peak usage shown; Rule: Report 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: Peak usage shown.
2. Observe the result and verify the full behavior: Peak usage shown.
**Expected Result:** Peak usage shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-004 — Idle licenses shown
**Type:** Positive
**Covers:** 4.1 → Idle licenses shown; Rule: The license usage report 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: Idle licenses shown.
2. Observe the result and verify the full behavior: Idle licenses shown.
**Expected Result:** Idle licenses shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-005 — Utilization rate shown
**Type:** Positive
**Covers:** 4.1 → Utilization rate shown
**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: Utilization rate shown.
2. Observe the result and verify the full behavior: Utilization rate shown.
**Expected Result:** Utilization rate shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-006 — Set the report period
**Type:** Positive
**Covers:** 4.1 → Set the report period
**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: Set the report period.
2. Observe the result and verify the full behavior: Set the report period.
**Expected Result:** Set the report period — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-007 — View or export the report
**Type:** Positive
**Covers:** 4.1 → View or export the report
**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: View or export the report.
2. Observe the result and verify the full behavior: View or export the report.
**Expected Result:** View or export the report — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-008 — Report available on web and mobile
**Type:** Positive
**Covers:** 4.1 → Report 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: Report available on web and mobile.
2. Observe the result and verify the full behavior: Report available on web and mobile.
**Expected Result:** Report available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-009 — Report event logging (viewed, exported)
**Type:** Positive
**Covers:** 4.1 → Report 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: Report event logging (viewed, exported).
2. Observe the result and verify the full behavior: Report event logging (viewed, exported).
**Expected Result:** Report event logging (viewed, exported) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-010 — Audit logging of the license usage report
**Type:** Positive
**Covers:** 4.1 → Audit logging of the license usage report
**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 license usage report action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The license usage report action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 4.2 License Audit Trail

### TC-TI-3-04-011 — License audit trail
**Type:** Positive
**Covers:** 4.2 → License audit trail; Rule: The trail is immutable and append-only.
**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: License audit trail.
2. Observe the result and verify the full behavior: License audit trail.
**Expected Result:** License audit trail — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-04-012 — Every license event recorded
**Type:** Positive
**Covers:** 4.2 → Every license event recorded; Rule: The trail is filterable by event type.
**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: Every license event recorded.
2. Observe the result and verify the full behavior: Every license event recorded.
**Expected Result:** Every license event recorded — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-013 — Actor, license, and timestamp per event
**Type:** Positive
**Covers:** 4.2 → Actor, license, and timestamp per event; Rule: Trail 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: Actor, license, and timestamp per event.
2. Observe the result and verify the full behavior: Actor, license, and timestamp per event.
**Expected Result:** Actor, license, and timestamp per event — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-014 — Filter by event type
**Type:** Positive
**Covers:** 4.2 → Filter by event type; Rule: The license audit trail 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 event type.
2. Observe the result and verify the full behavior: Filter by event type.
**Expected Result:** Filter by event type — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-015 — Export the trail
**Type:** Positive
**Covers:** 4.2 → Export the trail
**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 trail.
2. Observe the result and verify the full behavior: Export the trail.
**Expected Result:** Export the trail — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-016 — Trail paginated
**Type:** Positive
**Covers:** 4.2 → Trail paginated
**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: Trail paginated.
2. Observe the result and verify the full behavior: Trail paginated.
**Expected Result:** Trail paginated — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-017 — Trail available on web and mobile
**Type:** Positive
**Covers:** 4.2 → Trail 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: Trail available on web and mobile.
2. Observe the result and verify the full behavior: Trail available on web and mobile.
**Expected Result:** Trail available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-018 — Trail event logging (viewed, exported)
**Type:** Positive
**Covers:** 4.2 → Trail 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: Trail event logging (viewed, exported).
2. Observe the result and verify the full behavior: Trail event logging (viewed, exported).
**Expected Result:** Trail event logging (viewed, exported) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-019 — Audit logging of the license audit trail
**Type:** Positive
**Covers:** 4.2 → Audit logging of the license audit trail
**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 license audit trail action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The license audit trail action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 4.3 License Cost Report

### TC-TI-3-04-020 — License cost report
**Type:** Positive
**Covers:** 4.3 → License cost report; Rule: The cost per active student is total spend over active students.
**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: License cost report.
2. Observe the result and verify the full behavior: License cost report.
**Expected Result:** License cost report — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-04-021 — Spend by period
**Type:** Positive
**Covers:** 4.3 → Spend by period; Rule: The report period is selectable.
**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: Spend by period.
2. Observe the result and verify the full behavior: Spend by period.
**Expected Result:** Spend by period — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-022 — Spend by tier and term
**Type:** Positive
**Covers:** 4.3 → Spend by tier and term; Rule: Report 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: Spend by tier and term.
2. Observe the result and verify the full behavior: Spend by tier and term.
**Expected Result:** Spend by tier and term — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-023 — Cost per active student
**Type:** Positive
**Covers:** 4.3 → Cost per active student; Rule: The license cost report 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: Cost per active student.
2. Observe the result and verify the full behavior: Cost per active student.
**Expected Result:** Cost per active student — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-024 — Set the report period
**Type:** Positive
**Covers:** 4.3 → Set the report period
**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: Set the report period.
2. Observe the result and verify the full behavior: Set the report period.
**Expected Result:** Set the report period — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-025 — View or export the report
**Type:** Positive
**Covers:** 4.3 → View or export the report
**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: View or export the report.
2. Observe the result and verify the full behavior: View or export the report.
**Expected Result:** View or export the report — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-026 — Report available on web and mobile
**Type:** Positive
**Covers:** 4.3 → Report 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: Report available on web and mobile.
2. Observe the result and verify the full behavior: Report available on web and mobile.
**Expected Result:** Report available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-027 — Report event logging (viewed, exported)
**Type:** Positive
**Covers:** 4.3 → Report 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: Report event logging (viewed, exported).
2. Observe the result and verify the full behavior: Report event logging (viewed, exported).
**Expected Result:** Report event logging (viewed, exported) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-04-028 — Audit logging of the license cost report
**Type:** Positive
**Covers:** 4.3 → Audit logging of the license cost report
**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 license cost report action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The license cost report action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
