Statement Coverage Testing là một trong những kỹ thuật được sử dụng rộng rãi. Nó đi kèm với thử nghiệm hộp trắng.
Các bài viết liên quan:
Statement coverage là gì?
Statement coverage là kỹ thuật đo các lệnh (statement) trong ngôn ngữ lập trình có thể thực thi trong source code có được thực thi hay không(ít nhất 1 lần). Đây là một cách thức để đảm bảo bất cứ dòng nào của mã nguồn được testing.
Statement Coverage Testing được sử dụng để thiết kế các trường hợp kiểm thử hộp trắng. Kỹ thuật này liên quan đến việc thực thi tất cả các câu lệnh của mã nguồn ít nhất một lần. Nó được sử dụng để tính tổng số câu lệnh được thực thi trong mã nguồn trên tổng số câu lệnh có trong mã nguồn.
Mức độ bao phủ của câu lệnh tạo ra kịch bản về các trường hợp kiểm thử trong quy trình kiểm thử hộp trắng dựa trên cấu trúc của mã.
Trong thử nghiệm hộp trắng, người thử nghiệm tập trung vào hoạt động của mã nguồn nội bộ và lưu đồ hoặc biểu đồ luồng của mã.
Nói chung, trong mã nguồn nội bộ, có rất nhiều phần tử như toán tử, phương thức, mảng, vòng lặp, câu lệnh điều khiển, trình xử lý ngoại lệ, v.v. Dựa trên đầu vào được cung cấp cho chương trình, một số câu lệnh mã được thực thi và một số câu lệnh có thể không được thực thi. Mục tiêu của kỹ thuật bao hàm câu lệnh là bao hàm tất cả các câu lệnh đang thực thi có thể có và các đường dẫn trong mã.
Hãy hiểu quy trình tính toán phạm vi của câu lệnh bằng một ví dụ:
Ở đây, chúng tôi đang lấy mã nguồn để tạo hai kịch bản khác nhau theo các giá trị đầu vào để kiểm tra tỷ lệ bao phủ câu lệnh cho mỗi kịch bản.
Cấu trúc mã nguồn:
- Lấy đầu vào của hai giá trị như a = 0 và b = 1.
- Tìm tổng của hai giá trị này.
- Nếu tổng lớn hơn 0, thì in ra “Đây là kết quả dương.”
- Nếu tổng nhỏ hơn 0, thì in “Đây là kết quả âm”.
input (int a, int b) { Function to print sum of these integer values (sum = a+b) If (sum>0) { Print (This is positive result) } else { Print (This is negative result) } }
Vì vậy, đây là cấu trúc cơ bản của chương trình, và đó là nhiệm vụ mà nó sẽ thực hiện.
Bây giờ, chúng ta hãy xem hai kịch bản khác nhau và tính toán phần trăm Bảo hiểm Báo cáo cho mã nguồn nhất định.
Trường hợp 1
Nếu a = 5, b = 4
print (int a, int b) { int sum = a+b; if (sum>0) print ("This is a positive result") else print ("This is negative result") }
Trong kịch bản 1, chúng ta có thể thấy giá trị của tổng sẽ là 9 lớn hơn 0 và theo điều kiện kết quả sẽ là “Đây là một kết quả dương.” Các câu lệnh được tô màu vàng là các câu lệnh được thực thi của kịch bản này.
Để tính toán mức độ phù hợp của câu lệnh của tình huống đầu tiên, hãy lấy tổng số câu lệnh là 7 và số câu lệnh được sử dụng là 5.
- Tổng số câu lệnh = 7
- Số câu lệnh được thực thi = 5
Statement coverage = 5/7*100
= 500/7
= 71%
Tương tự như vậy, trong kịch bản 2,
Trường hợp 2:
Nếu A = -2, B = -7
print (int a, int b) { int sum = a+b; if (sum>0) print ("This is a positive result") else print ("This is negative result") }
Trong kịch bản 2, chúng ta có thể thấy giá trị của tổng sẽ là -9 nhỏ hơn 0 và theo điều kiện, kết quả sẽ là “Đây là kết quả âm”. Các câu lệnh được tô màu vàng là các câu lệnh được thực thi của kịch bản này.
Để tính toán mức độ phù hợp của câu lệnh trong tình huống đầu tiên, hãy lấy tổng số câu lệnh là 7 và số câu lệnh được sử dụng là 6.
- Tổng số câu lệnh = 7
- Số câu lệnh đã thực thi = 6
Statement coverage = 6/7*100
= 600/7
= 85%
Tuy nhiên, chúng ta có thể thấy tất cả các tuyên bố đều được bao hàm trong cả hai kịch bản và chúng ta có thể coi rằng phạm vi báo cáo tổng thể là 100%.
Vì vậy, kỹ thuật bao hàm câu lệnh bao gồm mã chết, mã không sử dụng và các nhánh.