# 4. System Health — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: system_health.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 |
|---------|--------------------|----------|
| 4.1 System Health Monitoring | System health: the health (the health of the system, the status, the metric, the value) | TC-SA-18-04-001 |
| 4.1 System Health Monitoring | Health status: the status (the healthy, the warning, the critical) | TC-SA-18-04-002 |
| 4.1 System Health Monitoring | Health metric: the metric (the metric of the health, e.g., the CPU, the memory) | TC-SA-18-04-003 |
| 4.1 System Health Monitoring | Health value: the value (the value of the metric, e.g., the percentage) | TC-SA-18-04-004 |
| 4.1 System Health Monitoring | Health period: the period (the period of the health, e.g., the current, the hourly) | TC-SA-18-04-005 |
| 4.1 System Health Monitoring | Health view: the view (the health, the statuses, the metrics, the period) | TC-SA-18-04-006 |
| 4.1 System Health Monitoring | Health export: the export (the health, the format, the period) | TC-SA-18-04-007 |
| 4.1 System Health Monitoring | Audit logging of the system health monitoring | TC-SA-18-04-008 |
| 4.1 System Health Monitoring | Rule: the system health is the state (the health of the system, the status, the metric, the value); the health is the condition | TC-SA-18-04-001 |
| 4.1 System Health Monitoring | Rule: the health status is the control (the healthy, the warning, the critical); the status is the gate | TC-SA-18-04-002 |
| 4.1 System Health Monitoring | Rule: the health metric is the measure (the metric of the health, e.g., the CPU, the memory); the metric is the value | TC-SA-18-04-003 |
| 4.1 System Health Monitoring | Rule: the health value is the result (the value of the metric, e.g., the percentage); the value is the outcome | TC-SA-18-04-004 |
| 4.1 System Health Monitoring | Rule: the health is visible (the health, the statuses, the metrics, the period); the monitoring is managed | TC-SA-18-04-006 |
| 4.1 System Health Monitoring | Rule: system health monitoring is audit-logged with the health, status, and timestamp | TC-SA-18-04-008 |
| 4.2 Uptime Status | Uptime: the uptime (the uptime of the system, the percentage, the period) | TC-SA-18-04-009 |
| 4.2 Uptime Status | Uptime status: the status (the up, the down, the degraded) | TC-SA-18-04-010 |
| 4.2 Uptime Status | Uptime percentage: the percentage (the percentage of the uptime, e.g., the 99.9%) | TC-SA-18-04-011 |
| 4.2 Uptime Status | Uptime period: the period (the period of the uptime, e.g., the daily, the weekly, the monthly) | TC-SA-18-04-012 |
| 4.2 Uptime Status | Uptime trend: the trend (the trend of the uptime, the period, the change) | TC-SA-18-04-013 |
| 4.2 Uptime Status | Uptime view: the view (the uptime, the statuses, the percentages, the period) | TC-SA-18-04-014 |
| 4.2 Uptime Status | Uptime export: the export (the uptime, the format, the period) | TC-SA-18-04-015 |
| 4.2 Uptime Status | Audit logging of the uptime status viewing | TC-SA-18-04-016 |
| 4.2 Uptime Status | Rule: the uptime is the availability (the uptime of the system, the percentage, the period); the uptime is the measure | TC-SA-18-04-009 |
| 4.2 Uptime Status | Rule: the uptime status is the state (the up, the down, the degraded); the status is the control | TC-SA-18-04-010 |
| 4.2 Uptime Status | Rule: the uptime percentage is the value (the percentage of the uptime, e.g., the 99.9%); the percentage is the measure | TC-SA-18-04-011 |
| 4.2 Uptime Status | Rule: the uptime trend is the direction (the trend of the uptime, the period, the change); the trend is the insight | TC-SA-18-04-013 |
| 4.2 Uptime Status | Rule: the uptime is visible (the uptime, the statuses, the percentages, the period); the viewing is managed | TC-SA-18-04-014 |
| 4.2 Uptime Status | Rule: uptime status viewing is audit-logged with the uptime, status, and timestamp | TC-SA-18-04-016 |
| 4.3 Error and Incident Overview | Error: the error (the error, the type, the count, the date) | TC-SA-18-04-017 |
| 4.3 Error and Incident Overview | Incident: the incident (the incident, the type, the count, the date) | TC-SA-18-04-018 |
| 4.3 Error and Incident Overview | Error count: the count (the count of the errors) | TC-SA-18-04-019 |
| 4.3 Error and Incident Overview | Incident count: the count (the count of the incidents) | TC-SA-18-04-020 |
| 4.3 Error and Incident Overview | Error status: the status (the open, the resolved, the pending) | TC-SA-18-04-021 |
| 4.3 Error and Incident Overview | Error period: the period (the period of the errors, e.g., the daily, the weekly, the monthly) | TC-SA-18-04-022 |
| 4.3 Error and Incident Overview | Error view: the view (the errors, the incidents, the counts, the period) | TC-SA-18-04-023 |
| 4.3 Error and Incident Overview | Audit logging of the error and incident viewing | TC-SA-18-04-024 |
| 4.3 Error and Incident Overview | Rule: the error is the fault (the error, the type, the count, the date); the error is the problem | TC-SA-18-04-017 |
| 4.3 Error and Incident Overview | Rule: the incident is the event (the incident, the type, the count, the date); the incident is the occurrence | TC-SA-18-04-018 |
| 4.3 Error and Incident Overview | Rule: the error count is the measure (the count of the errors); the count is the volume | TC-SA-18-04-019 |
| 4.3 Error and Incident Overview | Rule: the error status is the state (the open, the resolved, the pending); the status is the control | TC-SA-18-04-021 |
| 4.3 Error and Incident Overview | Rule: the errors and incidents are visible (the errors, the incidents, the counts, the period); the viewing is managed | TC-SA-18-04-023 |
| 4.3 Error and Incident Overview | Rule: error and incident viewing is audit-logged with the error, status, and timestamp | TC-SA-18-04-024 |

