Làm sao mô tả lỗi (bug) hiệu quả.

📌 1. Tại sao phải mô tả lỗi tốt

  • Các bản ghi lỗi là một trong những sản phẩm quan trọng nhất của testing.
  • Một bản mô tả lỗi tốt sẽ giúp:
    • Developer không mất thời gian hiểu lỗi → Tăng tốc độ fix.
    • Quản lý dễ đánh giá chất lượng sản phẩm.
    • Giảm số lỗi bị trả về → Tăng uy tín tester.
    • Cải thiện quan hệ giữa nhóm test và dev.

📌 2. Thế nào là một bản mô tả lỗi tốt

🔹 Về “Nghĩa”

  • Chính xác: Lỗi là do phần mềm, không phải lỗi người dùng, môi trường hay setup.
  • Tái sinh được: Có đủ điều kiện và bước để tái lặp lỗi.
  • Tổng quát hóa: Lỗi xảy ra theo quy luật nào.

Lưu ý: Có lỗi dễ lặp lại, có lỗi không — nếu lỗi không lặp lại được, hãy ghi chú rõ và cung cấp mọi thông tin hữu ích.


🔹 Về “Chữ”

  • Tiêu đề tốt: Cô đọng, giàu thông tin.
  • Vừa đủ: Không thừa, không thiếu.
  • Dễ hiểu: Ngôn từ rõ ràng, không viết tắt tuỳ tiện.
  • Trung hòa: Tránh mỉa mai, đùa cợt, chỉ nêu sự thật.

📌 3. Làm thế nào để mô tả lỗi tốt

🔸 Tiêu đề lỗi

Trả lời câu hỏi: “Ở chức năng nào, có lỗi gì, trong trường hợp nào?”

🔸 Phần diễn giải lỗi

Trả lời:

  • Các bước tái hiện lỗi?
  • Lỗi xảy ra như thế nào?
  • Kết quả đúng phải là gì?

🔸 Để đảm bảo mô tả lỗi chính xác:

  • Có gì trong setup gây ra lỗi?
    VD: đã cài đúng version cần test? Đủ cấu hình chưa? Có liên quan đến network hay môi trường không?
  • Dùng đúng account/role chưa?
  • Máy test có “sạch” không? Có lỗi cũ gây ảnh hưởng không?
  • Bạn đã hiểu rõ chức năng hoạt động chưa?
  • Dữ liệu test có đặc biệt gì không?

🔸 Để tái lặp được lỗi

  • Xác định bộ bước cần thiết nhất để gây ra lỗi.
  • Nếu có nhiều giá trị đầu vào → thử thay đổi để tìm giá trị gây lỗi.
  • Kiểm tra cấu hình, setting liên quan.

🔸 Để tổng quát hóa lỗi

  • Suy luận & thử các bước khác để tìm quy luật xảy ra lỗi.

📌 Cách viết tiêu đề lỗi tốt

  • Không chỉ ghi “Có lỗi”, hãy nói rõ lỗi gì, khi nào, ở đâu.
  • Dùng từ giàu ý nghĩa, chỉ ra môi trường & hậu quả.
  • Theo hướng trả lời 5W1H (Who, What, When, Where, Why, How).
  • Ngữ pháp không quan trọng bằng nội dung rõ ràng.

Ví dụ:

❌ Không nên:

Không đăng nhập được vào Trading APP mobile.

✅ Nên:

Không đăng nhập được vào Trading APP mobile khi dùng license Starter.


📌 Cách mô tả dễ hiểu và vừa đủ

  • Diễn đạt rõ, không dài dòng.
  • Sử dụng ngôn ngữ đơn giản, dễ hiểu.
  • Tránh tiếng Việt không dấu, từ khó hiểu, viết tắt không cần thiết.
  • Nghĩ đến đối tượng đọc lỗi: dev, tester khác, quản lý, khách hàng…

Ví dụ về “Dễ hiểu”:

“Mai kém Linh 4 tuổi, Lan hơn Mai 3 tuổi Lan kém Linh một tuổi.”

“Mai kém Linh 4 tuổi, Mai kém Lan 3 tuổi → Linh hơn Lan 1 tuổi.”


Ví dụ về “Vừa đủ”

❌ Đừng:

Diễn giải dài, thiếu rõ ràng, không theo thứ tự.

✅ Hãy:

  1. Thêm phiếu chi PC01 trả tiền NCC bằng TM.
  2. Từ PC01, thêm PC02 loại khác → Cất.
  3. Danh sách hiển thị sai loại chứng từ.
  4. Mở chi tiết PC02: tab chứng từ trống.

📌 Mô tả đảm bảo Trung hòa

  • Tránh phê phán, đùa cợt, thể hiện cảm xúc tiêu cực.
  • Tôn trọng công sức của dev.
  • Chỉ đưa sự thật, trạng thái lỗi một cách khách quan.

Ví dụ:

❌ Đừng:

Type ẩu quá.

✅ Hãy:

Lỗi nhỏ: dấu chấm hỏi sai vị trí.


📌 Mô tả lỗi mang tính khuyến khích fix

  • Chỉ ra hậu quả tiềm ẩn nếu lỗi không được sửa.
  • Xác định đúng:
    • Severity: Mức độ ảnh hưởng.
    • Frequency: Tần suất xảy ra lỗi.
    • Priority: Mức độ ưu tiên xử lý.

Priority = Tổng hợp của Severity và Frequency.

Ví dụ:

  • Lỗi chính tả nhỏ nhưng gây phản cảm nếu NSD thấy đầu tiên.
  • Tính năng ít dùng nhưng nếu cần thì cực kỳ quan trọng → phải fix sớm.

🔗 Nguồn tham khảo trực tiếp

  1. 🧪 BrowserStack – Hướng dẫn viết bug report hiệu quả
  2. 🧰 Marker.io – Bug reporting checklist cho dev & QA
  3. 💻 GitHub Docs – Reporting and managing bugs
  4. 🧪 OWASP Testing Guide – Bug Reporting
  5. 🔍 Mozilla QA – Bug writing guidelines