Bắt đầu với kiểm tra, gỡ lỗi và xử lý ngoại lệ
- 7 phút
Mỗi nhà phát triển phần mềm cần phải hoàn thành một số mức độ kiểm tra và gỡ lỗi khi họ phát triển mã của họ, và xử lý ngoại lệ thường được yêu cầu. Nhưng ba nhiệm vụ này có liên quan như thế nào và khi nào chúng nên được thực hiện?
Kiểm tra, gỡ lỗi và xử lý ngoại lệ
Gỡ lỗi mã có liên quan rõ ràng đến cả phát triển mã và thử nghiệm. Sau khi tất cả, bạn thực hiện sửa chữa logic mã của bạn khi bạn phát triển ứng dụng của bạn, và bạn cũng chạy mã của bạn định kỳ để xác minh rằng cú pháp mã và lô-gic của bạn là chính xác. Nhưng việc cập nhật lô-gic mã trong quá trình phát triển thực sự có ý nghĩa gì khi gỡ lỗi? Và đang xác minh rằng mã của bạn xây dựng và chạy thực sự ý nghĩa của việc kiểm tra là gì? Không, không thực sự.
Xử lý ngoại lệ liên quan đến phát triển và kiểm tra mã như thế nào? Trên thực tế, "xử lý ngoại lệ" có nghĩa là gì và một nhà phát triển dự kiến sẽ làm điều đó là gì? Trong phát triển C#, các lỗi xảy ra trong thời gian chạy ứng dụng (so với lỗi bản dựng xảy ra trong quá trình xây dựng) được gọi là ngoại lệ và "xử lý ngoại lệ" là quy trình mà nhà phát triển sử dụng để quản lý các ngoại lệ thời gian chạy đó trong mã của họ.
Bạn có thể tự hỏi làm thế nào xử lý ngoại lệ liên quan đến mã phát triển và thử nghiệm. Trên thực tế, "xử lý ngoại lệ" có nghĩa là gì và một nhà phát triển dự kiến sẽ làm điều đó là gì? Trong phát triển C#, các lỗi xảy ra trong khi ứng dụng đang chạy được gọi là ngoại lệ. Thuật ngữ "xử lý ngoại lệ" đề cập đến quy trình mà nhà phát triển sử dụng để quản lý các ngoại lệ thời gian chạy đó trong mã của họ. Lỗi xảy ra trong quá trình xây dựng được gọi là lỗi và không phải là một phần của quy trình xử lý ngoại lệ.
Các phần sau đây mô tả vai trò của nhà phát triển trong việc kiểm tra, gỡ lỗi và xử lý ngoại lệ.
Kiểm tra phần mềm và trách nhiệm của nhà phát triển
Quá trình phát triển phần mềm có thể liên quan đến rất nhiều thử nghiệm. Trong thực tế, kiểm tra phần mềm có ngành chuyên ngành riêng của mình, và phần mềm thử nghiệm đóng một vai trò quan trọng trong sự phát triển của các ứng dụng lớn. Thậm chí còn có các phương pháp tiếp cận cho quá trình phát triển phần mềm dựa trên thử nghiệm, chẳng hạn như phát triển dựa trên kiểm tra.
Các danh mục thử nghiệm phần mềm có thể được tổ chức theo các loại thử nghiệm, các phương pháp tiếp cận để thử nghiệm hoặc kết hợp cả hai. Một cách để phân loại các loại thử nghiệm là tách thử nghiệm thành kiểm tra Chức năng và Không chức năng. Mỗi danh mục chức năng và phi chức năng đều bao gồm các thể loại con của thử nghiệm. Ví dụ: kiểm tra chức năng và không chức năng có thể được chia thành các thể loại con sau đây:
- Kiểm tra chức năng - Kiểm tra đơn vị - Thử nghiệm tích hợp - Kiểm tra hệ thống - Kiểm tra chấp nhận
- Kiểm tra không chức năng - Kiểm tra bảo mật - Kiểm tra hiệu suất - Kiểm tra khả năng sử dụng - Kiểm tra tính tương thích
Mặc dù hầu hết các nhà phát triển có thể không coi mình là người thử nghiệm, một số mức độ thử nghiệm được mong đợi trước khi nhà phát triển bàn tay ra khỏi công việc của họ. Khi các nhà phát triển được gán một vai trò chính thức trong quá trình thử nghiệm, nó thường ở cấp độ kiểm tra đơn vị.
Ghi
Vì kiểm tra phần mềm là một chủ đề lớn như vậy, và vì nó thường được thực hiện bởi một vai trò công việc riêng biệt, các phương pháp tiếp cận chính thức để thử nghiệm phần mềm sẽ không được thảo luận trong mô-đun này.
Gỡ lỗi mã và trách nhiệm của nhà phát triển
Gỡ lỗi mã là một quy trình mà nhà phát triển sử dụng để cô lập sự cố và xác định một hoặc nhiều cách khắc phục sự cố đó. Sự cố này có thể liên quan đến lô-gic mã hoặc ngoại lệ. Dù bằng cách nào, bạn cũng sẽ tìm cách gỡ lỗi mã của mình khi mã không hoạt động theo cách bạn muốn. Nói chung, việc gỡ lỗi thuật ngữ được dành riêng cho các sự cố về thời gian chạy không dễ phân tách. Do đó, việc khắc phục các sự cố về cú pháp như thiếu ";" ở cuối câu lệnh mã, thường không được coi là gỡ lỗi.
Hãy xem xét mã mẫu sau đây:
string[] students = new string[] {"Sophia", "Nicolas", "Zahirah", "Jeong"};
int studentCount = students.Length;
Console.WriteLine("The final name is: " + students[studentCount]);
Mẫu mã được dự định để thực hiện các bước sau:
- Khai báo một mảng chuỗi có tên
students
. Mảngstudents
chứa tên của học sinh. - Khai báo một số nguyên có tên
studentCount
. Mã này sử dụng phươngLength
pháp của mảng để gán giá trị chostudentCount
. - In tên của học sinh cuối cùng vào bảng điều khiển. Mã này dùng
studentCount
để truy nhập vào tên cuối cùng trongstudents
mảng và sử dụng phươngConsole.WriteLine()
pháp để in thông tin vào bảng điều khiển.
Nhìn thoáng qua, mọi thứ có vẻ tốt đẹp. Tuy nhiên, mã này tạo ra một ngoại lệ khi cố gắng in tên sinh viên vào bảng điều khiển. Nhà phát triển đã quên rằng các mảng không dựa trên số 0. Tên cuối cùng trong mảng phải được truy nhập bằng cách sử dụng students[studentCount - 1]
.
Gỡ lỗi mã chắc chắn là một trách nhiệm nhà phát triển. Trong mẫu mã này, bạn có thể đã nhận ra sự cố ngay lập tức. Tuy nhiên, trong các kịch bản mã hóa phức tạp hơn, việc tìm sự cố không phải lúc nào cũng dễ dàng. Đừng lo lắng, có các công cụ và phương pháp tiếp cận mà bạn có thể sử dụng để theo dõi các sự cố khó tìm.
Xử lý ngoại lệ và trách nhiệm của nhà phát triển
Khi bạn đọc trước đó, lỗi xảy ra trong thời gian chạy ứng dụng được gọi là ngoại lệ. Nếu ứng dụng tạo ra một ngoại lệ và ngoại lệ đó không được quản lý trong mã, nó có thể dẫn đến việc ứng dụng đang được tắt.
Xử lý ngoại lệ chắc chắn là trách nhiệm của nhà phát triển. C# cung cấp cách để bạn "dùng thử" mã mà bạn biết có thể tạo ra một ngoại lệ và một cách để bạn "nắm bắt" bất kỳ ngoại lệ nào xảy ra.
Tóm tắt
Dưới đây là một số điều quan trọng cần ghi nhớ từ đơn vị này:
- Kiểm tra, gỡ lỗi và xử lý ngoại lệ là tất cả các tác vụ quan trọng dành cho nhà phát triển phần mềm.
- Thử nghiệm có thể được phân loại thành kiểm tra chức năng và phi chức năng, và các nhà phát triển dự kiến sẽ thực hiện một số mức độ thử nghiệm.
- Gỡ lỗi mã là quá trình cô lập các vấn đề và xác định cách khắc phục chúng, và đó là trách nhiệm của nhà phát triển.
- Xử lý ngoại lệ là quá trình quản lý lỗi xảy ra trong thời gian chạy và nhà phát triển chịu trách nhiệm xử lý các ngoại lệ bằng cách sử dụng câu lệnh "try" và "catch" trong mã của họ.