Bugs là những lỗi lầm của program mà ta phát hiện khi chạy nó. Debug là công việc loại tất cả những lỗi lầm trong chương trình để nó chạy êm xuôi trong mọi hoàn cảnh.Thông thường muốn fix một cái bug nào trước hết ta phải tìm hiểu lý do khiến nó xuất hiện. Một khi đã biết được duyên cớ rồi ta sẽ nghĩ ra cách giải quyết. Nói chung, có hai loại bugs:
1. Hoặc là program không làm đúng chuyện cần phải làm vì programmer hiểu lầm Specifications hay được cho tin tức sai lạc, hoặc là program bỏ sót chi tiết cần phải có. Trường hợp nầy ta giải quyết bằng cách giảm thiểu sự hiểu lầm qua sự nâng cấp khả năng truyền thông.
2. Program không thực hiện đúng như ý programmer muốn. Tức là programmer muốn một đàng mà bảo chương trình làm một ngã vì vô tình không viết lập trình đúng cách. Trường hợp nầy ta giải quyết bằng cách dùng những Software Tools (kể cả ngôn ngữ lập trình) thích hợp, và có những quá trình làm việc có hệ thống.
Trong hãng xe hơi người ta dùng từ Quality Control để nói đến việc chế ra chiếc xe không có lỗi lầm gì cả. Để đạt mục tiêu ấy, chẳng những cần có người kiểm phẩm mà chính các nhân viên lấp ráp thận trọng để công việc chính của người kiểm phẩm là xác nhận kết quả tốt chớ không phải tìm lỗi lầm.Có nhiều yếu tố ảnh hưởng đến chất lượng của một program như chức năng của program, cấu trúc của các bộ phận, kỹ thuật lập trình và phương pháp debug. Debug không hẳn nằm ở giai đoạn cuối của dự án mà tùy thuộc rất nhiều vào các yếu tố kể trước trong mọi giai đoạn triển khai.