# 5. FAQ Management — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: faq_management.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 |
|---------|--------------------|----------|
| 5.1 Per-Video FAQs | Per-video FAQ: the questions and answers specific to a video | TC-SA-09-05-001 |
| 5.1 Per-Video FAQs | Question curation: the common questions identified and listed | TC-SA-09-05-002 |
| 5.1 Per-Video FAQs | Answer authoring: the answers written (accurate, clear) | TC-SA-09-05-003 |
| 5.1 Per-Video FAQs | Visibility: the FAQs shown on the video's page | TC-SA-09-05-004 |
| 5.1 Per-Video FAQs | Update: the FAQs updated as new questions arise | TC-SA-09-05-005 |
| 5.1 Per-Video FAQs | Source: the questions sourced from the learner's actual questions (the support, the submissions) | TC-SA-09-05-006 |
| 5.1 Per-Video FAQs | Audit logging of FAQ create/update | TC-SA-09-05-007 |
| 5.1 Per-Video FAQs | Rule: the per-video FAQs are specific to the video; they address the video's doubts, not generic questions | TC-SA-09-05-001 |
| 5.1 Per-Video FAQs | Rule: the questions are sourced from the learner's actual questions (the support, the submissions); they are real, not hypothetical | TC-SA-09-05-006 |
| 5.1 Per-Video FAQs | Rule: the answers are accurate and clear; an outdated answer is updated to match the current content | TC-SA-09-05-008 |
| 5.1 Per-Video FAQs | Rule: a video with common questions but no FAQs is a visible gap; it is not a silent omission | TC-SA-09-05-009 |
| 5.1 Per-Video FAQs | Rule: a new question is added to the FAQs as it arises; the FAQs grow with the real questions | TC-SA-09-05-005 |
| 5.1 Per-Video FAQs | Rule: FAQ create/update is audit-logged with the video, FAQs, and timestamp | TC-SA-09-05-007 |
| 5.2 Searchable FAQ Database | FAQ database: the FAQs indexed across the videos and topics | TC-SA-09-05-010 |
| 5.2 Searchable FAQ Database | Search: the FAQs searchable by the question (and the answer) | TC-SA-09-05-011 |
| 5.2 Searchable FAQ Database | Result ranking: the results ordered by relevance | TC-SA-09-05-012 |
| 5.2 Searchable FAQ Database | Filter: the results narrowed by the video/topic | TC-SA-09-05-013 |
| 5.2 Searchable FAQ Database | Answer retrieval: the answer retrieved from the search results | TC-SA-09-05-014 |
| 5.2 Searchable FAQ Database | Index maintenance: the database kept current (the new FAQs indexed) | TC-SA-09-05-015 |
| 5.2 Searchable FAQ Database | Audit logging of the index maintenance (where applicable) | TC-SA-09-05-016 |
| 5.2 Searchable FAQ Database | Rule: the FAQ database is the index of the FAQs across the videos and topics; it is searchable, not just a list | TC-SA-09-05-010 |
| 5.2 Searchable FAQ Database | Rule: the search is by the question (and the answer); the keywords are the search keys | TC-SA-09-05-011 |
| 5.2 Searchable FAQ Database | Rule: the results are ranked by relevance and can be filtered (the video/topic); the search is precise | TC-SA-09-05-012 |
| 5.2 Searchable FAQ Database | Rule: a search returning no FAQ confirms a gap; it is a signal (the FAQ to be added), not an error | TC-SA-09-05-017 |
| 5.2 Searchable FAQ Database | Rule: a poorly findable FAQ is improved via its phrasing/keywords; the change is recorded | TC-SA-09-05-018 |
| 5.2 Searchable FAQ Database | Rule: index maintenance is audit-logged where applicable | TC-SA-09-05-016 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Question submission: a learner submits a question (to the video/database) | TC-SA-09-05-019 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Moderation queue: the submitted questions queued for handling | TC-SA-09-05-020 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Teacher verification: the responses verified by a teacher (the accuracy checked) | TC-SA-09-05-021 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Verified response: the response shown as the answer once verified | TC-SA-09-05-022 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rejection: a submitted question/response rejected (with the reason) | TC-SA-09-05-023 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Attribution: the verified response attributed (the teacher who verified it) | TC-SA-09-05-024 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Audit logging of the moderation/verification | TC-SA-09-05-025 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rule: a learner-submitted question enters the moderation queue; it is not auto-published as an answer | TC-SA-09-05-020 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rule: a response is shown as the answer only once verified by a teacher; the verification is the quality gate | TC-SA-09-05-021 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rule: a verified response is attributed (the teacher who verified it); the accountability is clear | TC-SA-09-05-024 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rule: an invalid question/response is rejected with the reason; the submitter is informed | TC-SA-09-05-023 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rule: the moderation queue is managed (the pending questions handled); the community Q&A is curated, not a free-for-all | TC-SA-09-05-026 |
| 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses | Rule: moderation/verification is audit-logged with the question, response, actor, and timestamp | TC-SA-09-05-025 |

