|
18 | 18 | ├── README.md (本檔案) |
19 | 19 | ├── index.html (購物車介面) |
20 | 20 | ├── style.css (樣式檔案) |
21 | | -├── script.js (含有 10 個 Bug 的 JavaScript) |
| 21 | +├── script.js (含有 6 個明顯 Bug 的 JavaScript) |
22 | 22 | └── package.json (專案配置) |
23 | 23 | ``` |
24 | 24 |
|
25 | 25 | ## 已知問題清單 |
26 | | -此應用包含以下 10 個刻意設計的 Bug: |
27 | | -1. 總金額計算錯誤(數學運算錯誤) |
28 | | -2. 商品重複添加時數量更新邏輯不完整 |
29 | | -3. 運費計算邏輯有問題 |
30 | | -4. 清空購物車按鈕沒反應(函數名稱錯誤) |
31 | | -5. 優惠券折扣計算異常 |
32 | | -6. 免運費功能沒有實現 |
33 | | -7. 套用優惠券後沒有重新計算 |
34 | | -8. 結帳後沒有清空購物車 |
35 | | -9. 數量修改時價格不會重新計算 |
36 | | -10. 移除商品時沒有確認或動畫效果 |
| 26 | +此應用包含以下 6 個明顯的 Bug(簡化版,便於教學): |
37 | 27 |
|
38 | | -## Demo 劇本 |
| 28 | +### 🔴 **核心計算錯誤** |
| 29 | +1. **總金額計算錯誤**:使用加法而不是乘法(第72行) |
| 30 | +2. **運費邏輯被覆蓋**:永遠是150元運費(第83行) |
39 | 31 |
|
40 | | -### **重點:快速修復與自主解決** |
41 | | -這個場景展示 Edit 的快速修復能力和 Agent 的自主問題解決。 |
| 32 | +### 🟡 **功能不完整** |
| 33 | +3. **清空購物車按鈕沒反應**:函數名稱錯誤 |
| 34 | +4. **優惠券功能不完整**:FREESHIP 沒有實際作用 |
| 35 | +5. **結帳後不會清空購物車**:註解掉的程式碼 |
42 | 36 |
|
43 | | -### 階段 1:快速診斷 (2分鐘) |
| 37 | +### 🟠 **輸入驗證問題** |
| 38 | +6. **數量輸入沒有驗證**:空值會導致 NaN 錯誤 |
44 | 39 |
|
45 | | -#### 步驟 1:快速掃描問題 (Ask) |
46 | | - **Context 準備**:無需加入特定檔案到 context,Ask 模式會使用 @workspace 掃描整個專案 |
47 | | - |
48 | | -``` |
49 | | -@workspace 這個購物車應用有哪些嚴重的 Bug?給我前 3 個最影響使用者體驗的問題。 |
50 | | -``` |
51 | | - **使用模式:Ask** |
| 40 | +## 簡化 Demo 劇本 |
52 | 41 |
|
| 42 | +### **教學重點:讓學員輕鬆發現和測試 Bug** |
53 | 43 |
|
54 | | -### 階段 2:基礎修復 (5分鐘) |
| 44 | +### 階段 1:體驗 Bug(3分鐘) |
55 | 45 |
|
56 | | -#### 步驟 2:Edit 快速修復明顯錯誤 (Edit) |
57 | | - **Context 準備**:開啟 `script.js` 並點擊檔案標籤上的 **+** 加入 context |
| 46 | +#### 步驟 1:開啟應用並測試 |
| 47 | +1. 用瀏覽器開啟 `index.html` |
| 48 | +2. **測試場景**: |
| 49 | + - 加入1台筆電(25000元) |
| 50 | + - 觀察總金額是否正確? ❌ **Bug 1**:顯示 $25,001(應該是 $25,000) |
| 51 | + - 點擊「清空購物車」按鈕 ❌ **Bug 3**:沒反應 |
| 52 | + - 輸入優惠券 `FREESHIP` ❌ **Bug 4**:運費還是150元 |
| 53 | + - 結帳後再加商品 ❌ **Bug 5**:之前的商品還在 |
58 | 54 |
|
| 55 | +#### 步驟 2:Ask 模式快速診斷 |
59 | 56 | ``` |
60 | | -修復這些明顯的錯誤: |
61 | | -1. 將 clearShoppingCart 改為 clearCart |
62 | | -2. 將第 72 行的 + 改為 *(總金額計算) |
63 | | -3. 刪除第 83 行(運費永遠是 150 的問題) |
| 57 | +@workspace 我測試這個購物車發現幾個問題:總金額計算錯誤、清空按鈕沒用、免運費無效。請幫我分析 script.js 中的問題。 |
64 | 58 | ``` |
65 | | - **使用模式:Edit** |
| 59 | +**使用模式:Ask** |
66 | 60 |
|
| 61 | +### 階段 2:Agent 修復(5分鐘) |
67 | 62 |
|
68 | | -#### 步驟 3:Edit 修復 UI 互動問題 (Edit) |
69 | | - **Context 準備**:確保 `script.js` 在 context 中 |
70 | | - |
71 | | -``` |
72 | | -修復以下 UI 互動問題: |
73 | | -1. 移除第 145 行多餘的 event.preventDefault() |
74 | | -2. 修正第 158 行的數量輸入框事件監聽器 |
75 | | -3. 修復第 167 行的移除按鈕事件綁定 |
| 63 | +#### 步驟 3:Agent 一次性修復核心問題 |
76 | 64 | ``` |
77 | | - **使用模式:Edit** |
| 65 | +請修復這個購物車的 6 個 Bug: |
| 66 | +1. 總金額計算錯誤(第72行加法改乘法) |
| 67 | +2. 運費永遠150元(第83行) |
| 68 | +3. 清空按鈕沒反應(函數名稱錯誤) |
| 69 | +4. FREESHIP 優惠券沒有實際作用 |
| 70 | +5. 結帳後不會清空購物車 |
| 71 | +6. 數量輸入驗證問題 |
78 | 72 |
|
79 | | - |
80 | | -### 階段 3:核心修復 (8分鐘) |
81 | | - |
82 | | -#### 步驟 4:Agent 修復計算邏輯 (Agent) |
83 | | - **Context 準備**:保持 `script.js` 在 context 中(Agent 會自動分析需要的檔案) |
84 | | - |
85 | | -``` |
86 | | -請修復購物車的所有計算相關問題,包括總金額、運費、優惠券折扣的完整邏輯,並實現免運費功能。 |
| 73 | +請一次修復完成,讓所有功能正常運作。 |
87 | 74 | ``` |
88 | | - **使用模式:Agent** |
89 | | - **開啟新對話** |
| 75 | +**使用模式:Agent** |
90 | 76 |
|
| 77 | +#### 步驟 4:測試修復結果 |
| 78 | +1. 重新整理頁面測試: |
| 79 | + - ✅ 加入1台筆電:總金額正確顯示 $25,150 |
| 80 | + - ✅ 清空購物車按鈕:可以正常清空 |
| 81 | + - ✅ 輸入 `FREESHIP`:運費變成 $0 |
| 82 | + - ✅ 結帳後:購物車自動清空 |
91 | 83 |
|
92 | | -#### 步驟 5:Ask 深入分析系統問題 (Ask) |
93 | | - **Context 準備**:無需額外準備,使用 @workspace 進行深入分析 |
| 84 | +### 階段 3:延伸功能(2分鐘) |
94 | 85 |
|
| 86 | +#### 步驟 5:Ask 模式獲取改進建議 |
95 | 87 | ``` |
96 | | -@workspace 分析這個購物車系統還有哪些缺失的核心功能和邏輯問題? |
| 88 | +@workspace 現在購物車基本功能都正常了,還可以加入哪些提升使用者體驗的功能? |
97 | 89 | ``` |
98 | | - **使用模式:Ask** |
| 90 | +**使用模式:Ask** |
99 | 91 |
|
| 92 | +### **快速測試指南** |
100 | 93 |
|
101 | | -#### 步驟 6:Agent 實現缺失功能 (Agent) |
102 | | - **Context 準備**: |
103 | | -- 保持 `script.js` 在 context 中 |
104 | | -- 加入 `index.html` 了解 HTML 結構(點擊檔案標籤上的 **+**) |
| 94 | +#### 🧪 **Bug 測試方法**: |
| 95 | +1. **總金額錯誤**:加入任何商品,金額會多1 |
| 96 | +2. **運費問題**:任何金額都是150元運費 |
| 97 | +3. **清空按鈕**:點擊沒反應(Console 會有錯誤) |
| 98 | +4. **免運費券**:輸入 FREESHIP 運費不會變0 |
| 99 | +5. **結帳問題**:結帳後商品還在購物車 |
| 100 | +6. **輸入驗證**:數量框留空再按新增會有問題 |
105 | 101 |
|
106 | | -``` |
107 | | -請實現這些缺失的功能: |
108 | | -1. 結帳後自動清空購物車 |
109 | | -2. 數量輸入框變更時自動更新購物車 |
110 | | -3. 移除商品時加入確認提示 |
111 | | -``` |
112 | | - **使用模式:Agent** |
113 | | - |
114 | | - |
115 | | -### 階段 4:進階優化 (5分鈘) |
116 | | - |
117 | | -#### 步驟 7:Agent 完善使用者體驗 (Agent) |
118 | | - **Context 準備**:將 `script.js` 和 `index.html` 都加入 context |
119 | | - |
120 | | -``` |
121 | | -請改善購物車的使用者體驗,包括: |
122 | | -1. 為所有操作加入適當的成功/錯誤提示訊息 |
123 | | -2. 加入載入狀態顯示 |
124 | | -3. 改善表單驗證和錯誤處理 |
125 | | -4. 為購物車商品加入簡單的動畫效果 |
126 | | -``` |
127 | | - **使用模式:Agent** |
128 | | - **開啟新對話** |
129 | | - |
130 | | - |
131 | | -#### 步驟 8:Edit 細節調整 (Edit) |
132 | | - **Context 準備**:保持 `script.js` 在 context 中 |
133 | | - |
134 | | -``` |
135 | | -請進行最後的細節調整: |
136 | | -1. 在購物車為空時顯示提示文字 |
137 | | -2. 調整優惠券輸入框的 placeholder 文字 |
138 | | -3. 修正結帳按鈕的文字為「立即結帳」 |
139 | | -``` |
140 | | - **使用模式:Edit** |
141 | | - |
142 | | - |
143 | | -### 階段 5:延伸應用 (2分鐘) |
144 | | - |
145 | | -#### 步驟 9:產生測試案例文件 (Agent) |
146 | | - **Context 準備**:將 `script.js` 和 `index.html` 都加入 context(點擊檔案標籤上的 **+**) |
147 | | - |
148 | | -``` |
149 | | -請為這個購物車應用產生完整的測試案例文件,包括正常流程和異常情況的測試項目。 |
150 | | -``` |
151 | | - **使用模式:Agent** |
152 | | - |
153 | | - |
154 | | -#### 步驟 10:Agent 產生修復報告 (Agent) |
155 | | - **Context 準備**:保持所有相關檔案在 context 中 |
156 | | - |
157 | | -``` |
158 | | -請產生一份詳細的修復報告,包括: |
159 | | -1. 修復的問題清單和解決方案 |
160 | | -2. 系統改進建議 |
161 | | -3. 未來維護注意事項 |
162 | | -``` |
163 | | - **使用模式:Agent** |
| 102 | +#### ✅ **修復驗證方法**: |
| 103 | +1. **總金額正確**:25000元商品顯示25000元 |
| 104 | +2. **運費邏輯**:<10000收200、10000-30000收100、>30000免運 |
| 105 | +3. **清空按鈕**:點擊能清空購物車 |
| 106 | +4. **免運費券**:FREESHIP 讓運費變0 |
| 107 | +5. **結帳清空**:結帳後購物車自動清空 |
| 108 | +6. **輸入安全**:空值不會造成錯誤 |
164 | 109 |
|
165 | 110 |
|
166 | 111 | ## 重點技巧 |
|
0 commit comments