Kiểm thử đơn vị là một hoạt động rất quan trọng trong phát triển phần mềm và được thực hiện bởi các Framework. Nổi bật trong số đó là JUnit – một Framework kiểm thử đơn vị cho ngôn ngữ lập trình Java. Trong bài viết hôm nay, Tino Group sẽ cùng bạn tìm hiểu cụ thể JUnit là gì cũng như các tính năng nổi bật của Framework này.
Đôi nét về kiểm thử phần mềm
Kiểm thử phần mềm
Kiểm thử phần mềm là hoạt động tìm kiếm và phát hiện ra các lỗi của phần mềm nhằm đảm bảo tính chính xác và đầy đủ của phần mềm chính xác theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra.
Quá trình kiểm thử là thao tác bắt buộc phải khi phát triển phần mềm. Kiểm thử có được chia làm 4 mức độ khác nhau theo thứ tự gồm: SDLC, STLC, V Model và Unit Test. Trong đó, Unit Test (kiểm thử đơn vị) nằm ở mức độ thấp nhất và được thực hiện trước khi kiểm tra tích hợp.
Tại sao nên sử dụng các công cụ kiểm thử tự động?
Dưới đây là bảng so sánh giữa kiểm thử thủ công và kiểm thử tự động: Kiểm thử thủ công Kiểm thử tự động Tốn nhiều thời gian. Vì được thực hiện bởi con người nên rất chậm và nhàm chán. Sử dụng phần mềm nên tiết kiệm được rất nhiều thời gian. Cần có sự đầu tư lớn vào nguồn nhân lực Ít đầu tư vào nguồn nhân lực hơn vì mọi thứ được thực hiện bằng các phần mềm tự động hóa. Kiểm thử thủ công ít đáng tin cậy vì dễ xảy ra lỗi do con người Được thực hiện bởi phần mềm nên kiểm thử tự động chính xác và đáng tin cậy hơn. Khó lập trình các bài kiểm tra tinh vi để lấy thông tin ẩn. Thông qua phần mềm, Tester có thể lập trình các bài kiểm tra phức tạp để đưa ra thông tin ẩn.
JUnit là gì?
JUnit là một Framework kiểm thử đơn vị mã nguồn mở được sử dụng cho ngôn ngữ lập trình Java. Các nhà phát triển Java sử dụng Framework này để viết và thực thi các bài kiểm thử tự động. Trong Java, sẽ có những trường hợp kiểm thử phải được thực thi lại mỗi khi code mới được thêm vào. JUnit được sử dụng để đảm bảo code không có bất kỳ lỗi nào.
Framework này có một số đồ thị đại diện cho tiến trình của một bài kiểm thử. Biểu đồ hiển thị màu xanh lá cây khi thử nghiệm diễn ra trơn tru và chuyển sang màu đỏ nếu không thành công. Tóm lại, JUnit giúp các nhà phát triển xây dựng code có độ tin cậy cao và tăng hiệu suất làm việc lên mức cao nhất.
Đến nay, JUnit đã phát triển được 5 phiên bản. Trong đó, JUnit 4 và JUnit 5 là 2 phiên bản thông dụng nhất. Ở phiên bản JUnit 5 mới nhất, framework này đã được bổ sung nhiều tính năng hữu ích giúp khắc phục nhược điểm của phiên bản cũ và linh hoạt hơn rất nhiều.
Các chức năng cơ bản của JUnit
- Với mã nguồn mở, JUnit cho phép các nhà phát triển viết code nhanh và chất lượng hơn.
- Cung cấp chú thích (Annotation) để xác định các phương pháp kiểm thử (Test method).
- Cung cấp xác nhận (Assertions) để cho kết quả mong đợi.
- Cung cấp chương trình chạy thử (Test runner) để lập trình viên tiến hành chạy thử dễ dàng.
- Cho phép chạy tự động (Automation test) và phản hồi kết quả trong thời gian ngắn. Điều này giúp lập trình viên tiết kiệm thời gian kiểm thử so với phương pháp thủ công.
- Lập trình viên có thể tổ chức hoặc phân loại các bài kiểm thử thành các bộ kiểm thử (Test suites) chứa các trường hợp kiểm thử (Test cases).
- Biểu đồ hiển thị màu xanh lá cây khi bài test diễn ra trơn tru và chuyển sang màu đỏ nếu không thành công.
Lợi ích khi sử dụng JUnit
Các lý do nên sử dụng JUnit là:
- Sớm tìm ra lỗi trong giai đoạn phát triển, giúp tăng độ tin cậy của code.
- Cho phép nhà phát triển đầu tư nhiều thời gian hơn vào việc đọc code hơn là viết code.
- Làm cho code dễ đọc hơn, đáng tin cậy hơn và không có lỗi.
- Giúp nâng cao sự tự tin của nhà phát triển và tạo động lực cho họ làm việc.
Hướng dẫn cách cài đặt JUnit
Yêu cầu hệ thống
- JDK: 1.5 trở lên
- Bộ nhớ RAM: Không có yêu cầu tối thiểu
- Dung lượng đĩa: Không có yêu cầu tối thiểu
Yêu cầu đầu ra Java của hệ điều hành
Hệ điều hành | Đầu ra |
---|---|
Windows: Java(TM) SE Runtime Environment (build 1.8.0_101) | java version “1.8.0_101” |
Linux: Java(TM) SE Runtime Environment (build 1.8.0_101) | java version “1.8.0_101” |
Mac: Java(TM) SE Runtime Environment (build 1.8.0_101) | java version “1.8.0_101” |
Cài đặt JUnit
Bước 1: Xác minh cài đặt Java trong máy Hệ điều hành Tác vụ Lệnh Windows Open Command Console c:> java -version Linux Open Command Terminal $ java -version Mac Open Terminal machine:~ joseph$ java -version
Bước 2: Cài đặt môi trường Java. Đặt biến môi trường JAVA_HOME trỏ đến vị trí thư mục cơ sở nơi Java được cài đặt trên máy. Hệ điều hành Output Windows Đặt biến môi trường JAVA_HOME tới C:\Program Files\Java\jdk1.8.0_101 Linux Xuất JAVA_HOME = /usr/local/java-current Mac Xuất JAVA_HOME = /Library/Java/Home
Nối vị trí trình biên dịch Java vào đường dẫn hệ thống: Hệ điều hành Output Windows Nối chuỗi***C:\Program Files\Java\jdk1.8.0_101\bin*** Linux Xuất PATH = $PATH:$JAVA_HOME/bin/ Mac Không yêu cầu
Bước 3: Tải xuống JUnit từ trang web http://www.junit.org.
Bước 4: Đặt biến môi trường JUNIT_HOME trỏ đến vị trí thư mục cơ sở nơi JUnit jar được lưu trữ trên máy của bạn. Hệ điều hành Mô tả Windows Đặt biến môi trường JUNIT_HOME thành C: \ JUNIT Linux Xuất JUNIT_HOME = / usr / local / JUNIT Mac Xuất JUNIT_HOME = /Library/JUNIT
Bước 5: Đặt biến môi trường CLASSPATH trỏ đến vị trí JUnit jar. Hệ điều hành Mô tả Windows Đặt biến môi trường CLASSPATH thành% CLASSPATH%;% JUNIT_HOME% \ junit4.12.jar; (Với file Junit jar là phiên bản junit4.12) Linux Xuất CLASSPATH = $CLASSPATH:$JUNIT_HOME/junit4.12.jar: Mac Xuất CLASSPATH = $CLASSPATH:$JUNIT_HOME/junit4.12.jar
Một số khái niệm liên quan đến JUnit
- Fixtures: Trạng thái cố định của tập hợp các đối tượng. Đây là cơ sở để chạy thử nghiệm. Hai phương thức được sử dụng phổ biến khi test fixtures bao gồm: setUp()method (cho chạy trước khi bắt đầu thử nghiệm) và tearDown()method (lập trình viên sẽ cho chạy sau khi tiến hành thử nghiệm xong).
- Test suite (bộ kiểm thử): Hệ thống bao gồm các test case được chạy cùng một lúc.
- Test runner (trình chạy kiểm thử): Giao diện dùng để chạy các test cases.
- JUnit class: Thành phần quan trọng được sử dụng để viết và chạy kiểm thử.
- Mock: Đối tượng giả định dùng để mô phỏng tính chất và hành vi tương tự như đối tượng thật.
Như vậy, bài viết đã cung cấp cho bạn tất cả các khái niệm cơ bản cần thiết để bắt đầu với JUnit. Đồng thời, bạn cũng đã hiểu tại sao JUnit lại quan trọng trong kiểm thử. Để tìm hiểu thêm về JUnit, bạn có thể xem hướng dẫn sử dụng JUnit tại đây. Chúc bạn thành công!
Những câu hỏi thường gặp
Tại sao nhiều lập trình viên yêu thích JUnit?
Với nhiều tính năng hữu ích kể trên, không quá khó hiểu khi JUnit là một trong những công cụ kiểm thử được sử dụng vô cùng phổ biến. Những giải thưởng sau đã minh chứng cho điều đó:
- Giải thưởng do các biên tập viên JavaWorld bình chọn năm 2001: Công cụ kiểm tra / giám sát hiệu suất Java tốt nhất
- Giải thưởng do các biên tập viên JavaWorld bình chọn năm 2002: Công cụ kiểm tra / giám sát hiệu suất Java tốt nhất
Tại sao nên test Fixtures trên JUnit?
Việc test Fixtures sẽ giúp lập trình viên đảm bảo môi trường được ổn định và thực hiện các bài chạy thử nghiệm liên tục. Sẽ có một chuỗi code được lập trình để đảm bảo quá trình kiểm thử diễn ra thuận lợi.
Mock được dùng để làm gì?
Mock được dùng để đưa vào code đang vận hành nhằm kiểm tra tính đúng đắn của hàm bên trong.
Có mấy cách để chạy JUnit?
Có 3 cách để chạy JUnits:
- Chạy bằng dòng lệnh trực tiếp (command line)
- Chạy từ IDE (Eclipse hoặc IntelliJ)
- Sử dụng chương trình Maven hoặc Gradle