Phân biệt các loại lỗi phần mềm trong Testing

Trong quá trình phát triển phần mềm chúng ta không thể tránh khỏi thứ được gọi là “LỖI PHẦN MỀM”. Nhắc đến đây mọi người có thể hình dung ra được lỗi phần mềm là các lỗi liên quan đến logic, chức năng của phần mềm hay đơn giản là lỗi giao diện. Cùng được gọi là lỗi nhưng sẽ có lỗi this, lỗi that. Vì vậy hôm nay mình sẽ giúp các bạn phân loại rõ hơn các “Lỗi” này nhé.

Đầu tiên chúng ta sẽ tìm hiểu về “Error”, hoặc có cách gọi khác là “Mistake”

Theo glossary ISTQB. “Error” được định nghĩa là

Error: A human action that produces an incorrect result.

Chúng ta có thể hiểu đơn giản đó là các hành động của con người dẫn đến kết quả bị sai.

Để dễ hiểu hơn chúng ta có thể đi vào một số ví dụ sau:

  • Trong quá trình làm việc, lập trình viên chủ quan đọc requirement không kỹ dẫn đến làm thiếu yêu cầu của đề bài
  • Developer quá áp lực về thời gian nên làm sai
  • BA chỉnh sửa tài liệu đặc tả yêu cầu mà quên thông báo với đội phát triển
  • Dev/ BA/ Tester không được đào tạo về quy trình làm việc của team nên xảy ra lỗi khi làm việc
  • Lập trình viên thiếu kinh nghiệm trong lĩnh vực đang phát triển

Tiếp theo, mình sẽ giúp các bạn hiểu rõ hơn về “Defect”. “Defect” hay còn có cách gọi khác là “Bug”/ “Fault”

Theo tài liệu tra cứu từ Glossary  ISTQB, 

Defect: An imperfection or deficiency in a work product where it does not meet its requirements or specifications or impairs its intended use.

Chúng ta có thể hiểu là Fault/ Defect/ Bug  là một khiếm khuyết trong một thành phần hoặc hệ thống mà nó có thể làm cho thành phần hoặc hệ thống này không thực hiện đúng chức năng yêu cầu của nó

Ví dụ:

  • Trong quá trình làm việc, lập trình viên cần phải lấy data từ bảng A để hiển thị lên màn hình. Nhưng do hiểu sai tính logic của tài liệu, nên Lập trình viên đã lấy dữ liệu từ bảng B để hiển thị ra ngoài. Điều này đã dẫn đến lỗi hiển thị sai dữ liệu
  • Chức năng Đăng nhập, nhập password cũ nhưng vẫn cho phép login thành công
  • Chức năng Chỉnh sửa form, Hệ thống trả về thông báo thành công nhưng không insert dữ liệu mới thay thế dữ liệu cũ

Cuối cùng, chúng ta cùng nhau tìm hiểu về “Failure”.

Theo định nghĩa tra cứu từ ISTQB, 

Failure: An event in which a component or system does not meet its requirements within specified limits

Hiểu đơn giản failure là lỗi khi có kết quả sai lệch so với yêu cầu đặc tả, là sự khác biệt giữa kết quả thực tế hiển thị trên màn hình và kết quả mong đợi của một thành phần, hệ thống hoặc dịch vụ nào đó.

Để hiểu rõ hơn về Failure chúng ta cùng đi nhanh qua ví dụ bên dưới

Hệ thống SSP mong muốn cho phép team vận hành có thể xem báo cáo tối đa 90 ngày. Nhưng khi filter khoảng 60 ngày hệ thống load mãi ko ngừng và trả ra thông báo lỗi

Hay một ví dụ khác, khách hàng yêu cầu server hoạt động tốt, trôi chảy khi đồng thời có 1000 người dùng truy cập cùng lúc. Nhưng thực tế , khi khoảng 600 người dùng cùng sử dụng phần mềm tại một thời điểm. Hệ thống bị quá tải và không cho người dùng sử dụng các chức năng của phần mềm

Nhưng không phải tất cả các “Failure” đều do bug/ defect/ fault tạo ra. Bên cạnh đó, do một số lý do như người dùng thực hiện sai hướng dẫn, kiểm thử sai môi trường/ cấu hình cũng là nguyên nhân tạo ra “Failure”

Tóm lại con người hành động sẽ tạo ra các error/ mistake. Dẫn đến sẽ xuất hiện defect/ bug/ fault trong code/ tài liệu. Khi chạy chương trình thì chúng ta sẽ bắt gặp Failure

Related Posts