## 4.1 System Health Monitoring

### TC-SA-18-04-001 — System health: the health (the health of the system, the status, the metric, the value); the health is the condition
**Type:** Positive
**Covers:** 4.1 → System health: the health (the health of the system, the status, the metric, the value); Rule: the system health is the state (the health of the system, the status, the metric, the value); the health is the condition
**Preconditions:** Super Admin is logged in; the system is running.
**Steps:**
1. Open the Super Admin Dashboard.
2. View the system health monitoring: the health (the health of the system, the status, the metric, the value) — verify the health is the state.
3. Verify the health shows the status, the metric, and the value.
**Expected Result:** The system health is shown — the health of the system, the status, the metric, and the value are the condition.
**Priority:** Critical

### TC-SA-18-04-002 — Health status: the status (the healthy, the warning, the critical); the status is the gate
**Type:** Edge
**Covers:** 4.1 → Health status: the status (the healthy, the warning, the critical); Rule: the health status is the control (the healthy, the warning, the critical); the status is the gate
**Preconditions:** The system is healthy; a scenario where a metric crosses the warning threshold and the critical threshold also exists.
**Steps:**
1. View the health status: the status (the healthy, the warning, the critical) — verify the status is the state.
2. Verify the status shows "healthy" when all metrics are within normal range.
3. Simulate a metric crossing the warning threshold — verify the status changes to "warning".
4. Simulate a metric crossing the critical threshold — verify the status changes to "critical".
**Expected Result:** The health status is shown — the healthy, the warning, and the critical are the gate; the status transitions correctly at thresholds.
**Priority:** Critical

### TC-SA-18-04-003 — Health metric: the metric (the metric of the health, e.g., the CPU, the memory); the metric is the value
**Type:** Positive
**Covers:** 4.1 → Health metric: the metric (the metric of the health, e.g., the CPU, the memory); Rule: the health metric is the measure (the metric of the health, e.g., the CPU, the memory); the metric is the value
**Preconditions:** The system is running with CPU and memory metrics.
**Steps:**
1. View the health metric: the metric (the metric of the health, e.g., the CPU, the memory) — verify the metric is the measure.
2. Verify the metrics (CPU, memory) are shown.
3. Verify each metric is accurate for the system.
**Expected Result:** The health metric is shown — the metric of the health (the CPU, the memory) is the value.
**Priority:** High

### TC-SA-18-04-004 — Health value: the value (the value of the metric, e.g., the percentage); the value is the outcome
**Type:** Positive
**Covers:** 4.1 → Health value: the value (the value of the metric, e.g., the percentage); Rule: the health value is the result (the value of the metric, e.g., the percentage); the value is the outcome
**Preconditions:** The system is running with health metrics.
**Steps:**
1. View the health value: the value (the value of the metric, e.g., the percentage) — verify the value is the result.
2. Verify each metric's value is shown (the percentage).
3. Verify the values are accurate for the system.
**Expected Result:** The health value is shown — the value of the metric (the percentage) is the outcome.
**Priority:** High

