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(F)-9-10
Đường đi 2: 1-2-3(T)-4-5(F)-6-8-3(F)-9-10 Đường đi 3: 1-2-3(T)-4-5(T)-7-8-3(F)-9-10
Đường đi 4: 1-2-3(T)-4-5(T)-7-8-3(T)-4-5(F)-6-8-3(F)-9-10 Do đó ta có 4 đường đi từ sơ đồ CF.
Ngoài ra, có vòng lặp while xuất hiện trong mã nguồn nên ta cần kiểm thử vòng lặp theo số vòng lặp sẽ đi qua. Ta sẽ có thêm 1 đường đi mà tại đó vòng lặp đi qua là tối đa (10 lần).
Ta sẽ có 4 ca kiểm thử sinh ra từ đường đi ứng với mã nguồn 1 như sau:
Test case 1 (TC1) ứng với đường đi 1: Mảng đầu vào là null. Khi đó kết quả trả ra là 0.
Test case 2 (TC2) ứng với đường đi 2: Mảng đầu vào gồm 1 phần tử, khi đó tỷ trọng luôn là 100%. Do đó, kết quả trả ra là 0.
Đường đi 3: Không thực thi được, do không có trường hợp nào mảng đầu vào là 1 phần tử mà giá trị tỷ trọng < 10%.
Test case 3 (TC3) ứng với đường đi 4: Mảng đầu vào gồm 2 phần tử như bảng sau:
Dữ liệu đầu vào EO
STT Chỉ số MarketCap Tỷ trọng Tổng giá trị MarketCap
1. ShinhanGroup 23,782,590,735,400 9% 23,782,590,735,4
00
2. SamsungElec 240,468,417,435,711 91%
Test case 4 (TC4) ứng với đường đi 5: Mảng đầu vào gồm 10 phần tử như bảng sau:
Dữ liệu đầu vào EO
STT Chỉ số MarketCap Tỷ trọng Tổng giá trị MarketCap
1. ShinhanGroup 23,782,590,735,400 4.07% 121,695,531,36 3,155 2. SamsungElec 120,923,839,036,125 20.69% 3. POSCO 114,965,444,843,700 19.67% 4. KookMinBk 71,420,306,949,160 12.22% 5. SKTelecom 22,611,628,705,815 3.87% 6. HHI 19,158,398,925,120 3.28% 7. HyundaiMtr 17,581,635,061,380 3.01% 8. KT&G 14,822,825,978,480 2.54% 9. KEPCO 12,607,625,978,480 2.16% 10. LGELECTRONICS 11,130,825,978,480 1.90%
Với mã nguồn 2: ta có số ca kiểm thử sinh ra theo đường đi cũng giống như với
mã nguồn 1 nhưng kết quả trả ra của các ca kiểm thử sẽ khác nhau, do giá trị khởi tạo biến i của mã nguồn 2 là 1, nên sẽ không bao gồm giá trị đầu tiên.
Ta sẽ có 4 ca kiểm thử sinh ra từ đường đi ứng với mã nguồn 2 như sau:
Test case 1 (TC1) ứng với đường đi 1: Mảng đầu vào là null. Khi đó kết quả trả ra là 0.
Test case 2 (TC2) ứng với đường đi 2: Mảng đầu vào gồm 1 phần tử, khi đó tỷ trọng luôn là 100%. Do đó, kết quả trả ra là 0.
Đường đi 3: Không thực thi được, do không có trường hợp nào mảng đầu vào là 1 phần tử mà giá trị tỷ trọng < 10%.
Test case 3 (TC3) ứng với đường đi 4: Mảng đầu vào gồm 2 phần tử như bảng sau:
Dữ liệu đầu vào EO
STT Chỉ số MarketCap Tỷ trọng Tổng giá trị MarketCap
3. ShinhanGroup 23,782,590,735,400 9%
23,782,590,735,400
4. SamsungElec 240,468,417,435,711 91%
Test case 4 (TC4) ứng với đường đi 5: Mảng đầu vào gồm 10 phần tử như bảng sau:
Dữ liệu đầu vào EO
STT Chỉ số MarketCap Tỷ trọng Tổng giá trị MarketCap
11. ShinhanGroup 23,782,590,735,400 4.07% 121,695,531,363,155 12. SamsungElec 120,923,839,036,125 20.69% 13. POSCO 114,965,444,843,700 19.67% 14. KookMinBk 71,420,306,949,160 12.22% 15. SKTelecom 22,611,628,705,815 3.87% 16. HHI 19,158,398,925,120 3.28% 17. HyundaiMtr 17,581,635,061,380 3.01% 18. KT&G 14,822,825,978,480 2.54% 19. KEPCO 12,607,625,978,480 2.16% 20. LGELECTRONICS 11,130,825,978,480 1.90%
4.3.4. Áp dụng kỹ thuật dòng dữ liệu
Dựa vào mã nguồn của bài toán ta sẽ áp dụng tiêu chí sinh kiểm thử All-p-uses, All-c-use, All-p-uses/Some-c-uses, All-c-uses/Some-p-uses để tiến hành sinh các đường đi từ đồ thị dòng dữ liệu sau.
Ta có sơ đồ dòng dữ liệu như sau: