มหาวิทยาลัยมหามกุฏราชวิทยาลัย · ระบบสาธิต (Demo)
ข้ามไปยังเนื้อหา

ดัชนีรายงานผลการทดสอบ

งวดที่ 2 · ทดสอบ

ดาวน์โหลด .md

ดัชนีรายงานผลการทดสอบ (Test Reports Index)

อ้างอิง TOR: ข้อ 4.7.4 (Functional Test + SIT บนสภาพแวดล้อมทดสอบ), ข้อ 4.7.5 (Regression อัตโนมัติทุก API และ CTA) และข้อ 4.7.9 (ส่งมอบรายงานผลการทดสอบ ชุดทดสอบ และไฟล์ CI/CD พร้อม Source Code) ฉบับ: 1.0 — วันที่ 3 ตุลาคม พ.ศ. 2569

เอกสารนี้เป็น ดัชนี รวมรายงานผลการทดสอบทุกประเภทและวิธีสร้างซ้ำ ตัวเลขผลการทดสอบอยู่ในรายงานแต่ละฉบับซึ่งสร้างอัตโนมัติจากการรันเครื่องมือจริง (มีหัว “สร้างอัตโนมัติเมื่อ …”) เอกสารนี้ไม่คัดลอกตัวเลขมาเพื่อไม่ให้ข้อมูลล้าสมัยเมื่อรันใหม่ แผนและกรณีทดสอบอยู่ที่ /documents/master-test-plan


1. รายงานผลการทดสอบ

รายงานลิงก์TORเนื้อหาคำสั่งสร้างซ้ำ
Unit Test Coverage/documents/coverage-report4.7.3coverage ของ src/domain + src/application (lines/functions/branches/statements) เทียบ gate ≥80%npx tsx scripts/reports/coverage-report.ts (รัน vitest run --coverage แล้วอ่าน coverage/coverage-summary.json)
ประสิทธิภาพ/documents/performance-report4.7.6, 12.2, ก.1.4.1, ก.1.4.2latency p50/p95, TTFT p95, error rate, FCP, ผล seed บัญชีจำนวนมากnpm run report:perf (+ npm run seed:perf-users -- --count=1000000)
Vulnerability Scan/documents/vulnerability-scan-report4.8.1, ก.2.2.2, 7.2.6ผล npm audit แยกระดับความรุนแรง + แผนแก้ไขnpm run report:security
Penetration Test/documents/pentest-report4.8.2, ก.2.1.1ไม่ได้ดำเนินการในรอบนี้ตามคำสั่งของผู้ว่าจ้าง — รายงานบันทึกเหตุผลและแผนดำเนินการ—
ทดสอบการกู้คืนข้อมูล/documents/restore-test-reportก.1.6.3backup → ทำลาย → restore → เทียบจำนวนแถวรายตาราง + integrity_checknpm run report:restore-test
Baseline/Acceptance Evaluation/documents/baseline-evaluation-report4.7.7, 7.2.3, ก.5.3คะแนน 7 ชุด Benchmark ทั้งรอบ baseline และ acceptance เทียบเกณฑ์ขั้นต่ำและค่ารับประกันnpx tsx scripts/eval/run-acceptance.ts --label baseline --qa-prompt 1 → npm run eval:acceptance → npm run report:evaluation
AI Security / Guardrail/documents/guardrail-security-report7.2.7, ก.4.4อัตราการป้องกัน GR-1, GR-2 และ Prompt Injection 20 เคส แยกประเภทการโจมตีnpm run report:evaluation หรือปุ่มรันที่ /admin/evaluation/security-report
การนำเข้าข้อมูล/documents/ingestion-report7.2.5, 4.5.2, ข.1จำนวนเอกสาร/chunks, ความครอบคลุม 91 เล่ม, รายการล้มเหลวnpm run report:ingestion
SLA รายเดือน/documents/sla-monthly-report12.1–12.5Availability, p95 latency, TTFT, error rate, defect เทียบ SLAnpm run report:sla หรือปุ่ม export ที่ /admin/sla-report

คำสั่งรวม: npm run report:all (= security → perf → restore-test → ingestion → evaluation → sla ตามลำดับใน package.json)

2. ผลการทดสอบอัตโนมัติระดับโค้ด

ระดับคำสั่งผลลัพธ์ที่ได้
Unit + API + regression ทุก APInpm test (OPENAPI_COVERAGE=1 vitest run)สรุปผลบน console; ล้มเหลวเมื่อมี endpoint ที่ไม่ถูกทดสอบ
Unit + API + coverage gatenpm run test:coveragecoverage/ (text-summary, coverage-summary.json, HTML)
Functional/SIT (API)npm run test:sit (vitest run tests/api)ฐานข้อมูลทดสอบแยกต่อไฟล์
E2E (Playwright × 3 viewport)npm run test:e2e (ต้องมี dev server ที่ E2E_PORT, ค่าเริ่มต้น 3210 — config เปิดให้เองถ้ายังไม่รัน)test-results/e2e-results.json + trace/screenshot เมื่อล้มเหลว
Type check / Lintnpx tsc --noEmit -p . / npm run lint—
ทดสอบไฟล์ IaCnpx vitest run tests/unit/infra-yaml.test.tsparse ci-cd.yml และ Helm chart ทุกไฟล์