### TC-SA-18-04-005 — Health period: the period (the period of the health, e.g., the current, the hourly); the period is the scope
**Type:** Positive
**Covers:** 4.1 → Health period: the period (the period of the health, e.g., the current, the hourly)
**Preconditions:** Health data exists across current and hourly periods.
**Steps:**
1. Set the health period: the period (the period of the health, e.g., the current, the hourly) — verify the period is the scope.
2. Switch between current and hourly — verify the health updates for each period.
3. Verify each period covers the correct time range.
**Expected Result:** The health period is set — the period of the health (the current, the hourly) is the scope.
**Priority:** High

### TC-SA-18-04-006 — Health view: the view (the health, the statuses, the metrics, the period); the monitoring is managed
**Type:** Positive
**Covers:** 4.1 → Health view: the view (the health, the statuses, the metrics, the period); Rule: the health is visible (the health, the statuses, the metrics, the period); the monitoring is managed
**Preconditions:** The system is running with health data.
**Steps:**
1. View the health: the view (the health, the statuses, the metrics, the period) — verify the health is visible.
2. Verify the view is complete for the period.
**Expected Result:** The health view works — the health, the statuses, the metrics, and the period are visible.
**Priority:** High

### TC-SA-18-04-007 — Health export: the export (the health, the format, the period); the export is the record
**Type:** Positive
**Covers:** 4.1 → Health export: the export (the health, the format, the period)
**Preconditions:** Health data exists for a period.
**Steps:**
1. Export the health: the export (the health, the format, the period).
2. Verify the export is generated in the selected format.
3. Verify the exported data matches the health view.
**Expected Result:** The health is exported — the health in the selected format for the period is generated.
**Priority:** Medium

### TC-SA-18-04-008 — System health monitoring is audit-logged with the health, status, and timestamp
**Type:** Positive
**Covers:** 4.1 → Audit logging of the system health monitoring; Rule: system health monitoring is audit-logged with the health, status, and timestamp
**Preconditions:** Super Admin has viewed the system health monitoring.
**Steps:**
1. Open the audit trail and filter by "system health".
2. Verify entries show the health, the status, and the timestamp.
**Expected Result:** The system health monitoring is audit-logged with the health, status, and timestamp.
**Priority:** Critical

## 4.2 Uptime Status

### TC-SA-18-04-009 — Uptime: the uptime (the uptime of the system, the percentage, the period); the uptime is the measure
**Type:** Positive
**Covers:** 4.2 → Uptime: the uptime (the uptime of the system, the percentage, the period); Rule: the uptime is the availability (the uptime of the system, the percentage, the period); the uptime is the measure
**Preconditions:** The system has uptime data.
**Steps:**
1. View the uptime status: the uptime (the uptime of the system, the percentage, the period) — verify the uptime is the availability.
2. Verify the uptime shows the percentage and the period.
3. Verify the uptime is accurate for the period.
**Expected Result:** The uptime is shown — the uptime of the system, the percentage, and the period are the measure.
**Priority:** Critical

### TC-SA-18-04-010 — Uptime status: the status (the up, the down, the degraded); the status is the control
**Type:** Edge
**Covers:** 4.2 → Uptime status: the status (the up, the down, the degraded); Rule: the uptime status is the state (the up, the down, the degraded); the status is the control
**Preconditions:** The system is up; a scenario where the system goes down and a scenario where it is degraded also exist.
**Steps:**
1. View the uptime status: the status (the up, the down, the degraded) — verify the status is the state.
2. Verify the status shows "up" when the system is fully operational.
3. Simulate a system outage — verify the status changes to "down".
4. Simulate a partial degradation — verify the status changes to "degraded".
**Expected Result:** The uptime status is shown — the up, the down, and the degraded are the control; the status transitions correctly.
**Priority:** Critical

