Hiện nay có nhiều công cụ kiểm thử như kiểm thử hàm hay còn gọi là kiểm thử hộp đen, tuy nhiên công cụ này có hạn chế như không biết có thừa hay thiếu các ca kiểm thử hay không so với chương trình cài đặt và thiếu thừa ở mức độ nào.

Trong bài viết này tôi xin giới thiệu công cụ kiểm thử Độ đo, là một công cụ giúp ta đo mức độ bao phủ chương trình của một tập ca kiểm thử cho trước.

Mức độ bao phủ một bộ kiểm thử (tập các ca kiểm thử) được đo bằng tỷ lệ các thành phần thực sự được kiểm thử so với tổng thể sau khi đã thực hiện các ca kiểm thử. Thành phần liên quan có thể là câu lệnh, điểm quyết định, điều kiện con, đường thi hành hay là sự kết hợp của chúng. Độ bao phủ càng lớn thì độ tin cậy của bộ kiểm thử càng cao. Độ đo này giúp chúng ta kiểm soát và quản lý quá trình kiểm thử tốt hơn. Mục tiêu của chúng ta là kiểm thử với số ca kiểm thử tối thiểu nhưng đạt được độ bao phủ tối đa. Có rất nhiều độ đo kiểm thử đang được sử dụng hiện nay, dưới đây là ba độ đo kiểm thử đang được sử dụng phổ biến nhất trong thực tế.

Độ đo kiểm thử cấp 1 (C1): mỗi câu lệnh được thực hiện ít nhất một lần sau khi chạy các ca kiểm thử (test cases).

Độ đo kiểm thử cấp 2 (C2): các điểm quyết định trong đồ thị dạng điều khiển của đơn vị kiểm thử đều được thực hiện ít nhất một lần cả hai nhánh đúng và sai.

Độ đo kiểm thử cấp 3 (C3): Với các điều kiện phức tạp (chứa nhiều điều kiện con cơ bản), việc chỉ quan tâm đến giá trị đúng sai là không đủ để kiểm tra tính đúng đắn của chương trình ứng với điều kiện phức tạp này. Ví dụ, nếu một điều kiện phức tạp gồm hai điều kiện con cơ bản, chúng ta có bốn trường hợp cần kiểm thử chứ không phải hai trường hợp đúng sai như độ đo C2. Với các đơn vị chương trình có yêu cầu cao về tính đúng đắn, việc tuân thủ độ đo C3 là hết sức cần thiết. Điều kiện để đảm bảo độ đo này là các điều kiện con thuộc các điều kiện phức tạp tương ứng với các điểm quyết định trong đồ thị dạng điều khiển của đơn vị cần kiểm thử đều được thực hiện ít nhất một lần cả hai nhánh đúng và sai.

Ví dụ, chúng ta có hàm foo và đồ thị dòng điều khiển của nó trong hình 1. Bảng 1 là các ca kiểm thử cho độ đo C1. Bảng 2 là các ca kiểm thử cho các độ đo C2. Bảng 3 là các ca kiểm thử cho độ đo C3.

 

 

Hình 1. Hàm foo và đồ thị dòng điều khiển của nó

 

Bảng 1. Các ca kiểm thử cho độ đo C1 của hàm foo

 

ID

Input

EO (expected output)

RO (real output)

Tc1

0, 1, 2, 3

0

 

Tc2

1, 1, 2, 3

1

 

 

 

Bảng 2. Các ca kiểm thử cho độ đo C2 của hàm foo

ID

Input

EO (expected output)

RO (real output)

Tc1

0, 1, 2, 3

0

 

Tc2

1, 1, 2, 3

1

 

Tc3

1, 2, 1, 2

Lỗi chia cho 0

 

 

Bảng 3. Các ca kiểm thử cho độ đo C3 của hàm foo

ID

Input

EO (expected output)

RO (real output)

Tc1

0, 1, 2, 3

0

 

Tc2

1, 1, 2, 3

1

 

Tc3

1, 2, 1, 2

Lỗi chia cho 0

 

Tc 4

1, 2, 1, 1

1

 

 

Nếu chúng ta kiểm thử dựa trên độ đo thì sẽ xác định được các ca kiểm thử đưa ra là đã bao phủ toàn bộ chương trình chưa. Những nhánh nào của chương trình chưa được thực hiện kiểm thử. Vì vậy, kiểm thử dựa trên độ đo rất quan trọng.

 

Tài liệu tham khảo

[1] TS.Phạm Ngọc Hùng - Giáo trình kiểm thử phần mềm-Trường Đại học Công nghệ-Đại học Quốc gia Hà Nội.

[2] Nguyễn Vương Quyền – Đồ án kiểm thử phần mềm – Trường Đại học Bách khoa Hà Nội.