Test case Dữ liệu đầu vào (Tỷ lệ thực) EO
TC1 1% Không đủ điều kiện đưa
vào chỉ số TC2 15% 15% TC3 20% 20% TC4 30% 30% TC5 40% 40% TC6 50% 50% TC7 75% 75% TC8 100% 100%
TC9 190% Không thỏa mãn điều
kiện nào
4.2.3. Áp dụng kỹ thuật dòng điều khiển
Á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