66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
# Section 7: Testing Requirements (ข้อกำหนดด้านการทดสอบ)
|
|
|
|
---
|
|
|
|
title: 'Testing Requirements'
|
|
version: 1.5.0
|
|
status: first-draft
|
|
owner: Nattanin Peancharoen
|
|
last_updated: 2025-11-30
|
|
related:
|
|
|
|
- specs/02-architecture/data-model.md#correspondence
|
|
- specs/03-implementation/backend-guidelines.md#correspondencemodule
|
|
|
|
---
|
|
|
|
## 7.1 Unit Testing
|
|
|
|
- ต้องมี unit tests สำหรับ business logic ทั้งหมด
|
|
- Code coverage อย่างน้อย 70% สำหรับ backend services
|
|
- Business Logic: 80%+
|
|
- Controllers: 70%+
|
|
- Utilities: 90%+
|
|
- ต้องทดสอบ RBAC permission logic ทุกระดับ
|
|
|
|
## 7.2 Integration Testing
|
|
|
|
- ทดสอบการทำงานร่วมกันของ modules
|
|
- ทดสอบ database migrations และ data integrity
|
|
- ทดสอบ API endpoints ด้วย realistic data
|
|
|
|
## 7.3 End-to-End Testing
|
|
|
|
- ทดสอบ complete user workflows
|
|
- ทดสอบ document lifecycle จาก creation ถึง archival
|
|
- ทดสอบ cross-module integrations
|
|
|
|
## 7.4 Security Testing
|
|
|
|
- Penetration Testing: ทดสอบ OWASP Top 10 vulnerabilities
|
|
- Security Audit: Review code สำหรับ security flaws
|
|
- Virus Scanning Test: ทดสอบ file upload security
|
|
- Rate Limiting Test: ทดสอบ rate limiting functionality
|
|
|
|
## 7.5. Performance Testing
|
|
|
|
- Penetration Testing: ทดสอบ OWASP Top 10 vulnerabilities
|
|
- Security Audit: Review code สำหรับ security flaws
|
|
- Virus Scanning Test: ทดสอบ file upload security
|
|
- **Rate Limiting Test:** ทดสอบ rate limiting functionality
|
|
- **Load Testing:** ทดสอบด้วย realistic workloads
|
|
- **Stress Testing:** หา breaking points ของระบบ
|
|
- **Endurance Testing:** ทดสอบการทำงานต่อเนื่องเป็นเวลานาน
|
|
|
|
## 7.6. Disaster Recovery Testing
|
|
|
|
- ทดสอบ backup และ restoration procedures
|
|
- ทดสอบ failover mechanisms
|
|
- ทดสอบ data integrity หลังการ recovery
|
|
|
|
## 7.7 Specific Scenario Testing (เพิ่ม)
|
|
|
|
- **Race Condition Test:** ทดสอบยิง Request ขอเลขที่เอกสารพร้อมกัน 100 Request
|
|
- **Transaction Test:** ทดสอบปิดเน็ตระหว่าง Upload ไฟล์ (ตรวจสอบว่าไม่มี Orphan File หรือ Broken Link)
|
|
- **Permission Test:** ทดสอบ CASL Integration ทั้งฝั่ง Backend และ Frontend ให้ตรงกัน
|