Kinh nghiệm tìm lỗi phần mềm
Khi bạn viết một đoạn mã lệnh, việc gặp lỗi là vấn đề tất yếu. Tuy nhiên lỗi viết phần mềm thông thường là
1. Lỗi cú pháp
2. Lỗi hệ thống (treo máy, dừng chương trình đột ngột)
3. Thuật toán (chạy được nhưng kết quả trả về bị sai)
Nếu bạn thấy khó khăn trong vấn đề tìm nguyên nhân gây ra 2 loại lỗi bên dưới thì hãy thử các cách sau:
1. Hãy kiểm tra lại đoạn mã lệnh mới vừa viết xong
Thông thường lỗi thường xuất hiện tại những đoạn mã lệnh mà bạn vừa mới viết và chưa được kiểm tra kỹ.
2. Kiểm tra kỹ lại class đã sửa lỗi trước.
Việc để sảy ra lỗi và đã từng sửa lỗi thành công không đồng nghĩa là class đó đã hoàn toàn hết lỗi. Theo thống kê (sách code complete - steve) thì lỗi thường xuất hiện tập trung nhiều cho một hoặc một vài class (50% số lỗi xuất hiện trong 5% class).
3. Tách biệt các đoạn mã lệnh
Nếu bạn có một class với quá nhiều dòng lệnh, phương thức. Việc tìm kiếm lỗi là vấn đề rất khó khăn. Để dễ dàng tìm kiếm lỗi ta có thể ẩn đi các đoạn mã mà ta nghi ngờ là không có khả năng gây lỗi đi. Việc ẩn các đoạn mã lệnh được hỗ trợ bởi các công cụ phát triển (IDE) như: Visual Studio có từ khóa reginon...endregion, Netbean có thẻ <editor-fold...
4. Nói chuyện với người khác về vấn đề gặp phải
Tận dụng cái đầu của đồng nghiệp hoặc bạn bè là vấn đề mà lúc nào bạn cũng phải nghỉ tới. Khi gặp một lỗi quá khó hoặc vượt quá khả năng của bạn thì việc tìm sự hỗ trợ từ bên ngoài thông qua những câu hỏi là đơn giản nhất.
5. Chia nhỏ mã lệnh
Nếu class hoặc phương thức của bạn quá dài mà việc ẩn đi những mã lệnh không có lỗi chưa hiệu quả hãy chia nhỏ class và phương thức của bạn và tiến hành test trên các mã lệnh nhỏ đó.
Thông thường một class khoảng 200 dòng trở xuống, còn một phương thức khoảng 20. Chú ý là một số tài liệu khuyên nên viết 10 dòng cho một phương thức.
6. Kiểm tra lại testcase của mình
Với việc ban tìm lỗi dựa trên các testcase là hoàn toàn hợp lý. tuy nhiên một số tính toán của bạn khi xây dựng testcase có thể bị nhầm dẫn đến testcase khi chạy không cho kết quả như mong đợi. Khi gặp lỗi hãy kiểm tra lại testcase trước để chắc chắn rằng bạn đã có một testcase hợp lý.
7. Sử dụng một số công cụ hỗ trợ tìm kiếm lỗi.
Các công cụ hỗ trợ Debuging, unit test... có thể giúp bạn kiểm tra thử bạn đã bị lỗi trong trường hợp nào ở dòng lệnh nào. Các công cụ này giúp ích nhiều hơn cho những người mới học lập trình.
8. Thay đổi
- Đầu tiên là thay đổi dữ liệu để tìm kiếm lỗi. Đưa ra thêm các testcase giúp bạn hiểu hơn về vấn đề lỗi của mình và xác định chính xác hơn nguyên nhân gây nên lỗi đó.
- Thay đổi cách tìm kiếm lỗi. Bạn đang chạy chương trình và hiển thị kết quả để đối chiếu có thể thay đổi bằng cách chạy debug từng dòng hoặc xuất ra các thông báo kết quả sau từng dòng để kiểm tra. Việc thay đổi là cần thiết để đưa bạn ra khỏi lối mòn hiện tại.
9. Liệt kê ra những vấn đề mà bạn quan tâm
Hãy tự đặt ra cho mình những câu hỏi và lần lượt trả lời nó. Ví dụ bạn đang chạy mà chương trình bị treo. Bạn có thể đưa ra các câu hỏi nghi vấn như: Có phải là phép chia không? Có phải là truy cập vào phần tử vượt quá trị số mảng hay ép kiểu dữ liệu không đúng. Các câu hỏi đó sau khi trả lời sẽ có thể giải đáp cho vấn đề tìm lỗi của bạn
10. Nghỉ ngơi
Nếu bạn tìm một thời gian khá dài mà vẫn không tìm ra lỗi. Hãy đứng dậy và đi dạo hoặc làm một việc gì đó để làm mới lại suy nghỉ của mình.