Initial import
This commit is contained in:
398
one-ui/agreement/one-md-packet-v8/TEST_CASE_MATRIX.md
Normal file
398
one-ui/agreement/one-md-packet-v8/TEST_CASE_MATRIX.md
Normal file
@@ -0,0 +1,398 @@
|
||||
# TEST CASE MATRIX - ONE MD PACKET V8
|
||||
|
||||
## 📋 Quick Reference
|
||||
|
||||
| ID | Test Case | Priority | Status | Tester | Date | Notes |
|
||||
|---|---|---|---|---|---|---|
|
||||
| **A. SEARCH & FILTER** |
|
||||
| A1 | Pencarian Paket | P1 | ⬜ | | | |
|
||||
| A2 | Filter Perusahaan | P1 | ⬜ | | | |
|
||||
| A3 | Filter MOU | P1 | ⬜ | | | |
|
||||
| **B. CRUD PAKET** |
|
||||
| B1 | Create Paket Profile | P0 | ⬜ | | | |
|
||||
| B2 | Create Paket Panel | P0 | ⬜ | | | |
|
||||
| B3 | Update Paket | P0 | ⬜ | | | |
|
||||
| B4 | Delete Paket | P0 | ⬜ | | | |
|
||||
| B5 | Button Disabled (Released MOU) | P1 | ⬜ | | | |
|
||||
| **C. DETAIL PAKET** |
|
||||
| C1 | View Detail | P1 | ⬜ | | | |
|
||||
| C2 | Add Item (Profile) | P0 | ⬜ | | | |
|
||||
| C3 | Add Item (Panel Unlocked) | P0 | ⬜ | | | |
|
||||
| C4 | Add Item (Panel Locked) | P0 | ⬜ | | | |
|
||||
| C5 | Edit Harga Paket Manual | P0 | ⬜ | | | |
|
||||
| C6 | Edit Diskon Detail | P0 | ⬜ | | | |
|
||||
| C7 | Remove Item | P0 | ⬜ | | | |
|
||||
| C8 | Validasi Duplikasi | P1 | ⬜ | | | |
|
||||
| C9 | Batal Edit | P1 | ⬜ | | | |
|
||||
| C10 | Simpan Paket | P0 | ⬜ | | | |
|
||||
| C11 | Kembali After Save | P1 | ⬜ | | | |
|
||||
| **D. IMPORT** |
|
||||
| D1 | Import Paket | P2 | ⬜ | | | |
|
||||
| D2 | Import Validation | P2 | ⬜ | | | |
|
||||
| **E. EDGE CASES** |
|
||||
| E1 | Validasi Harga > Total | P1 | ⬜ | | | |
|
||||
| E2 | Paket Kosong | P2 | ⬜ | | | |
|
||||
| E3 | Loading State | P2 | ⬜ | | | |
|
||||
| E4 | Clear All Discounts | P2 | ⬜ | | | |
|
||||
| E5 | Add After Save | P1 | ⬜ | | | |
|
||||
| **F. WORKFLOW** |
|
||||
| F1 | Workflow Profile | P0 | ⬜ | | | |
|
||||
| F2 | Workflow Panel Custom | P0 | ⬜ | | | |
|
||||
| F3 | Workflow Edit Diskon | P0 | ⬜ | | | |
|
||||
| **G. COMPATIBILITY** |
|
||||
| G1 | Multi Browser | P1 | ⬜ | | | |
|
||||
| G2 | Responsive | P2 | ⬜ | | | |
|
||||
| **H. PERFORMANCE** |
|
||||
| H1 | Large Data | P2 | ⬜ | | | |
|
||||
| H2 | Search Performance | P2 | ⬜ | | | |
|
||||
|
||||
**Legend:**
|
||||
- ⬜ Not Tested
|
||||
- ✅ Pass
|
||||
- ❌ Fail
|
||||
- ⚠️ Partial/Warning
|
||||
- 🔄 In Progress
|
||||
|
||||
**Priority:**
|
||||
- P0: Critical (Must pass before release)
|
||||
- P1: High (Important features)
|
||||
- P2: Medium (Nice to have)
|
||||
- P3: Low (Enhancement)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 FOKUS TESTING PER FASE
|
||||
|
||||
### Phase 1: Basic Functionality (P0)
|
||||
**Goal:** Pastikan CRUD dasar berfungsi
|
||||
|
||||
✅ **Test Cases:**
|
||||
- B1: Create Paket Profile
|
||||
- B2: Create Paket Panel
|
||||
- B3: Update Paket
|
||||
- B4: Delete Paket
|
||||
- C2: Add Item (Profile)
|
||||
- C3: Add Item (Panel Unlocked)
|
||||
- C5: Edit Harga Paket
|
||||
- C6: Edit Diskon Detail
|
||||
- C7: Remove Item
|
||||
- C10: Simpan Paket
|
||||
- F1: Workflow Profile Complete
|
||||
- F2: Workflow Panel Custom
|
||||
|
||||
**Duration:** 2-3 jam
|
||||
**Expected Pass Rate:** 100%
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Advanced Features (P1)
|
||||
**Goal:** Test fitur lanjutan dan state management
|
||||
|
||||
✅ **Test Cases:**
|
||||
- C4: Add Item (Panel Locked)
|
||||
- C8: Validasi Duplikasi
|
||||
- C9: Batal Edit
|
||||
- C11: Kembali After Save
|
||||
- E1: Validasi Harga
|
||||
- E5: Add After Save
|
||||
- A1-A3: Search & Filter
|
||||
- B5: Button States
|
||||
|
||||
**Duration:** 2-3 jam
|
||||
**Expected Pass Rate:** ≥ 95%
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Integration & Edge Cases (P2)
|
||||
**Goal:** Test edge cases dan integration
|
||||
|
||||
✅ **Test Cases:**
|
||||
- D1-D2: Import features
|
||||
- E2-E4: Edge cases
|
||||
- F3: Workflow complex
|
||||
- G1-G2: Compatibility
|
||||
- H1-H2: Performance
|
||||
|
||||
**Duration:** 2-3 jam
|
||||
**Expected Pass Rate:** ≥ 90%
|
||||
|
||||
---
|
||||
|
||||
## 📊 TEST COVERAGE TARGET
|
||||
|
||||
| Category | Target Coverage | Actual | Status |
|
||||
|---|---|---|---|
|
||||
| CRUD Operations | 100% | % | |
|
||||
| Validation Rules | 100% | % | |
|
||||
| Business Logic | 95% | % | |
|
||||
| UI/UX | 90% | % | |
|
||||
| Edge Cases | 85% | % | |
|
||||
| Performance | 80% | % | |
|
||||
|
||||
---
|
||||
|
||||
## 🔑 KEY SCENARIOS - MUST PASS
|
||||
|
||||
### ⭐ Scenario 1: Create & Save Profile Packet
|
||||
**Steps:** B1 → C2 (add 5 items) → C10 → C11
|
||||
**Critical Points:**
|
||||
- Harga Paket = Total Harga (auto)
|
||||
- No manual price edit
|
||||
- Items saved correctly
|
||||
|
||||
**Status:** ⬜
|
||||
|
||||
---
|
||||
|
||||
### ⭐ Scenario 2: Create Panel with Custom Price
|
||||
**Steps:** B2 → C3 (add items) → C5 (edit price) → C10
|
||||
**Critical Points:**
|
||||
- Pro-rata distribution correct
|
||||
- Price locked after edit
|
||||
- Discounts saved properly
|
||||
|
||||
**Status:** ⬜
|
||||
|
||||
---
|
||||
|
||||
### ⭐ Scenario 3: Edit Detail Discounts
|
||||
**Steps:** Select packet → C6 (edit discounts) → C10
|
||||
**Critical Points:**
|
||||
- Disc % and Disc Rp both work
|
||||
- Price calculation correct
|
||||
- Total updates properly
|
||||
|
||||
**Status:** ⬜
|
||||
|
||||
---
|
||||
|
||||
### ⭐ Scenario 4: Add Items to Locked Packet
|
||||
**Steps:** Select saved packet → C4 (add items)
|
||||
**Critical Points:**
|
||||
- Price stays locked
|
||||
- Total updates, packet price doesn't
|
||||
- Lock indicator visible
|
||||
|
||||
**Status:** ⬜
|
||||
|
||||
---
|
||||
|
||||
### ⭐ Scenario 5: Cancel Changes
|
||||
**Steps:** Edit packet → Make changes → C9
|
||||
**Critical Points:**
|
||||
- Confirmation dialog shows
|
||||
- Changes reverted
|
||||
- Data reloaded from DB
|
||||
|
||||
**Status:** ⬜
|
||||
|
||||
---
|
||||
|
||||
## 🧮 CALCULATION VERIFICATION
|
||||
|
||||
### Test 1: Pro-rata Distribution
|
||||
```
|
||||
Given:
|
||||
Item A: Rp 200.000
|
||||
Item B: Rp 150.000
|
||||
Item C: Rp 150.000
|
||||
Total: Rp 500.000
|
||||
|
||||
When: Set Harga Paket = Rp 400.000
|
||||
|
||||
Then:
|
||||
Total Disc = Rp 100.000
|
||||
|
||||
Item A Disc = (200k/500k) × 100k = Rp 40.000
|
||||
Item A Final = 200k - 40k = Rp 160.000 ✅
|
||||
|
||||
Item B Disc = (150k/500k) × 100k = Rp 30.000
|
||||
Item B Final = 150k - 30k = Rp 120.000 ✅
|
||||
|
||||
Item C Disc = (150k/500k) × 100k = Rp 30.000
|
||||
Item C Final = 150k - 30k = Rp 120.000 ✅
|
||||
|
||||
Verify: 160k + 120k + 120k = Rp 400.000 ✅
|
||||
```
|
||||
|
||||
**Status:** ⬜ | Result: _____
|
||||
|
||||
---
|
||||
|
||||
### Test 2: Detail Discount Calculation
|
||||
```
|
||||
Given:
|
||||
Bruto: Rp 100.000
|
||||
Disc %: 10
|
||||
Disc Rp: Rp 5.000
|
||||
|
||||
Then:
|
||||
After % = 100k - (100k × 10%) = Rp 90.000
|
||||
Final = 90k - 5k = Rp 85.000 ✅
|
||||
```
|
||||
|
||||
**Status:** ⬜ | Result: _____
|
||||
|
||||
---
|
||||
|
||||
### Test 3: Multiple Items Total
|
||||
```
|
||||
Given:
|
||||
Item 1: Rp 50.000 (Disc 5%, Disc Rp 2k) = 45.5k
|
||||
Item 2: Rp 75.000 (Disc 10%, Disc Rp 0) = 67.5k
|
||||
Item 3: Rp 100.000 (Disc 0%, Disc Rp 10k) = 90k
|
||||
|
||||
Then:
|
||||
Total = 45.5k + 67.5k + 90k = Rp 203.000 ✅
|
||||
```
|
||||
|
||||
**Status:** ⬜ | Result: _____
|
||||
|
||||
---
|
||||
|
||||
## 🎨 UI/UX CHECKLIST
|
||||
|
||||
### Visual Elements
|
||||
- [ ] Selected packet has amber background
|
||||
- [ ] Locked price shows orange chip with lock icon
|
||||
- [ ] Profile type shows blue chip with info icon
|
||||
- [ ] Success alert is green with check icon
|
||||
- [ ] Loading bar appears during operations
|
||||
- [ ] Edit/Save icons change appropriately
|
||||
- [ ] Disabled buttons are gray
|
||||
- [ ] Required fields marked clearly
|
||||
|
||||
### User Feedback
|
||||
- [ ] Confirmation dialog for delete
|
||||
- [ ] Alert when price > total
|
||||
- [ ] Alert when duplicate item
|
||||
- [ ] Success message after save
|
||||
- [ ] Info tooltip on locked price
|
||||
- [ ] Hint text for profile type
|
||||
- [ ] Loading indicators visible
|
||||
|
||||
### Interaction
|
||||
- [ ] Click anywhere on row to select
|
||||
- [ ] Buttons respond to hover
|
||||
- [ ] Input fields accept keyboard input
|
||||
- [ ] Enter key triggers search
|
||||
- [ ] Modal dialogs can be closed
|
||||
- [ ] Tooltips appear on hover
|
||||
|
||||
---
|
||||
|
||||
## 🐛 COMMON ISSUES CHECKLIST
|
||||
|
||||
### Known Issues to Watch
|
||||
- [ ] Price not updating after add/remove item
|
||||
- [ ] Lock state not persisting
|
||||
- [ ] Discounts not calculating correctly
|
||||
- [ ] Pro-rata rounding errors
|
||||
- [ ] Items not appearing in search
|
||||
- [ ] Dialog not closing after save
|
||||
- [ ] Data not refreshing after save
|
||||
- [ ] Console errors during operations
|
||||
|
||||
### Regression Tests
|
||||
- [ ] Profile price always = total
|
||||
- [ ] Panel locked price stays fixed
|
||||
- [ ] Duplicate items blocked
|
||||
- [ ] MOU released disables buttons
|
||||
- [ ] Cancel reverts all changes
|
||||
- [ ] Save persists to database
|
||||
- [ ] Refresh loads correct data
|
||||
|
||||
---
|
||||
|
||||
## 📝 TESTING LOG TEMPLATE
|
||||
|
||||
### Test Session
|
||||
**Date:** ___________
|
||||
**Tester:** ___________
|
||||
**Environment:** ___________
|
||||
**Build/Version:** ___________
|
||||
|
||||
### Test Summary
|
||||
| Metric | Value |
|
||||
|---|---|
|
||||
| Total Test Cases | 33 |
|
||||
| Executed | |
|
||||
| Passed | |
|
||||
| Failed | |
|
||||
| Blocked | |
|
||||
| Pass Rate | % |
|
||||
|
||||
### Failed Test Cases
|
||||
| ID | Test Case | Reason | Severity | Assigned To |
|
||||
|---|---|---|---|---|
|
||||
| | | | | |
|
||||
| | | | | |
|
||||
|
||||
### Blockers
|
||||
1.
|
||||
2.
|
||||
|
||||
### Notes
|
||||
_________________________________
|
||||
_________________________________
|
||||
_________________________________
|
||||
|
||||
### Sign-off
|
||||
**Tester:** ___________
|
||||
**Date:** ___________
|
||||
**Status:** PASS / FAIL / CONDITIONAL
|
||||
|
||||
---
|
||||
|
||||
## 🚀 QUICK START GUIDE
|
||||
|
||||
### Untuk Tester Baru
|
||||
|
||||
**Step 1: Setup**
|
||||
1. Buka aplikasi di browser
|
||||
2. Login dengan user test
|
||||
3. Pastikan ada data test (perusahaan, MOU, tests)
|
||||
|
||||
**Step 2: Familiarisasi (15 menit)**
|
||||
1. Baca section "Deskripsi Modul" di TESTING_GUIDE.md
|
||||
2. Pahami 2 tipe paket: Profile vs Panel
|
||||
3. Pahami konsep locked/unlocked price
|
||||
|
||||
**Step 3: Start Testing**
|
||||
1. Mulai dari Phase 1 (Basic Functionality)
|
||||
2. Ikuti test case B1 (Create Profile)
|
||||
3. Ikuti test case B2 (Create Panel)
|
||||
4. Lanjut ke test case berikutnya
|
||||
|
||||
**Step 4: Report Issues**
|
||||
1. Gunakan bug template di TESTING_GUIDE.md
|
||||
2. Screenshot/screen record jika perlu
|
||||
3. Include console error
|
||||
4. Report ke developer
|
||||
|
||||
### Expected Time
|
||||
- **Setup:** 15 menit
|
||||
- **Familiarisasi:** 15 menit
|
||||
- **Phase 1:** 2-3 jam
|
||||
- **Phase 2:** 2-3 jam
|
||||
- **Phase 3:** 2-3 jam
|
||||
- **Total:** ~7-9 jam (1-2 hari kerja)
|
||||
|
||||
---
|
||||
|
||||
## 📚 REFERENCES
|
||||
|
||||
- **Main Guide:** [TESTING_GUIDE.md](./TESTING_GUIDE.md)
|
||||
- **Code Files:**
|
||||
- `components/oneMdPacketList.vue` - Main packet list
|
||||
- `components/oneMdPacketPxList.vue` - Packet details
|
||||
- `components/oneMdPacketTestList.vue` - Test selection
|
||||
- `components/oneMdPacketNew.vue` - Create/edit dialog
|
||||
- `store.js` - State management
|
||||
- `modules/packet.js` - Packet module
|
||||
|
||||
---
|
||||
|
||||
**Document Version:** 1.0
|
||||
**Last Updated:** 2026-01-22
|
||||
**Module:** One MD Packet V8
|
||||
Reference in New Issue
Block a user