### TC-SA-18-04-011 — Uptime percentage: the percentage (the percentage of the uptime, e.g., the 99.9%); the percentage is the measure
**Type:** Positive
**Covers:** 4.2 → Uptime percentage: the percentage (the percentage of the uptime, e.g., the 99.9%); Rule: the uptime percentage is the value (the percentage of the uptime, e.g., the 99.9%); the percentage is the measure
**Preconditions:** The system has uptime data.
**Steps:**
1. View the uptime percentage: the percentage (the percentage of the uptime, e.g., the 99.9%) — verify the percentage is the measure.
2. Verify the percentage is calculated correctly (up time / total time × 100).
3. Verify the percentage is accurate for the period.
**Expected Result:** The uptime percentage is shown — the percentage of the uptime (e.g., the 99.9%) is the measure.
**Priority:** High

### TC-SA-18-04-012 — Uptime period: the period (the period of the uptime, e.g., the daily, the weekly, the monthly); the period is the scope
**Type:** Positive
**Covers:** 4.2 → Uptime period: the period (the period of the uptime, e.g., the daily, the weekly, the monthly)
**Preconditions:** Uptime data exists across daily, weekly, and monthly periods.
**Steps:**
1. Set the uptime period: the period (the period of the uptime, e.g., the daily, the weekly, the monthly) — verify the period is the scope.
2. Switch between daily, weekly, and monthly — verify the uptime updates for each period.
3. Verify each period covers the correct time range.
**Expected Result:** The uptime period is set — the period of the uptime (the daily, the weekly, the monthly) is the scope.
**Priority:** High

### TC-SA-18-04-013 — Uptime trend: the trend (the trend of the uptime, the period, the change); the trend is the insight
**Type:** Positive
**Covers:** 4.2 → Uptime trend: the trend (the trend of the uptime, the period, the change); Rule: the uptime trend is the direction (the trend of the uptime, the period, the change); the trend is the insight
**Preconditions:** Uptime data exists across multiple periods.
**Steps:**
1. View the uptime trend: the trend (the trend of the uptime, the period, the change) — verify the trend is the direction.
2. Verify the trend shows the uptime over time with the period and the change.
3. Verify the trend values are accurate.
**Expected Result:** The uptime trend is shown — the trend of the uptime, the period, and the change are the insight.
**Priority:** High

### TC-SA-18-04-014 — Uptime view: the view (the uptime, the statuses, the percentages, the period); the viewing is managed
**Type:** Positive
**Covers:** 4.2 → Uptime view: the view (the uptime, the statuses, the percentages, the period); Rule: the uptime is visible (the uptime, the statuses, the percentages, the period); the viewing is managed
**Preconditions:** Uptime data exists across a period.
**Steps:**
1. View the uptime: the view (the uptime, the statuses, the percentages, the period) — verify the uptime is visible.
2. Verify the view is complete for the period.
**Expected Result:** The uptime view works — the uptime, the statuses, the percentages, and the period are visible.
**Priority:** High

### TC-SA-18-04-015 — Uptime export: the export (the uptime, the format, the period); the export is the record
**Type:** Positive
**Covers:** 4.2 → Uptime export: the export (the uptime, the format, the period)
**Preconditions:** Uptime data exists for a period.
**Steps:**
1. Export the uptime: the export (the uptime, the format, the period).
2. Verify the export is generated in the selected format.
3. Verify the exported data matches the uptime view.
**Expected Result:** The uptime is exported — the uptime in the selected format for the period is generated.
**Priority:** Medium

### TC-SA-18-04-016 — Uptime status viewing is audit-logged with the uptime, status, and timestamp
**Type:** Positive
**Covers:** 4.2 → Audit logging of the uptime status viewing; Rule: uptime status viewing is audit-logged with the uptime, status, and timestamp
**Preconditions:** Super Admin has viewed the uptime status.
**Steps:**
1. Open the audit trail and filter by "uptime".
2. Verify entries show the uptime, the status, and the timestamp.
**Expected Result:** The uptime status viewing is audit-logged with the uptime, status, and timestamp.
**Priority:** Critical

## 4.3 Error and Incident Overview

### TC-SA-18-04-017 — Error: the error (the error, the type, the count, the date); the error is the problem
**Type:** Positive
**Covers:** 4.3 → Error: the error (the error, the type, the count, the date); Rule: the error is the fault (the error, the type, the count, the date); the error is the problem
**Preconditions:** Errors exist in the system.
**Steps:**
1. View the error and incident overview: the errors (the error, the type, the count, the date) — verify the error is the fault.
2. Verify each error shows the type, the count, and the date.
3. Trigger a new error — verify it appears in the overview.
**Expected Result:** The errors are shown — the error, the type, the count, and the date are the problem.
**Priority:** Critical