## 5.1 Per-Video FAQs

### TC-SA-09-05-001 — Per-video FAQ: the questions and answers specific to the video; they address the video's doubts, not generic questions
**Type:** Positive
**Covers:** 5.1 → Per-video FAQ: the questions and answers specific to a video; Rule: the per-video FAQs are specific to the video; they address the video's doubts, not generic questions
**Preconditions:** A video exists; common questions about the video are identified.
**Steps:**
1. For the video, create the per-video FAQs: the questions and answers specific to the video (the doubts the video raises).
2. Save and verify the FAQs are specific to the video (not generic questions).
**Expected Result:** The per-video FAQs are created — the questions and answers are specific to the video (the video's doubts, not generic questions).
**Priority:** Critical

### TC-SA-09-05-002 — Question curation: the common questions identified and listed
**Type:** Positive
**Covers:** 5.1 → Question curation: the common questions identified and listed
**Preconditions:** A video exists; common questions about the video are identified.
**Steps:**
1. Curate the questions: identify the common questions (the ones learners actually ask) and list them.
2. Verify the common questions are listed.
**Expected Result:** The common questions are identified and listed.
**Priority:** High

### TC-SA-09-05-003 — Answer authoring: the answers written (accurate, clear)
**Type:** Positive
**Covers:** 5.1 → Answer authoring: the answers written (accurate, clear)
**Preconditions:** The common questions for a video are listed.
**Steps:**
1. Author the answers: write the answers (accurate, clear) for each question.
2. Verify the answers are accurate and clear.
**Expected Result:** The answers are written — they are accurate and clear.
**Priority:** High

### TC-SA-09-05-004 — Visibility: the FAQs shown on the video's page
**Type:** Positive
**Covers:** 5.1 → Visibility: the FAQs shown on the video's page
**Preconditions:** A video has FAQs.
**Steps:**
1. As a learner, open the video's page.
2. Verify the FAQs are shown on the video's page.
**Expected Result:** The FAQs are shown on the video's page.
**Priority:** High

### TC-SA-09-05-005 — Update: the FAQs updated as new questions arise; a new question is added to the FAQs as it arises
**Type:** Positive
**Covers:** 5.1 → Update: the FAQs updated as new questions arise; Rule: a new question is added to the FAQs as it arises; the FAQs grow with the real questions
**Preconditions:** A video has FAQs; a new common question arises.
**Steps:**
1. Identify the new common question.
2. Add it to the FAQs (with the answer).
3. Verify the FAQs are updated (they grow with the real questions).
**Expected Result:** The FAQs are updated as new questions arise — a new question is added to the FAQs as it arises.
**Priority:** High

### TC-SA-09-05-006 — Source: the questions sourced from the learner's actual questions (the support, the submissions); they are real, not hypothetical
**Type:** Positive
**Covers:** 5.1 → Source: the questions sourced from the learner's actual questions (the support, the submissions); Rule: the questions are sourced from the learner's actual questions (the support, the submissions); they are real, not hypothetical
**Preconditions:** Learner questions exist (from support, submissions).
**Steps:**
1. Source the questions from the learner's actual questions (the support, the submissions).
2. Verify the questions are real (not hypothetical).
**Expected Result:** The questions are sourced from the learner's actual questions (the support, the submissions) — they are real, not hypothetical.
**Priority:** High

### TC-SA-09-05-007 — FAQ create/update is audit-logged with the video, the FAQs, and the timestamp
**Type:** Positive
**Covers:** 5.1 → Audit logging of FAQ create/update; Rule: FAQ create/update is audit-logged with the video, FAQs, and timestamp
**Preconditions:** FAQ create/update events have occurred.
**Steps:**
1. Open the audit trail and filter by "FAQ".
2. Verify entries for create/update show the video, the FAQs, and the timestamp.
**Expected Result:** The FAQ create/update is audit-logged with the video, FAQs, and timestamp.
**Priority:** Critical

### TC-SA-09-05-008 — The answers are accurate and clear; an outdated answer is updated to match the current content
**Type:** Negative
**Covers:** 5.1 → Rule: the answers are accurate and clear; an outdated answer is updated to match the current content
**Preconditions:** An FAQ answer is outdated (the content has changed).
**Steps:**
1. Identify the outdated answer.
2. Update it to match the current content.
3. Verify the answer is now accurate and clear.
**Expected Result:** The outdated answer is updated to match the current content — the answer is accurate and clear.
**Priority:** Critical

### TC-SA-09-05-009 — A video with common questions but no FAQs is a visible gap; it is not a silent omission
**Type:** Negative
**Covers:** 5.1 → Rule: a video with common questions but no FAQs is a visible gap; it is not a silent omission
**Preconditions:** A video has common questions but no FAQs.
**Steps:**
1. Review the FAQ coverage: the videos with their FAQs.
2. Verify the video with common questions but no FAQs is a visible gap (flagged in the coverage view).
3. Verify it is not a silent omission.
**Expected Result:** The video with common questions but no FAQs is a visible gap — it is not a silent omission.
**Priority:** High

## 5.2 Searchable FAQ Database

### TC-SA-09-05-010 — FAQ database: the FAQs indexed across the videos and topics; it is searchable, not just a list
**Type:** Positive
**Covers:** 5.2 → FAQ database: the FAQs indexed across the videos and topics; Rule: the FAQ database is the index of the FAQs across the videos and topics; it is searchable, not just a list
**Preconditions:** FAQs exist across multiple videos and topics.
**Steps:**
1. Verify the FAQ database indexes the FAQs across the videos and topics.
2. Verify it is searchable (not just a list).
**Expected Result:** The FAQ database is the index of the FAQs across the videos and topics — it is searchable, not just a list.
**Priority:** Critical

### TC-SA-09-05-011 — Search: the FAQs searchable by the question (and the answer); the keywords are the search keys
**Type:** Positive
**Covers:** 5.2 → Search: the FAQs searchable by the question (and the answer); Rule: the search is by the question (and the answer); the keywords are the search keys
**Preconditions:** The FAQ database is populated.
**Steps:**
1. Search the FAQ database by the question (and the answer).
2. Verify the search works (the keywords are the search keys).
**Expected Result:** The FAQs are searchable by the question (and the answer) — the keywords are the search keys.
**Priority:** Critical

### TC-SA-09-05-012 — Result ranking: the results ordered by relevance; the results can be filtered (the video/topic); the search is precise
**Type:** Positive
**Covers:** 5.2 → Result ranking: the results ordered by relevance; Filter: the results narrowed by the video/topic; Rule: the results are ranked by relevance and can be filtered (the video/topic); the search is precise
**Preconditions:** The FAQ database is populated; a search returns multiple results.
**Steps:**
1. Search the FAQ database and verify the results are ordered by relevance.
2. Filter the results by the video/topic.
3. Verify the search is precise (the results are narrowed correctly).
**Expected Result:** The results are ordered by relevance and can be filtered (the video/topic) — the search is precise.
**Priority:** High

### TC-SA-09-05-013 — Filter: the results narrowed by the video/topic
**Type:** Positive
**Covers:** 5.2 → Filter: the results narrowed by the video/topic
**Preconditions:** The FAQ database is populated; a search returns results across multiple videos/topics.
**Steps:**
1. Search the FAQ database.
2. Apply the filter (the video/topic).
3. Verify the results are narrowed to the selected video/topic.
**Expected Result:** The results are narrowed by the video/topic.
**Priority:** High

### TC-SA-09-05-014 — Answer retrieval: the answer retrieved from the search results
**Type:** Positive
**Covers:** 5.2 → Answer retrieval: the answer retrieved from the search results
**Preconditions:** A search returns FAQ results.
**Steps:**
1. Search the FAQ database.
2. Select a result and verify the answer is retrieved.
**Expected Result:** The answer is retrieved from the search results.
**Priority:** High

### TC-SA-09-05-015 — Index maintenance: the database kept current (the new FAQs indexed)
**Type:** Positive
**Covers:** 5.2 → Index maintenance: the database kept current (the new FAQs indexed)
**Preconditions:** New FAQs are created for a video.
**Steps:**
1. Create new FAQs for a video.
2. Verify the new FAQs are indexed (the database is kept current).
3. Search for the new FAQ and verify it appears in the results.
**Expected Result:** The database is kept current — the new FAQs are indexed.
**Priority:** Critical

### TC-SA-09-05-016 — Index maintenance is audit-logged where applicable
**Type:** Positive
**Covers:** 5.2 → Audit logging of the index maintenance (where applicable); Rule: index maintenance is audit-logged where applicable
**Preconditions:** Index maintenance events have occurred.
**Steps:**
1. Open the audit trail and filter by "FAQ index".
2. Verify entries for index maintenance show the action and the timestamp (where applicable).
**Expected Result:** The index maintenance is audit-logged where applicable.
**Priority:** Medium

### TC-SA-09-05-017 — A search returning no FAQ confirms a gap; it is a signal (the FAQ to be added), not an error
**Type:** Edge
**Covers:** 5.2 → Rule: a search returning no FAQ confirms a gap; it is a signal (the FAQ to be added), not an error
**Preconditions:** The FAQ database is populated; a search term has no matching FAQ.
**Steps:**
1. Search the FAQ database with a term that has no matching FAQ.
2. Verify the search returns no results (a gap, not an error).
3. Verify the gap is a signal (the FAQ to be added).
**Expected Result:** The search returning no FAQ confirms a gap — it is a signal (the FAQ to be added), not an error.
**Priority:** Medium

### TC-SA-09-05-018 — A poorly findable FAQ is improved via its phrasing/keywords; the change is recorded
**Type:** Negative
**Covers:** 5.2 → Rule: a poorly findable FAQ is improved via its phrasing/keywords; the change is recorded
**Preconditions:** An FAQ is poorly findable (learners cannot find it via search).
**Steps:**
1. Identify the poorly findable FAQ.
2. Improve it via its phrasing/keywords.
3. Verify the change is recorded.
**Expected Result:** The poorly findable FAQ is improved via its phrasing/keywords — the change is recorded.
**Priority:** High

## 5.3 Moderation of Student-Submitted Questions and Teacher-Verified Responses

### TC-SA-09-05-019 — Question submission: a learner submits a question (to the video/database)
**Type:** Positive
**Covers:** 5.3 → Question submission: a learner submits a question (to the video/database)
**Preconditions:** A learner has a question about a video.
**Steps:**
1. As the learner, submit the question (to the video/database).
2. Verify the submission is received.
**Expected Result:** The learner's question is submitted (to the video/database).
**Priority:** High

### TC-SA-09-05-020 — Moderation queue: the submitted questions queued for handling; it is not auto-published as an answer
**Type:** Negative
**Covers:** 5.3 → Moderation queue: the submitted questions queued for handling; Rule: a learner-submitted question enters the moderation queue; it is not auto-published as an answer
**Preconditions:** A learner has submitted a question.
**Steps:**
1. Verify the submitted question enters the moderation queue.
2. Verify it is not auto-published as an answer.
**Expected Result:** The submitted question enters the moderation queue — it is not auto-published as an answer.
**Priority:** Critical

### TC-SA-09-05-021 — Teacher verification: the responses verified by a teacher (the accuracy checked); the verification is the quality gate
**Type:** Negative
**Covers:** 5.3 → Teacher verification: the responses verified by a teacher (the accuracy checked); Rule: a response is shown as the answer only once verified by a teacher; the verification is the quality gate
**Preconditions:** A submitted question has a response that needs verification.
**Steps:**
1. Verify the response is not shown as the answer until verified by a teacher.
2. As the teacher, verify the response (the accuracy is checked).
**Expected Result:** The response is verified by a teacher (the accuracy is checked) — the verification is the quality gate.
**Priority:** Critical

### TC-SA-09-05-022 — Verified response: the response shown as the answer once verified
**Type:** Positive
**Covers:** 5.3 → Verified response: the response shown as the answer once verified
**Preconditions:** A response has been verified by a teacher.
**Steps:**
1. Verify the verified response is shown as the answer.
2. As a learner, view the question and verify the verified response is shown as the answer.
**Expected Result:** The verified response is shown as the answer.
**Priority:** Critical

### TC-SA-09-05-023 — Rejection: a submitted question/response rejected (with the reason); the submitter is informed
**Type:** Negative
**Covers:** 5.3 → Rejection: a submitted question/response rejected (with the reason); Rule: an invalid question/response is rejected with the reason; the submitter is informed
**Preconditions:** A submitted question/response is invalid (off-topic, incorrect).
**Steps:**
1. Reject the invalid question/response with the reason.
2. Verify the submitter is informed of the reason.
**Expected Result:** The invalid question/response is rejected with the reason — the submitter is informed.
**Priority:** Critical

### TC-SA-09-05-024 — Attribution: the verified response attributed (the teacher who verified it); the accountability is clear
**Type:** Positive
**Covers:** 5.3 → Attribution: the verified response attributed (the teacher who verified it); Rule: a verified response is attributed (the teacher who verified it); the accountability is clear
**Preconditions:** A response has been verified by a teacher.
**Steps:**
1. View the verified response.
2. Verify it is attributed (the teacher who verified it).
3. Verify the accountability is clear.
**Expected Result:** The verified response is attributed (the teacher who verified it) — the accountability is clear.
**Priority:** High

### TC-SA-09-05-025 — Moderation/verification is audit-logged with the question, the response, the actor, and the timestamp
**Type:** Positive
**Covers:** 5.3 → Audit logging of the moderation/verification; Rule: moderation/verification is audit-logged with the question, response, actor, and timestamp
**Preconditions:** Moderation/verification events have occurred.
**Steps:**
1. Open the audit trail and filter by "FAQ moderation".
2. Verify entries show the question, the response, the actor, and the timestamp.
**Expected Result:** The moderation/verification is audit-logged with the question, response, actor, and timestamp.
**Priority:** Critical

### TC-SA-09-05-026 — The moderation queue is managed (the pending questions handled); the community Q&A is curated, not a free-for-all
**Type:** Positive
**Covers:** 5.3 → Rule: the moderation queue is managed (the pending questions handled); the community Q&A is curated, not a free-for-all
**Preconditions:** Multiple questions are pending in the moderation queue.
**Steps:**
1. Review the moderation queue: the pending questions.
2. Verify the queue is managed (the pending questions are handled).
3. Verify the community Q&A is curated (only verified responses are shown as answers).
**Expected Result:** The moderation queue is managed — the community Q&A is curated, not a free-for-all.
**Priority:** High
