_ Hãy xác định tất cả các Def-clear path của các biến x Và y...---cccnccsrrrrrrrerrrrrrrrrre 7 4.5.. _ Tại sao tại đỉnh 3 biến x được định nghĩa và sử dụng nhưng không tồn tại mối quan h
Trang 1DAI HOC QUOC GIA HA NOI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOC CÔNG [T113 BAI TAP KIEM THU DONG DU LIEU
Môn học: Kiếm thử và bảo đảm chất lượng phần mềm
Mã lớp môn học: INT3117 2
Giảng viên: ThS Nguyễn Thu Trang
Sinh viên thực hiện: Hà Sơn Tùng - 21020398
Trang 2Contents
4.1 _ Hãy xác định tất cả các Def-clear path của các biến x Và y -cccnccsrrrrrrrerrrrrrrrrre 7
4.5 _ Tại sao tại đỉnh 3 biến x được định nghĩa và sử dụng nhưng không tồn tại mối quan hệ def- use? 9
Báo cáo phần tích, thiết kế ca kiểm thử, và kiểm thử chương trình của bạn với độ phủ all-uses 13
MG ta bai COAL ịii.ẻ$Ÿẻ ' i::i.Ầ , 13 8002/31 111 ÔỎ 13
3.2 Xác định All-uses coverage của các biến + Xác định các trường hợp kiểm thử 15
Trang 3I Lam bai tAp trong slide
1 Trình bày các bước trong quy trình kiếm thử dòng dữ liệu động Quy trình tông quát của kiểm thử dòng dữ liệu động:
e - Vẽ đồ thị luồng điều khiển (CFG)
e - Lựa chọn tiêu chí kiểm thử luồng dữ liệu
e - Xác định các đường đi trên CFG thoả mãn tiêu chí kiểm thử đã chọn
e _ Sinh các ca kiêm thử tương ứng
2 Cho đoạn mã nguồn sau, hãy:
e - Vẽ đồ thị dòng điều khiển (CFG)
e - Xác định các du-pairs cho biến X và Y
e - Sinh đường đi và các ca kiêm thử với độ đo all-use
| input(X,Y)
2 while (Y>0) {
3 if (X>0)
a Y :=Y-X
else
6 }
7 output(X, Y)
Figure 1: Đoạn mã bài 2
Trang 42.1 Vẽ do thị dòng điều khiến
2.2 Xác định các du-pairs cho biến X và Y
Biến X
« def(X):{0, 4}
(0, 2) <0, 1 (T), 2>
(0, 3) <0, 1 (T), 2 (T), 3>
(0, 5) <0, 1 (T), 2 (T), 3, 1 (F), 5> (4, 2) <4, 1(T), 2>
(4, 3) <4, 1 (T), 2 (1), 3>
(4, 5) <4, 1 (T), 2(T), 3, 1 (F), 5> Bién Y
e def(X): {0, 3}
Trang 5e c-use(X): {3, 5}
2.3 Sinh đường di và ca kiểm thứ với độ đo all-use
Dựa vào Du-pair và Def-clear path của phần 2.2, ta có:
Test case 1: input(2, 1) — phủ được 3 trường hợp đầu tiên của bảng X, phủ được bảng Y trong phân 2.2
Test case 2: input(1, -2) - phủ được 3 trường hợp sau của bảng X trong phân 2.2
Path: 0, 1,2, 4(X=2), 1(T),2(T, 3, 1(F),5
3 Cho hàm calFactorial viết bang ngôn ngữ C như đoạn mã 7.7
- Hãy liệt kê các câu lệnh ứng với các khái niệm def, c-use, và p-use ứng với các biến được sử dụng trong hàm này
- _ Hãy vẽ đồ thị dòng dữ liệu của hàm này
int calFactorial (int n){
int result = 1;
int i=1;
while (i <= n){
result = result *i;
i++;
}//end while return result;
}//the end
Figure 2: Đoạn mã 7.7: Mã nguồn C của hàm calFactorial
3.1 Hãy liệt kê các câu lệnh ứng với các khái niệm def, c-use, và p-use ứng với các biến được sử dung trong ham nay
Biến n
Trang 6Bién result
Bién i
e = c-use(i): {5, 6}
3.2 Hãy vẽ đồ thị dòng dữ liệu của hàm này
(0) int calfactorial(int n)
(1) int result = 1
(4) result = result *i
Trang 7
4 Cho đồ thị dòng dữ liệu như hình 7.11
Figure 3: Hình 7.11 Một ví dụ về đồ thị dòng dữ liệu và việc sử dụng các biến
e - Hãy xác định tất cả các Def-clear-path của các biến x và y
e - Hãy xác định tất cả các du-paths của các biến x và y
se _ Hãy xác định tất cả các All-p-uses/Some-c-uses và All-c-uses/Some-p-uses (dựa và các chuân của kiêm thử dòng dữ liệu)
e - Biểu thức của các p-use (x, y) tại cạnh (1,3) và (4,5) lần lượt là x + y = 4 và x2 + yŸ > 17 Đường đi (0 - 1 - 3- 4 - 5 - 6) có thực thi được không? Giải thích
e - Tại sao tại đinh 3 biến x được định nghĩa và sử dụng nhưng không tồn tại mối quan hé def-use?
4.1 Hãy xác định tất cả các Def-clear path của các biến x va y
0-1-2 0-1-2-4 0-1-2-4-5 0-1-2-4-5-6 0-1-2-4-6
3-4-5 3-4-5-6 3-4-6
0-1-3 0-1-3-4 0-1-3-4-6
2-4-6
Trang 84.2 Hãy xác định tất cả các du-paths của các biến x và y
STT Varia
ble
4.3 Hãy xác định tất cả các All-p-uses/Some-c-uses va All-c-uses/ Some-p-uses (dựa và các chuẩn
Du-pair (0, 1(right)) (0, 1(left))
(0, 2) (0, 3) (0, 4(right)) (0, 4(left)) (0, 5) (0, 6) (0, 6) (3, 4(right)) (3, 4(left))
(3, 5) (3, 6) (3, 6) (0, 1(right)) (0, 3) (0, 4(left))
(0, 6) (2, 4) (2, 6) (5, 6)
của kiểm thứ dòng dữ liệu)
All-p-uses/Some-c-uses
STT Varia
ble
Du-pair (0, P-use(x, y))
(0, (0, (0,
(3, P-use(x, y)) (3, P-use(x, y))
(0, 6) (3, 6)
P-use(x, y)) P-use(x, y)) P-use(x, y))
Def-clear path
0 — 1 (right)
0 — 1 (left) 0-1-2 0-1-3 0-1-2-4 0-1-2-4 0-1-2-4-5 0-1-2-4-6 0-1-2-4-5
| œ
-6
Complete path
| | | | | œ
| œ
| | | | | œ
| | | | | œ
©OOGOœCœCœCCGCOGCGCGœCœCœœCœCœCœCœCœœCœCœC ".mM.M
Def-clear path Complete path
y)
0 - 1- use(x, y) P-use(x, y)
use(x, y)
P-
0-1-P-use(x 0-1-2-4-6
0-1-3-4-6 0-1-2-4- 0-1-2-4-5-6
0-1-2-4-0-1-2-4-6
6
Trang 9PJ y (0, P-use(x,y)) 0- 1-P-use(&x 0-1-2-4-6
y)
use(x, y)
All-c-uses/ Some-p-uses
ble
5
cu (3, P-use(x, y)) 3 - 4 —- P- 0-1-3-4-6
use(x, y) (p- use thay the cho (3, 3))
6
4.4 Biểu thức của các p-use (x, y) tại cạnh (1,3) và (4,5) lần lượt là x + y = 4 và x2 + yŸ > 17 Đường đi (0— 1 — 3— 4— 5 — 6) có thực thì được không? Giải thích
e - Trong trường hợp này, đường đi 0 — 1— 3— 4— 5—6 vấn thực hiện được
« - Giải thích: với trường hợp x hoặc y nhỏ hơn 0 vẫn có thê thỏa mãn, ví dụ (x, y) = (5, -1) thi x? + y2=26>17
4.5 Tại sao tại đính 3 biến x được định nghĩa và sử dụng nhưng không tồn tại mối quan hệ def- use?
Theo định nghĩa về mối quan hệ def-use, ta cân thỏa mãn 2 điều kiện Điều kiện thứ nhát là nó phải là 1 cặp def-use, đỉnh 3 đã thỏa mãn điều kiện này Điều kiện thứ 2 là phải tồn tại 1 def- clear path giữa 2 điểm, trong trường hợp này, độ đài đường đi từ 3 đến 3 là 0, ta không thê coi
nó là I đường di
Trang 105 Cho doan mã nguồn như hình bên:
int UCLN(int m, int n){
if (m
if (n
if (m
if (n
while
< 0) m = -m;
<0) n = -n;
(m != n) { if(m > n) m=m - n;
else
n “=n ~ m; }//end while
return m;
}
Figure 4 Đoạn mỗ 6.4 Mã nguồn hàm UCLN
e - Xây dựng CFG cho hàm UCLN với đồ thị C2
e - Sinh đường di va cac ca kiểm thử với độ đo C2
e - Sinh đường đi và các ca kiểm thử với độ all-def coverage
Trang 115.1 Xây dựng CFG cho hàm UCLN với đồ thị C2
5.2 Sinh đường đi và các ca kiểm thử với độ đo C2
Các ca kiểm thử với độ đo C2 phải đi qua tất cả các nhánh của đỗ thị đòng điều khiển, bao gồm: 1T, 1F, 3T, 3F, 5T, 5F, 7T, 7F, 9T, 9F, 11T, 11F
Trang 12* C2 coverage: độ phủ C2 tính từ test case hiện tại và các test case trước đó
UCLN(O, 1) 0-1()-3()-5(T)-6 3/12 + UCLN({1, 0) 0-1(F)-3(F)-5(ŒF)-7(T)-8 5/12
(T) - 11 (T)- 12 - 9 (F) - 10
(T) - 11 (F) - 13- 9 (F) - 10
5.3 Sinh đường đi và các ca kiểm thứ với độ do all-def coverage
e Bién m:
o def(m) = {0, 2, 12}
o p-use(m) = {1, 5, 9, 11}
o cuse(m) = {2, 8, 10, 12, 13}
e Biénn:
o def(n) = {0, 4, 13}
o p-use(n) = {3, 7, 9, 11}
o c-use(n) = {4, 6, 12, 13}
lIC
-5() -7(Œ)-9(T)-
11 (T)- 12- 9 (F) - 10
6
()-6
13-9(F)- 10
Trang 13ll Báo cáo phân tích, thiết kế ca kiếm thử, và kiểm thử chương trình của bạn với độ phú all-uses
._ Mô tả bài toán
Bài toán tính giá tiền taxi: Trong các hệ thống tính tiền taxi, thường giá tiền sẽ chia thành các mức khác nhau dựa trên quãng đường taxi đi và số giờ taxi phái chờ đợi khách hàng Chương trình trong bài toán này là 1 hệ thống tính toán số tiền người dùng cân trả cho taxi
Cách tính giá tiền taxi:
« - Giá tiền từ km đầu tiên đến km só 30: 11,000 VND * só km đi + 9,000 VND (Cước lúc mở cửa) + 20,000 * số giờ chờ đợi (nêu có)
« - Giá tiền từ km số 31 trở đi: 11,000 * 30 + (số km đi - 30) * 9,500 VND + 9,000 VND (Cước lúc mở cửa) + 20,000 * số giờ chờ đợi (nếu có)
Chương trình
Chương trình được sử dụng được đặt tên là “calculateTripCost(x, y)” với x là số km đi được và y là số giờ chờ đợi, chương trình trả về -1 nếu điều kiện đầu vào không thỏa mãn
ha125/bai_tap_kiem_thu.git
2.1 Mã nguồn chương trình
calculateTripCost(x, \
Trang 14
2.2 Đồ thị dòng điều khiển
(0) calculateTripCost(x, y)
(5) cost = 0
(8) cost += 11000 * 30 + (x -
v
(9) cost += (20000 * y +
9000)
(10) return cost
Trang 15
3 Kiếm thứ mã nguồn
3.1 Xác định def, p-uses, c-uses của các biến
3.2 Xác định All-uses coverage của các biến + Xác định các trường hợp kiểm thứ
6(T), 7, 9, 10
6(T), 7, 9, 10
6(T), 7, 9, 10
6(F), 8, 9, 10
6(T), 7, 9, 10
6(F), 8, 9, 10
6(F), 8, 9, 10
Trang 163.3 Két qua kiém thir