Học Playwright tiếng Việt, Cộng đồng Playwright cho người Việt

How Google Tests Software

[How Google Tests Software] Phần 9: Life of a bug – Vòng đời của một bug

Hôm nay chúng ta cùng khám phá vòng đời của một Bug trong thế giới kiểm thử phần mềm của Google với những nội dung sau nhe

  • Bug là gì?
  • Bug từ đâu mà ra?
  • Bug đi đâu về đâu?
  • Bug được xử lý như thế nào?
  • Làm sao để quản lý Bug hiệu quả?

Vòng đời của một Bug

Bug là một phần không thể thiếu trong thế giới phát triển phần mềm, và cũng là đối tượng chính mà các Test Engineer săn lùng. Hôm nay, chúng ta sẽ cùng đi sâu tìm hiểu về vòng đời của một Bug từ khi được phát hiện cho đến khi bị giải quyết, dựa trên nội dung cuốn sách “How Google Tests Software”.

1. Sinh ra từ lỗi:

  • Bug thường được sinh ra từ những lỗi trong code, thiết kế hoặc cấu hình của sản phẩm.
  • Những lỗi này có thể do con người hoặc do máy móc gây ra, có thể là do thiếu kinh nghiệm, thiếu kiến thức, do áp lực thời gian, hoặc do lỗi của các công cụ phát triển.
  • Ví dụ: một bug có thể được sinh ra từ việc code sai cú pháp, thiếu logic hoặc thiếu kiểm tra lỗi.
  • Bug có thể xuất hiện ở bất kỳ giai đoạn nào của vòng đời phát triển phần mềm, từ giai đoạn thiết kế, code, test cho đến giai đoạn triển khai và vận hành.

2. Được phát hiện bởi Test Engineer:

  • Bug thường được phát hiện bởi các Test Engineer trong quá trình kiểm thử sản phẩm.
  • Các Test Engineer sử dụng các kỹ thuật kiểm thử khác nhau, từ kiểm thử thủ công đến kiểm thử tự động để tìm ra các bug.
  • Google khuyến khích sử dụng các kỹ thuật kiểm thử khác nhau, từ kiểm thử truyền thống đến kiểm thử khám phá (exploratory testing), kiểm thử hiệu suất (performance testing), kiểm thử bảo mật (security testing), … để tìm ra các bug một cách hiệu quả.
  • Bug cũng có thể được phát hiện bởi người dùng cuối, những người sử dụng sản phẩm trong môi trường thực tế.

3. Lớn lên trong báo cáo:

  • Khi một bug được phát hiện, Test Engineer sẽ ghi lại thông tin về bug vào một hệ thống quản lý bug (bug tracking system).
  • Thông tin này bao gồm:
    • Mô tả bug: Mô tả rõ ràng về lỗi, bao gồm các bước thực hiện để tái tạo lỗi (reproduce steps).
    • Bước thực hiện để tái tạo lỗi (reproduce steps): Đây là phần quan trọng nhất trong báo cáo bug. Nó giúp Developer dễ dàng hiểu và tái tạo lỗi để sửa chữa. Bước thực hiện cần được mô tả một cách chi tiết, rõ ràng và dễ hiểu.
    • Mức độ nghiêm trọng (severity): Phân loại mức độ nghiêm trọng của bug, từ mức độ nhẹ (minor) đến mức độ nghiêm trọng (critical).
    • Mức độ ưu tiên (priority): Phân loại mức độ ưu tiên của bug, từ mức độ thấp (low) đến mức độ cao (high).
    • Chức năng bị ảnh hưởng: Chức năng nào của sản phẩm bị ảnh hưởng bởi bug.
    • Môi trường bị ảnh hưởng: Môi trường nào của sản phẩm bị ảnh hưởng bởi bug (ví dụ: môi trường phát triển (development environment), môi trường thử nghiệm (testing environment), môi trường sản xuất (production environment)).
    • Thông tin bổ sung: Bất kỳ thông tin nào khác có thể hữu ích cho việc sửa lỗi.

4. Được xử lý bởi Developer:

  • Sau khi bug được báo cáo, bug sẽ được chuyển đến cho Developer để xử lý.
  • Developer sẽ xem xét bug, tìm hiểu nguyên nhân và sửa lỗi.
  • Google khuyến khích sử dụng các kỹ thuật quản lý bug hiệu quả, chẳng hạn như:
    • Sử dụng công cụ quản lý bug phù hợp như Jira, Bugzilla, Mantis, …
    • Phân loại bug theo mức độ nghiêm trọng và mức độ ưu tiên.
    • Sử dụng các kỹ thuật quản lý rủi ro (risk management) để đảm bảo rằng các bug nghiêm trọng được ưu tiên sửa chữa trước.

5. Được giải quyết:

  • Sau khi Developer sửa lỗi, bug sẽ được kiểm tra lại bởi Test Engineer.
  • Nếu bug đã được sửa chữa thành công, bug sẽ được đóng (closed).
  • Nếu bug vẫn còn tồn tại, bug sẽ được mở lại (reopened) và Developer sẽ tiếp tục sửa lỗi.

6. Học hỏi từ kinh nghiệm:

  • Mặc dù bug đã được giải quyết, nhưng kinh nghiệm từ bug vẫn được lưu giữ.
  • Các Test Engineer và Developer sẽ học hỏi từ các bug để cải thiện chất lượng sản phẩm trong tương lai.
  • Các bug được lưu trữ trong hệ thống quản lý bug có thể được sử dụng để phân tích (analysis) và cải thiện quá trình kiểm thử và phát triển.

7. Làm sao để quản lý Bug hiệu quả?

  • Sử dụng công cụ quản lý bug phù hợp như Jira, Bugzilla, Mantis, …
  • Phân loại bug theo chức năng, tính năng, mức độ ưu tiên, …
  • Đảm bảo bug được cập nhật liên tục sau mỗi lần thay đổi sản phẩm.
  • Sử dụng các kỹ thuật quản lý rủi ro để đảm bảo rằng các bug nghiêm trọng được ưu tiên sửa chữa trước.
  • Theo dõi và đánh giá hiệu quả của việc quản lý bug để tối ưu hóa quá trình kiểm thử và phát triển.

Kết luận

  • Bug là một phần không thể thiếu trong thế giới phát triển phần mềm.
  • Từ khi được phát hiện cho đến khi được giải quyết, bug đóng góp vào việc nâng cao chất lượng sản phẩm.
  • Hãy trân trọng vai trò của bug trong việc giúp chúng ta tạo ra những sản phẩm tốt hơn!

Trả lời