3.3 Kỹ thuật sinh kịch bản kiểm thử
3.3.1. Kịch bản kiểm thử cho các toán từ thông thƣờng
Đồ thị dòng điều khiển đƣợc sinh ra từ biểu đồ tuần tự đƣa ta trở về bài toán quen thuộc trong kiểm thử hộp trắng. Có nhiều phƣơng pháp sinh luồng kiểm thử có thể đƣợc áp dụng nhƣ: thuật toán tìm theo chiều sâu, thuật toán tìm theo chiều rộng, v.v.
Xét về mặt giải thuật, cả hai thuật toán duyệt theo chiều rộng và thuật toán duyệt theo chiều sâu đều có thể đƣợc sử dụng. Tuy nhiên, với mong muốn sinh lần lƣợt các ca kiểm thử tƣơng ứng, tức duyệt lần lƣợt từng đƣờng đi từ điểm bắt đầu tới điểm kết thúc thì thuật toán duyệt theo chiều sâu là phù hợp hơn. Vì vậy, trong bài nghiên cứu này tôi sử dụng giải thuật thuật toán duyệt theo chiều sâu để duyệt đồ thị CFG và sinh ca kiểm thử.
Thuật toán duyệt theo chiều sâu là thuật toán mà quá trình tìm kiếm đƣợc phát triển từ đỉnh con đầu tiên của nút đang tìm kiếm cho tới khi gặp đƣợc đỉnh cần tìm hoặc tới một nút không có con. Khi đó giải thuật quay lui về đỉnh vừa mới tìm kiếm ở bƣớc trƣớc và tiếp tục tìm kiếm cho tới khi duyệt hết tất cả các đỉnh trong đồ thị.
Ví dụ áp dụng thuật toán duyệt theo chiều sâu cho đồ thị Hình 3.16. Tìm kiếm ƣu tiên chiều sâu bắt đầu thăm đỉnh A, đi theo cạnh trái, tiếp tục tìm kiếm xong ở cây con trái mới chuyển sang tìm kiếm ở cây con phải. Thứ tự thăm viếng các đỉnh là: A, B, D, F, E, C, G. Quá trình viếng thăm các đỉnh diễn ra nhƣ sau: Sau khi thăm đỉnh A, vì chƣa đƣợc thăm nên theo cạnh A ta thăm , tiếp tục theo cạnh BD tới viếng thăm D. Từ D không thể tiếp tục đi xa hơn, ta quay lại B. Từ , theo F đến thăm F, từ F đến thăm E. Từ E vì A đã viếng thăm nên ta quay lại F, rồi quay lại B. Tại B vì tất cả các khả năng từ đã xem xét nên ta quay lại A. Từ A, quá trình tiếp tục với các đỉnh C và G.
A
B C E
B C E