# 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