1. Giới thiệu
Tiếp tục với series về kiểm thử hộp trắng.
Trong bài viết trước chúng ta sẽ đề cập đến khái niệm độ phủ trong kiểm thử hộp trắng.
Hôm nay, chúng ta sẽ tìm hiểu về cấp độ thấp nhất (C1 – Độ phủ câu lệnh – Code coverage)
Độ phủ C1 (hay còn gọi là độ phủ dòng) là một trong những khái niệm quan trọng trong kiểm thử hộp trắng, đặc biệt khi đánh giá mức độ hoàn thành của kiểm thử trong phần mềm. Độ phủ C1 đề cập đến tỷ lệ phần trăm của các dòng mã trong một chương trình đã được thực thi trong quá trình kiểm thử.
2. Đặc điểm của độ phủ C1
Độ phủ C1 được tính bằng cách so sánh số lượng dòng mã đã được thực thi với tổng số dòng mã trong chương trình. Công thức tính độ phủ C1 là:
Độ phủ C1 = (Số dòng đã được thực thi/ Tổng số dòng mã nguồn) × 100
Độ phủ C1 cho thấy mức độ mà các kịch bản kiểm thử đã kiểm tra mã nguồn. Nếu độ phủ đạt mức cao, điều này có thể cho thấy rằng phần lớn mã đã được kiểm tra, nhưng không nhất thiết đảm bảo rằng mã là không có lỗi.
Ví dụ
Ta có đoạn chương trình như sau (Tìm số lơn hơn)
Từ sơ đồ trên ta thấy để bao phủ được 100% các câu lệnh ta cần ít nhất 2 test case:
TC1: (5, 3) -> Thực thi việc kiểm tra điều kiện a > b và trả về kết quả là a.
TC2: (3, 8) -> Thực thi việc kiểm tra điều kiện a > b và trả về kết quả là b.
Giả sử chúng ta chỉ có mỗi testcase TC1, khi đó chỉ có 2 câu lệnh trong chương trình được thực thi.
Độ phủ C1 =2/3 = 66.67%
Khi có thêm testcase TC2, thì cả 3 câu lệnh trong chương tình đều đã được thực thi nên độ phủ C1 sẽ là:
C1 =3/3 =100%.
3. Lợi ích của độ phủ C1
- Xác định hiệu quả kiểm thử: Độ phủ C1 cung cấp cái nhìn rõ ràng về hiệu quả của các kịch bản kiểm thử. Nó giúp các kỹ sư phần mềm nhận diện các phần của mã chưa được kiểm tra, từ đó điều chỉnh kế hoạch kiểm thử.
- Giảm thiểu rủi ro: Bằng cách đảm bảo rằng nhiều phần mã đã được kiểm tra, độ phủ C1 có thể giúp giảm thiểu rủi ro phát sinh lỗi trong sản phẩm cuối cùng.
- Tối ưu hóa quá trình phát triển: Việc nắm rõ độ phủ giúp các nhóm phát triển và kiểm thử cải thiện quy trình làm việc, đảm bảo rằng thời gian và công sức được tập trung vào những khu vực cần thiết nhất.
4. Hạn chế của độ phủ C1
- Không đảm bảo chất lượng: Một độ phủ cao không đồng nghĩa với việc phần mềm không có lỗi. Có thể xảy ra tình huống mã được thực thi nhưng vẫn chứa lỗi logic hoặc lỗi ngữ nghĩa.
- Thiếu khả năng kiểm tra điều kiện: Độ phủ C1 không xem xét các điều kiện và nhánh trong mã. Một mã có thể có độ phủ dòng cao nhưng vẫn thiếu sót trong việc kiểm tra các tình huống đặc biệt.
5. Cách cải thiện độ phủ C1
Để cải thiện độ phủ C1, các kỹ sư kiểm thử có thể thực hiện các bước sau:
- Phát triển thêm kịch bản kiểm thử: Tạo ra các kịch bản kiểm thử mới nhằm đảm bảo rằng tất cả các dòng mã được thực thi.
- Sử dụng công cụ hỗ trợ: Áp dụng các công cụ phân tích độ phủ mã để theo dõi và đánh giá độ phủ C1 trong suốt quá trình phát triển.
- Phân tích mã nguồn: Thực hiện phân tích mã để xác định những phần của mã có thể chưa được kiểm tra hoặc có logic phức tạp.
6. Kết luận
Độ phủ C1 là một chỉ số quan trọng trong kiểm thử hộp trắng, cung cấp thông tin cần thiết về mức độ kiểm tra của mã.
Mặc dù nó có một số hạn chế, nhưng nếu được sử dụng đúng cách, độ phủ C1 có thể góp phần vào việc nâng cao chất lượng phần mềm và giảm thiểu rủi ro. Để đạt được hiệu quả cao nhất, cần kết hợp độ phủ C1 với các phương pháp kiểm thử khác, như độ phủ điều kiện (C2) và kiểm thử chức năng.