### TC-SA-18-04-018 — Incident: the incident (the incident, the type, the count, the date); the incident is the occurrence
**Type:** Positive
**Covers:** 4.3 → Incident: the incident (the incident, the type, the count, the date); Rule: the incident is the event (the incident, the type, the count, the date); the incident is the occurrence
**Preconditions:** Incidents exist in the system.
**Steps:**
1. View the incidents: the incident (the incident, the type, the count, the date) — verify the incident is the event.
2. Verify each incident shows the type, the count, and the date.
3. Create a new incident — verify it appears in the overview.
**Expected Result:** The incidents are shown — the incident, the type, the count, and the date are the occurrence.
**Priority:** Critical

### TC-SA-18-04-019 — Error count: the count (the count of the errors); the count is the volume
**Type:** Positive
**Covers:** 4.3 → Error count: the count (the count of the errors); Rule: the error count is the measure (the count of the errors); the count is the volume
**Preconditions:** Errors exist in the system.
**Steps:**
1. View the error count: the count (the count of the errors) — verify the count is the measure.
2. Verify the count matches the actual number of errors.
**Expected Result:** The error count is shown — the count of the errors is the volume.
**Priority:** High

### TC-SA-18-04-020 — Incident count: the count (the count of the incidents); the count is the volume
**Type:** Positive
**Covers:** 4.3 → Incident count: the count (the count of the incidents)
**Preconditions:** Incidents exist in the system.
**Steps:**
1. View the incident count: the count (the count of the incidents) — verify the count is the measure.
2. Verify the count matches the actual number of incidents.
**Expected Result:** The incident count is shown — the count of the incidents is the volume.
**Priority:** High

### TC-SA-18-04-021 — Error status: the status (the open, the resolved, the pending); the status is the control
**Type:** Positive
**Covers:** 4.3 → Error status: the status (the open, the resolved, the pending); Rule: the error status is the state (the open, the resolved, the pending); the status is the control
**Preconditions:** Errors in all three statuses exist.
**Steps:**
1. View the error statuses: the status (the open, the resolved, the pending) — verify the status is the state.
2. Verify errors are segmented by status.
3. Resolve an open error — verify it moves from open to resolved in the view.
**Expected Result:** The error status is shown — the open, the resolved, and the pending are the control.
**Priority:** Critical

### TC-SA-18-04-022 — Error period: the period (the period of the errors, e.g., the daily, the weekly, the monthly); the period is the scope
**Type:** Positive
**Covers:** 4.3 → Error period: the period (the period of the errors, e.g., the daily, the weekly, the monthly)
**Preconditions:** Errors exist across daily, weekly, and monthly periods.
**Steps:**
1. Set the error period: the period (the period of the errors, e.g., the daily, the weekly, the monthly) — verify the period is the scope.
2. Switch between daily, weekly, and monthly — verify the errors update for each period.
3. Verify each period covers the correct date range.
**Expected Result:** The error period is set — the period of the errors (the daily, the weekly, the monthly) is the scope.
**Priority:** High

### TC-SA-18-04-023 — Error view: the view (the errors, the incidents, the counts, the period); the viewing is managed
**Type:** Positive
**Covers:** 4.3 → Error view: the view (the errors, the incidents, the counts, the period); Rule: the errors and incidents are visible (the errors, the incidents, the counts, the period); the viewing is managed
**Preconditions:** Errors and incidents exist across a period.
**Steps:**
1. View the errors and incidents: the view (the errors, the incidents, the counts, the period) — verify the errors and incidents are visible.
2. Verify the view is complete for the period.
**Expected Result:** The error view works — the errors, the incidents, the counts, and the period are visible.
**Priority:** High

### TC-SA-18-04-024 — Error and incident viewing is audit-logged with the error, status, and timestamp
**Type:** Positive
**Covers:** 4.3 → Audit logging of the error and incident viewing; Rule: error and incident viewing is audit-logged with the error, status, and timestamp
**Preconditions:** Super Admin has viewed the error and incident overview.
**Steps:**
1. Open the audit trail and filter by "error and incident".
2. Verify entries show the error, the status, and the timestamp.
**Expected Result:** The error and incident viewing is audit-logged with the error, status, and timestamp.
**Priority:** Critical
