Danh sách các loại bug trong testing
Để có thể mang đến cho người dùng một sản phẩm đạt chuẩn chất lượng và không xuất hiện các bug, chúng cần phải trải qua quá trình testing nghiêm ngặt.
Như thế nào là bug?
Bug được hiểu là những lỗi thường xuất hiện trong chương trình hoặc hệ thống máy tính, khiến kết quả nhận được không chính xác và mang lại hiệu quả kém trong các công việc.
Trong quá trình làm nghề của các lập trình viên, việc gặp bug là điều khó tránh khỏi, bởi chúng xuất hiện thường xuyên trong việc viết code.
Một số nguyên nhân chủ yếu khiến bug xuất hiện, chính là viết sai câu lệnh, sai cú pháp, viết những câu lệnh if lồng nhau hay thậm chí đặt câu lệnh else sai nhánh để đưa giả định ban đầu không chính xác và thuộc tính dữ liệu có vấn đề, cùng vô số những việc khác.
Danh sách các loại bug trong testing
Trong quá trình làm việc thực tế, một lập trình viên có thể phải khắc phục đến hàng trăm, hàng nghìn các bug khác nhau trong những dòng code của chương trình.
Nhưng khi thực hiện việc testing, xuất hiện nhiều nhất vẫn là một số loại bug sau:
Bug khủng
Lỗi này xuất hiện từ các lỗi chính tả và lỗi cú pháp của nhiều dòng code.
Muốn hạn chế được những lỗi này, bạn nên chú ý tới thuật toán đang sử dụng, tính logic của dòng code với nguồn tài nguyên khi code.
Loại này sẽ rất dễ phát hiện khi đưa vào trình biên dịch.
Bug tí hon
Những lỗi này phần lớn liên quan đến cấu trúc và quy chuẩn trong câu lệnh, điển hình như khi viết câu lệnh bạn vô tình quên mất dấu ngoặc cũng có thể khiến chương trình không chạy.
Có thể nói, đây là loại bug gây khó chịu nhiều nhất đối với các lập trình viên trong việc lập trình, bởi nó rất khó nhận diện nên khiến quá trình khắc phục gặp nhiều khó khăn.
Nhưng bạn cũng đừng quá lo lắng khi gặp phải lỗi này, bởi bạn chỉ cần viết những dòng code đó trên những IDE phù hợp với ngôn ngữ lập trình đang sử dụng là sẽ hạn chế được ngay thôi!
Bug ẩn danh
Là loại bù không hiển thị trong quá trình biên dịch, nên chỉ có thể phát hiện ra khi chương trình hoàn thành.
Những lỗi này là nguyên nhân chính khiến các chương trình thường xuyên xảy ra lỗi sau khi cài đặt và sử dụng.
Bug bất ngờ
Giống như tên gọi của nó, loại bug này xuất hiện khá đột ngột và không theo bất kỳ quy luật nào.
Theo nhiều lập trình viên, đây là loại bug gây khó chịu nhiều nhất trong quá trình hoàn thiện chương trình.
Và đôi khi, lập trình viên cũng không thể tìm thấy nó và fix được chúng, điều này có thể công việc của các Dev bị trì hoãn hay làm ảnh hưởng nghiêm trọng đến chất lượng sản phẩm.
Bug không tồn tại
Có thể nói, loại bug này là nỗi ám ảnh đối các lập trình viên trong khoảng thời gian làm nghề.
Khi mắc lỗi này, Complie error sẽ nhảy liên tục, khiến chương trình bị báo lỗi ngay cả khi đã review code xong.
Nguyên nhân chính khi xảy ra bug này là do trình biên dịch cũ và không có khả năng đọc được những tính năng mới, khiến nó báo lỗi nhưng thực chất lại chẳng có lỗi nào tồn tại.
Chính vì thế, lập trình viên nên lựa chọn thật kỹ và update trình biên dịch thường xuyên, để có thể dễ dàng truy xuất các bug nhé!
Vòng đời xuất hiện của bug
Vòng đời của bug ở đây được tính từ khi bug đó được phát hiện cho đến khi Close bug. Quá trình này sẽ diễn ra như sau:
- New: Là lúc Tester tìm ra bug, họ sẽ báo trực tiếp cho Teamlead hay Devoloper thông qua việc log bug.
- Open: Thể hiện việc bug đã được log lên bởi Tester. Sau khi Teamlead nhận bug, họ sẽ check lại xem đó có thực sự là bug hay không.
- Rejected: Khi teamlead xác nhận bug đó không hợp lệ thì sẽ được đánh dấu là Rejected. Còn nếu bug hợp lệ sẽ xác định xem nó đã tồn tại hay chưa.
- Duplicate: Trường hợp bug đã tồn tại, nếu chưa tồn tại phải xác định xem nó có nằm trong phạm vi xử lý hay không.
- Deferred: Trong trường hợp này, bug vừa phát hiện không nằm trong phạm vi xử lý.
- Assigned: Trường hợp này thể hiện bug đã nằm trong phạm vi xử lý và tiếp đó sẽ được chuyển cho các Dev để tiến hành fix bug.
- Fix: Đây là lúc các lập trình viên tiến hành khắc phục sự cố theo yêu cầu và đưa nó về cho Tester check lại lần cuối.
- Re-Testing: Sau khi hoàn thành việc fix bug, nó sẽ được Assign lại cho Tester, họ sẽ là người kiểm tra lại xem nó đã chạy đúng hay chưa.
- Closed: Thể hiện tình trạng bug đã xác nhận là đã chạy đúng theo yêu cầu.
- Re-Opened: Trong trường hợp, Tester check lại mà bug đó vẫn xảy ra, thì nó sẽ được "gán mác" Re-Open và tiến hành Assign lại cho Dev để fix lại cho đến khi khắc phục được lỗi đó.