Search…

Các Vấn Đề về Debug Cơ Bản

23/09/20203 min read
Lập trình viên chính là các công cụ sinh ra Bugs nhiều nhất vì họ lập trình. Nên công cụ tốt nhất để gỡ bỏ bớt bugs chính là các lập trình viên.

Bug là gì?

Bugs là bọ, bọ ám chỉ các lỗi xảy ra trong code, hay những điểm làm cho ứng dụng không thực thi được hoặc thực thi sai.

Bugs luôn tiềm ẩn ở mọi nơi trong code hoặc cả kiến trúc phần mềm, không thể lường trước được mọi tình huống có thể xảy ra mà chỉ có thể cố gắng làm giảm nó đến mức thấp nhất.

Debug là gi?

Debug là quá trình tìm kiếm nguyên nhân gây ra lỗi, từ đó đề xuất nên hướng sửa lỗi (fix bug). Do đó, cần nhiều ý tưởng, phương pháp để tìm kiếm bug của ứng dụng.

Bài viết không đề cập đến các loại test chuyên nghiệp như pentest, unit test, integration test, ... mà hướng đến cách thức lập trình viên tìm ra lỗi.

Các công cụ và phương pháp debug

  1. Debug trực quan với Debuger có trong Visual Studio hoặc trên các IDE có hỗ trợ.
  2. Debug với các tín hiệu.
  3. Debug với log.

1. Debug với Debuger

Các IDE thường hỗ trợ kèm công cụ debug trực quan để có thể theo dõi trạng thái tức thời của ứng dụng. Các công cụ này có thể hỗ trợ theo dõi trạng thái hiện tại của 1 đối tượng và từ đó giúp sửa chữa những lỗi này nhanh chóng hơn.

Cách debug này cũng phù hợp với các mô hình sự kiện, tức thời, lượng dữ liệu khiêm tốn, logic của 1 đoạn code nhỏ, và theo dõi trạng thái ngắn hạn.

Đối với những bug phải xảy ra với 1 khoảng thời gian kéo dài, dữ liệu lớn hơn, cần có những điều kiện tổ hợp trước đó hoặc không biết trước thì cách debug này lại không phù hợp.

Tuy nhiên, nếu có thể tìm được phương pháp chia tách đủ nhỏ 1 bài toán lớn để quy về các yếu tố debug theo điều kiện tức thời được thì cũng có thể phân chia và sử dụng cách này.

2. Debug với các tín hiệu

Trường hợp để tìm ra các lỗi như đồ họa hoặc âm thanh, hoặc kiểm tra các lỗi trên layout, phương pháp debug cơ bản là có thể tạo ra được 1 tín hiệu mà từ đó có thể nhận xét được các kết quả không như mong đợi và tìm cách thay đổi nó.

Có thể xem xét các trường hợp như flip ảnh dọc, thay vì phải kiểm trả từng điểm ảnh white-box với việc dò từng dòng mã trong code, nên kết hợp với black-box để quan sát kết quả cuối cùng, từ đó nhanh chóng đánh giá được các lỗi có thể có.

Với CSS cũng có thể sử dụng thuộc tính background-color để kiểm tra độ rộng của element trực quan khi nó có thể thay đổi vị trí liên tục làm cho inspector của trình duyệt web không thể theo dõi.

3. Debug với log

Với các lỗi có thể phát sinh do 1 điều kiện kéo dài, 2 phương pháp trên có thể không giúp ích được, có những lỗi có thể phát sinh sau 1 khoảng thời gian dài sử dụng hoặc rơi vào trường hợp cụ thể nào đó, trường hợp này người ta thường ghi lại các log tại các điểm cần thiết để theo dõi.

Để có thể trực quan hơn, thông thường có thể lưu lại các input, thời điểm, các output cần thiết để dễ dàng theo dõi.

Có thể lưu trữ log trên bộ nhớ đệm và xuất ra màn hình liên tục giả sử ứng dụng này không nhất thiết phải chạy quá lâu. Trong các trường hợp phải chạy lâu hoặc chạy trên các hệ thống, thông thường các log này sẽ được ghi vào file và khi có sự cố có thể xem xét các lỗi này khi cần.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024