Debug code Python: các kỹ thuật cơ bản

Debug — tìm và sửa lỗi — chiếm phần lớn thời gian của lập trình viên. Biết các kỹ thuật debug hiệu quả sẽ giúp bạn tiết kiệm hàng giờ bực bội.

Đọc thông báo lỗi (traceback)

Khi Python báo lỗi, hãy đọc từ dưới lên: dòng cuối cho biết loại lỗi, các dòng trên chỉ ra vị trí. Đừng bỏ qua traceback — nó thường nói chính xác vấn đề ở đâu.

print() — công cụ debug đơn giản nhất

def tinh(a, b):
    print(f"DEBUG: a={a}, b={b}")   # kiểm tra giá trị
    return a / b

Dùng module logging thay print

import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("Giá trị x = %s", x)
logging.error("Có lỗi xảy ra")

Logging tốt hơn print vì bạn bật/tắt được theo cấp độ, và không phải xóa thủ công khi xong.

Debugger tích hợp: pdb

import pdb; pdb.set_trace()   # dừng tại đây để kiểm tra
# hoặc Python 3.7+:
breakpoint()

Tại điểm dừng, bạn xem giá trị biến, chạy từng dòng — mạnh hơn print rất nhiều.

Chiến lược debug hiệu quả

  1. Tái hiện lỗi một cách ổn định.
  2. Thu hẹp phạm vi: xác định đoạn code gây lỗi.
  3. Kiểm tra giả định: giá trị có đúng như bạn nghĩ không?
  4. Sửa một thứ mỗi lần và kiểm tra lại.

Debug là kỹ năng rèn luyện được. Càng thực hành, bạn càng nhanh tìm ra gốc rễ vấn đề.

Lên đầu trang