Áp dụng kỹ thuật kiểm thử dòng điều khiển ta sẽ phân tích bài toán theo mã nguồn và theo tiêu chí phủ rẽ nhánh dựa vào độ đo kiểm thử cấp 2 tức là tất cả các điểm quyết định của đồ thị đều được thực hiện ít nhất 1 lần.
Mã nguồn 1:
public decimal get_FreeFloatRate(decimal rate)
{
Decimal _ FREE_FLOAT_RATE=0;
rate = Math.Round(rate, 2);
//Thuc hien lay can tren - Khong thuoc TH Khong du dk
dua vao chi so va TH Gia tri thuc
if ( rate < 5)
{
_ FREE_FLOAT_RATE=-1;//Gia tri khong xac dinh
}
else if (rate > 5 && rate <= 15) {
_ FREE_FLOAT_RATE = rate; }
else if (rate >15 && rate <= 20) {
_ FREE_FLOAT_RATE = 20; }
else if (rate > 20 && rate <= 30) {
_ FREE_FLOAT_RATE = 30; }
else if (rate > 30 && rate <= 40) {
_ FREE_FLOAT_RATE = 40; }
else if (rate > 40 && rate <=50) {
_ FREE_FLOAT_RATE = 50; }
else if (rate > 50 && rate <= 75) {
_ FREE_FLOAT_RATE = 75; }
else if (rate > 75 && rate <= 100) { _ FREE_FLOAT_RATE = 100; } return _ FREE_FLOAT_RATE; } Mã nguồn 2:
{
Decimal _ FREE_FLOAT_RATE=0;
rate = Math.Round(rate, 2);
//Thuc hien lay can tren - Khong thuoc TH Khong du dk
dua vao chi so va TH Gia tri thuc
if ( rate < 5)
{
_ FREE_FLOAT_RATE=-1;//Gia tri khong xac dinh
}
else if (rate > 5 && rate < 15) {
_ FREE_FLOAT_RATE = rate; }
else if (rate >15 && rate < 20) {
_ FREE_FLOAT_RATE = 20; }
else if (rate > 20 && rate < 30) {
_ FREE_FLOAT_RATE = 30; }
else if (rate > 30 && rate < 40) {
_ FREE_FLOAT_RATE = 40; }
else if (rate > 40 && rate <50) {
_ FREE_FLOAT_RATE = 50; }
else if (rate > 50 && rate < 75) {
_ FREE_FLOAT_RATE = 75; }
else if (rate > 75 && rate < 100) { _ FREE_FLOAT_RATE = 100; } return _ FREE_FLOAT_RATE; } Với mã nguồn 1:
Bảng 4.17 Quy ƣớc các điều kiện, hành động trong sơ đồ CFG của bài toán 2 – mã nguồn 1
STT Điều kiện/ Hành động Quy
ƣớc Hành động
Quy ƣớc
1. rate < 5 C1 _ FREE_FLOAT_RATE =-1; A1
2. rate >= 5 && rate <= 15 C2 _ FREE_FLOAT_RATE = rate; A 2 3. rate > 15 && rate <= 20 C3 _FREE_FLOAT_RATE = 20 ; A 3 4. rate > 20 && rate <= 30 C4 _ FREE_FLOAT_RATE= 30 ; A 4 5. rate > 30 && rate <= 40 C5 _ FREE_FLOAT_RATE= 40 ; A 5 6. rate > 40 && rate <= 50 C 6 _ FREE_FLOAT_RATE= 50 ; A 6 7. rate > 50 && rate <= 75 C 7 _ FREE_FLOAT_RATE= 75 ; A 7 8. rate > 75 && rate <=
100
C 8 _ FREE_FLOAT_RATE= 100 ; A 8
Hình 4.5 Sơ đồ dòng điều khiển cho bài toán 2 – mã nguồn 1
Dựa vào lược đồ ta sẽ xây dựng đường đi đảm bảo điều kiện đi qua tất cả các câu lệnh và các điều kiện T-F đều được thực hiện ít nhất 1 lần.
Đường đi 1: 1-2-3(T)-4-19 Đường đi 2: 1-2-3(F)-5(T)-6-19 Đường đi 3: 1-2-3(F)-5(F)-7(T)-8-19 Đường đi 4: 1-2-3(F)-5(F)-7(F)-9(T)-10-19 Đường đi 5: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-12(T)-19 Đường đi 6: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(T)-14(T)-19 Đường đi 7: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(F)-15(T)-16-19 Đường đi 8: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(F)-15(F)-17(T)-18-19 Đường đi 9: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(F)-15(F)-17(F)-19 Do đó ta có 9 đường đi từ sơ đồ CFG.
Bảng 4.18 Các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển – mã nguồn 1 Test case Đƣờng đi Dữ liệu đầu vào (Tỷ lệ thực) EO
TC1 Đường đi 1 4% Không đủ điều
kiện đưa vào chỉ số tức là Free float = -1 TC2 Đường đi 2 12% 15% TC3 Đường đi 3 20% 20% TC4 Đường đi 4 30% 30% TC5 Đường đi 5 40% 40% TC6 Đường đi 6 50% 50% TC7 Đường đi 7 75% 75% TC8 Đường đi 8 100% 100%
TC9 Đường đi 9 190% Không phải là
giá trị phần trăm tức là Free float = -2
Với mã nguồn 2:
Bảng 4.19 Quy ƣớc các điều kiện, hành động trong sơ đồ CFG của bài toán 2 – mã nguồn 2
STT Điều kiện/ Hành động Quy
ƣớc Hành động
Quy ƣớc
1. rate < 5 C1 _ FREE_FLOAT_RATE =-1; A1
2. rate > 5 && rate <15 C2 _ FREE_FLOAT_RATE = rate; A 2 3. rate > 15 && rate < 20 C3 _FREE_FLOAT_RATE = 20 ; A 3 4. rate > 20 && rate < 30 C4 _ FREE_FLOAT_RATE= 30 ; A 4 5. rate > 30 && rate <40 C5 _ FREE_FLOAT_RATE= 40 ; A 5 6. rate > 40 && rate <50 C 6 _ FREE_FLOAT_RATE= 50 ; A 6 7. rate > 50 && rate <75 C 7 _ FREE_FLOAT_RATE= 75 ; A 7 8. rate > 75 && rate <100 C 8 _ FREE_FLOAT_RATE= 100 ; A 8
Hình 4.6 Sơ đồ dòng điều khiển cho bài toán 2 – mã nguồn 2
Dựa vào lược đồ ta sẽ xây dựng đường đi đảm bảo điều kiện đi qua tất cả các câu lệnh và các điều kiện T-F đều được thực hiện ít nhất 1 lần.
Đường đi 1: 1-2-3(T)-4-19 Đường đi 2: 1-2-3(F)-5(T)-6-19 Đường đi 3: 1-2-3(F)-5(F)-7(T)-8-19 Đường đi 4: 1-2-3(F)-5(F)-7(F)-9(T)-10-19 Đường đi 5: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-12(T)-19 Đường đi 6: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(T)-14(T)-19 Đường đi 7: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(F)-15(T)-16-19 Đường đi 8: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(F)-15(F)-17(T)-18-19 Đường đi 9: 1-2-3(F)-5(F)-7(F)-9(F)-11(F)-13(F)-15(F)-17(F)-19 Do đó ta có 9 đường đi từ sơ đồ CFG.
Bảng 4.20 Các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển – mã nguồn 2 Test case Đƣờng đi Dữ liệu đầu vào (Tỷ lệ thực) EO
TC1 Đường đi 1 4% Không đủ điều
kiện đưa vào chỉ số tức là Free float = -1 TC2 Đường đi 2 12% 12% TC3 Đường đi 3 18% 20% TC4 Đường đi 4 25% 30% TC5 Đường đi 5 35% 40% TC6 Đường đi 6 46% 50% TC7 Đường đi 7 74% 75% TC8 Đường đi 8 99% 100%
TC9 Đường đi 9 190% Không phải là giá
trị phần trăm tức là Free float = -2