169 wordpress feature image (29)

Bug Report ที่ดี แบบที่ Dev อ่านแล้วแก้ได้เลย

ถ้าใครเคยส่ง Bug Report ไปแล้วโดนถามกลับมาว่า “Reproduce ยังไง” หรือ โดนตีกลับมาว่า “ไม่ใช่บั๊ก” บ่อยๆ
นั่นอาจจะเป็นสัญญาณว่า report ของเรายังไม่สามารถช่วยให้ Dev ทำงานได้

อย่าเพิ่งโทษว่าเป็นความผิดของใครนะคะ
เรามาดูกันดีกว่าว่า Bug Report ที่ดี ควรจะมีอะไรบ้าง

วันนี้พี่กิ่งเอา 3 เคสจริงมาให้ดูกันว่า แบบที่ ✅ ควรทำ และ ❌ ไม่ควรทำ ต่างกันยังไง

ตัวอย่างที่ 1: ระบบคำนวณส่วนลดผิด

❌ แบบนี้งง

Description: ใส่ coupon แล้วราคาไม่ถูก
Expected: แสดงส่วนลดถูกต้อง
Actual: คำนวณส่วนลดผิด

ปัญหาคือ “ไม่ถูก” “ถูกต้อง” “ผิด” คือยังไง คำนวณส่วนลดผิด หรือ แสดงผลไม่ถูก
อ่านแล้วบอกไม่ได้เลยใช่มั้ยคะ dev ต้องเดาเอาว่าจะไปเริ่มดูโค้ดตรงไหน จะลองเทสเองด้วย coupon ไหนกับสินค้าอะไร

✅ แบบนี้ดูต่อง่าย

Title: ใส่ coupon SAVE20 แล้วระบบลดราคาผิด – ลด 20 บาทแทนที่จะลด 20%
Description:

  1. เพิ่มสินค้าราคา 500 บาทในตะกร้า
  2. กรอก coupon code SAVE20
  3. กด Apply

Expected: ราคาลดเป็น 400 บาท (ลด 20% จาก 500 = 100 บาท)
Actual: ราคาลดเป็น 480 บาท (ลด 20 บาท ไม่ใช่ 20%)

Environment: Staging

💡  พอเราระบุ Expected เป็นตัวเลขชัดๆแบบนี้ Dev ก็จะเห็นทันทีว่า logic ตรงไหนผิด
แล้วก็ไปเริ่มดูจากโค้ดส่วนนั้นได้เลย ไม่ต้องเสียเวลาเดาเอาเอง

ตัวอย่างที่ 2: กดชำระเงินแล้วไม่มีอะไรเกิดขึ้น

❌ แบบนี้งง

Description: ระบบ Payment มีปัญหา กดแล้วไม่ผ่าน

เอาอีกแล้วใช่มั้ยคะ “ไม่ผ่าน” “มีปัญหา” คือยังไง กดแล้วขึ้น Error กดแล้วค้าง หรือหน้าขาวไปเลย
ส่งไปแบบนี้ Dev แต่ละคนก็อาจจะตีความต่างกันไป ไม่รู้ต้องไปเริ่มดูจากตรงไหน

✅ แบบนี้ดูต่อง่าย

Title: กดยืนยันชำระเงินแล้วปุ่ม loading ค้าง ไม่มี response
Description: ใส่สินค้าในตะกร้า -> กดชำระเงิน -> กรอกข้อมูลบัตร -> กดยืนยันการชำระเงิน
Expected: ขึ้นหน้าชำระเงินสำเร็จ และส่ง email ยืนยันให้ลูกค้า
Actual: ปุ่มกลายเป็น loading ค้างอยู่มากกว่า 30 วินาที ไม่มีอะไรเกิดขึ้น
/api/payment ได้ response 500 Internal Server Error กลับมา

Environment: Dev

💡 นอกจากเราจะบอกปัญหาและขั้นตอนอย่างชัดเจนแล้ว
การเพิ่มข้อมูลเรื่อง API ว่าเจอ 500 ทำให้ dev รู้ทันทีว่าปัญหาอยู่ที่ backend server และเริ่มหาสาเหตุได้ตรงจุด

ตัวอย่างที่ 3: กด search สินค้าแล้วได้ผลลัพธ์ไม่ตรง

❌ แบบนี้งง

Description: ค้นหาสินค้าในระบบ แล้วได้ผลลัพธ์ว่า “ไม่พบสินค้า”

อันนี้เหมือนจะดี แต่ปรากฏว่า Dev ไป ลอง search ดู อ้าว แสดงผลได้ปกตินี่นา เลยส่งกลับมาว่าไม่ใช่บั๊ก
เพราะเรา search ด้วยคำว่า “รองเท้าผ้าใบ” ส่วน Dev ไปลองด้วยคำว่า “sneaker”

✅ แบบนี้ดูต่อง่าย

Title: Search ด้วย keyword ภาษาไทยแล้วไม่แสดงผล แต่ภาษาอังกฤษปกติ
Description: ไปหน้า Search -> ค้นหาด้วยคำว่า “รองเท้าผ้าใบ” -> กด Enter
Expected: แสดงผลลัพธ์สินค้าที่มีคำว่า “รองเท้าผ้าใบ” หรือ category รองเท้าผ้าใบ
Actual: แสดงผล “ไม่พบสินค้า” 

Note: 

  1. API request ส่ง keyword ถูก แต่ response กลับมาเป็น empty array
  2. ลอง search ด้วยคำว่า sneaker แล้วเจอปกติ

Environment: Dev

💡 การที่เราระบุปัญหาได้เจาะจงมากขึ้น มีการเปรียบเทียบผลระหว่าง “รองเท้าผ้าใบ” และ “sneaker”
ทำให้ dev เห็นทันทีว่า backend น่าจะมีปัญหากับภาษาไทย ทำให้ scope การแก้ปัญหาได้ชัดขึ้น

มีใครสังเกตมั้ยคะ ว่าทุกเคสมีอะไรบางอย่างที่เหมือนกัน

📌  Steps ที่ทำซ้ำได้ ใครอ่านก็ไปลองทำตามได้เลย
📌  Expected vs Actual ชัดเจน ไม่ต้องเดาว่า “ถูก” “ไม่ถูก” “มีปัญหา” คืออะไร
📌  บอก Context ถ้าหาได้ เช่น API response, compare case ที่ใช้ได้และไม่ได้ เพื่อช่วยให้ระบุปัญหาได้เร็วขึ้น
📌  Environment ครบ เกิดที่ไหน 

เขียนครบแค่นี้ก็จะช่วยให้ทีม scope ปัญหาได้ชัดเจน และพุ่งตรงไปแก้ตรงนั้นได้เลย โดยที่ไม่ต้องเสียเวลาเดา หรือ เข้าใจไม่ตรงกัน

ถ้าใครยังไม่รู้จะเริ่มยังไง พี่กิ่งมี Bug Report Template ให้ทุกคนไปลองใช้ดูค่ะ
ใน Template นี้จะมี field ที่เราควรจะใส่ ทั้ง Steps, Expected, Actual, Environment
รวมทั้ง context ที่ควรมี พร้อมตัวอย่างให้เอาไปปรับใช้กับทีมได้เลย

👉  แอด LINE OA แล้วพิมพ์ TEMPLATE เพื่อรับฟรีได้เลยค่ะ https://lin.ee/WTnVwbI

Leave a Comment

Your email address will not be published. Required fields are marked *