3. Functional Test และ SIT (TOR 4.7.4)

  • Functional Test: E2E 26 สถานการณ์ใน tests/e2e/{public,chat,admin}.spec.ts ครอบคลุมเส้นทางผู้ใช้ทั่วไป ผู้ดูแล และ SUPER_ADMIN รันบน Chromium 3 ขนาดหน้าจอ
  • SIT: API test 24 ไฟล์เรียก route handler จริงพร้อม middleware logic ต่อฐานข้อมูลทดสอบที่ seed ใหม่ทุกไฟล์ (tests/helpers/global-setup.ts) ทดสอบการทำงานร่วมกันของ use case, Prisma, RAG pipeline (Mock LLM), ingestion pipeline และ audit
  • สภาพแวดล้อมทดสอบระยะ Production: namespace mbu-test (deploy จาก branch release/*) — ยังไม่ได้ติดตั้งจริง สถานะข้อ 4.7.4 ใน /tor จึงเป็น partial

4. แนวทาง Regression อัตโนมัติ (TOR 4.7.5)

4.1 Regression ทุก API: openapi-coverage

การตรวจมี 2 ชั้น:

  1. ชั้น static — tests/api/openapi-coverage.test.ts ตรวจว่า ทุก operation ใน registry (apiRegistry ใน src/server/api/openapi/index.ts — 107 operation ซึ่งเป็นแหล่งเดียวกับ /api/openapi.json) มีไฟล์ใน tests/api ที่ import handler ของ method นั้นจาก @/app<path>/route ถ้าขาดชุดทดสอบล้มเหลวพร้อมรายการ endpoint
  2. ชั้น runtime — ทุก route ห่อด้วย withApi({ path, ... }) ซึ่งบันทึก "METHOD path" ที่ถูกเรียกจริงลงไฟล์ coverage/.api-calls-<pid>.log; เมื่อรันทั้งชุดด้วย OPENAPI_COVERAGE=1 (ตั้งไว้ใน npm test และ npm run test:coverage) ขั้น teardown ใน tests/helpers/global-setup.ts เทียบกับรายการในไฟล์ registry เขียนผลที่ coverage/openapi-coverage.json (total, called, missing) และตั้ง exit code เป็นล้มเหลวถ้ามี endpoint ที่ไม่ถูกเรียก
    • ข้อจำกัดที่พบจากการอ่านโค้ด: ขั้น runtime อ่าน registry ด้วย regex ที่จับเฉพาะ path ที่เป็นสตริงตรง ๆ — ไฟล์กลุ่มที่สร้าง path ด้วย template literal (admin-kb.ts, admin-eval.ts) จึงถูกตรวจด้วยชั้น static เป็นหลัก
  3. การเพิ่ม endpoint ใหม่จึงบังคับให้ต้องมีกรณีทดสอบเสมอ และแต่ละกลุ่ม endpoint มีกรณีสำเร็จและกรณีสิทธิ์ไม่พอ (401/403)

4.2 Regression ของ CTA (Call-to-Action) หน้าเว็บ

E2E ทดสอบปุ่ม/การกระทำหลักโดยใช้ data-testid: สมัคร/เข้าสู่ระบบ/OAuth, ส่งคำถาม, Expand All, citation chip → modal, 👍/👎, RAG Trace, Dhamma Talk บันทึก artifact, สลับภาษา/ธีม, ดาวน์โหลดเอกสาร, ฟังก์ชันผู้ดูแล (เปลี่ยน config → revert, prompt rollback, อัปโหลดเอกสาร, export audit, defect, unavailable)

4.3 เมื่อใดต้องรัน Regression

เหตุการณ์ชุดที่รัน
ทุก push / pull request (CI)lint → vitest run --coverage → npm audit → build → Playwright (ตาม .github/workflows/ci-cd.yml)
แก้ prompt / config AInpm test + รัน Benchmark ที่เกี่ยวข้อง (npx tsx scripts/eval/run-acceptance.ts --only <ชุด>)
นำเข้าเอกสารชุดใหญ่tests/api/knowledge-base.test.ts + Benchmark RET-1..3 + npm run report:ingestion
ก่อนส่งมอบงวดnpm run test:coverage, npm run test:e2e, npm run report:all

หมายเหตุ: ไฟล์ CI/CD ส่งมอบแล้วแต่ ยังไม่ได้รันบน GitHub Actions จริง ในรอบสาธิต (ดู /documents/cicd-pipeline) การรัน regression ในรอบนี้ทำบนเครื่องพัฒนาด้วยคำสั่งข้างต้น

5. ชุดทดสอบและไฟล์ที่ส่งมอบพร้อม Source Code (TOR 4.7.9)

รายการตำแหน่ง
Unit tests (29 ไฟล์)tests/unit/ (รวม tests/unit/components/)
API/SIT tests (24 ไฟล์)tests/api/
E2E tests (3 spec)tests/e2e/
Test helpers และ fixturestests/helpers/, tests/fixtures/kb/
Benchmark datasets 7 ชุด + Injectionseed/benchmarks/*.csv + ที่มา seed/benchmarks/SOURCES.md
สคริปต์สร้างชุด Benchmarkscripts/data/benchmarks/
สคริปต์ทดสอบ/รายงานscripts/perf/, scripts/security/, scripts/reports/, scripts/eval/, scripts/restore-test.sh
การตั้งค่าเครื่องมือทดสอบvitest.config.ts, playwright.config.ts
ไฟล์ CI/CD.github/workflows/ci-cd.yml (คำอธิบาย: /documents/cicd-pipeline)
Infrastructure as Codeinfra/helm/mbu-buddhist-ai/