Unit Test

assert.h (trong C)

assert( /* Biểu thức cần kiểm tra */ ); //hàm không trả về gì. Nếu biểu thức cần kiểm tra sai, nó trả về thông báo

test kết quả hàm giaiThua(x)

assert(giaiThua(5) == 720);

Statement Coverage: đảm bảo việc thực hiện đi qua số lượng câu lệnh/dòng code tối đa (mỗi dòng code hay câu lệnh được thực thi ít nhất 1 lần), hạn chế các dòng code chết

Decision Coverage/Branch Coverage: biểu thị cho các nhánh mà chương trình có thể được thực thi. Đối với câu lệnh điều kiện if, có thể có 2 nhánh là điều kiện true hoặc false. Để DC = 100%, cần thực hiện 2 test case

Modified Condition/Decision Coverage: Độ bao phủ. Cần test các đối tượng độc lập, các test case để bao phủ các trường hợp trả về true hoặc false

  • Cần có 1 Test Case để đảm bảo kết quả là đúng khi mà A đúng.
  • Cần có 1 Test Case để đảm bảo kết quả là sai khi mà A sai.
  • Tổng hợp số test case đáp ứng các yêu cầu trên là số test case cần để bao phủ 100% MC/DC

Ví dụ:

if (kettle && cup && coffee)

{

return cup_of_coffee;

}

else

{

return none;

}

Test_1: kettle = 0, cup = 1, coffee = 1: false, cùng kết quả với kettle

Test_2: kettle = 1, cup = 1, coffee = 1: true, cùng kết quả với kettle

=> kettle độc lập về mặt kết quả

Test_3: kettle = 1, cup = 0, coffee = 1: false, cùng kết quả với cup

=> kết hợp với Test_2, cup độc lập với mặt kết quả

Test_4: kettle = 1, cup = 1, coffee = 0: false, cùng kết quả với coffee

=> kết hợp với Test_2, coffee độc lập về mặt kết quả

Vậy chỉ cần Test 1,2,3,4 là bao phủ 100% MC/DC. Các test khác không cần thiết

 

Nhanvat

Ủng hộ chúng tôi

Nếu bạn thấy nội dung hữu ích, hãy mời nhóm một ly cà phê để chúng tôi có thêm động lực làm tài liệu và mã nguồn miễn phí

Chuyển khoản (Việt Nam)
Mã QR chuyển khoản ủng hộ InvenCamp
Quét bằng app ngân hàng, hoặc chạm vào mã để chọn app HOANG BA DUY 2154755042
Thẻ quốc tế / PayPal Buy Me A Coffee Mở trang Buy Me a Coffee
Logo

AI InvenCamp

Trực tuyến 24/7

Xin chào! Tôi là trợ lý tự động của InvenCamp. Tôi có thể tra cứu giúp bạn sản phẩm, bài viết hướng dẫn và chính sách có trên website. Bạn cần tìm gì ạ?

Câu hỏi gợi ý: