Đường dẫn con P3 thực thi

Một phần của tài liệu (LUẬN án TIẾN sĩ) các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ UML luận án TS máy tính 624801 (Trang 92 - 94)

tả ở trên để áp dụng giải quyết tìm dữ liệu thỏa mãn để đường dẫn con còn lại của P có thể đi qua được. Trong trường hợp khơng tìm được dữ liệu thỏa mãn thì sử dụng việc quay lui. Đường dẫn con P3 đi qua đỉnh B4 (p=p∗.right) và

việc gán giá trị có thể cho rec2.right. Do đó, cấu trúc mới được tạo ra rec3 và

adr(rec3) được gán cho rec2.right; rec3.data nhận giá trị ngẫu nhiên là 45 thì cấu trúc dữ liệu được tạo như Hình 3.17.

Để có thể tiếp tục thực thi đường dẫn con của P được đi qua,

P3 =<Start, B1, D1, D2, D3, B3, D1, D2, D3, B4, D1, D2> . Khi giá trị rec3.data= 45thì đường dẫn chưa duyệt qua được B2. Lấy hàm vị từF3(x) =abs(y−p∗.data),

do đó mục đích là tìm giá trị của x để F3(x) = 0 thì đường dẫn P3 duyệt qua nút B2 tại giá trị dữ liệu x. Phân tích dịng dữ liệu động xác định giá trị biến

đầu vào rec3.data và y ảnh hưởng đến hàm vị từ F3(x), sử dụng giải thuật được

miêu tả ở trên thì giá trị của rec3.data= 5.

3.4 Thực nghiệm

Nhằm chứng minh tính đúng đắn và hiệu quả của phương pháp đề xuất, một công cụ SequenceTesting được xây dựng để mô phỏng cho phương pháp đó. Một số thực nghiệm được đưa ra để thực thi và đánh giá hiệu quả của cơng cụ đó. Thực nghiệm thứ nhất đưa ra đánh giá phần sinh đồ thị trung gian khi so sánh với phương pháp trong [72] và so sánh độ bao phủ của các kịch bản kiểm thử được sinh ra với phương pháp sinh dữ liệu kiểm thử ngẫu nhiên trong một số ứng dụng. Thực nghiệm thứ hai so sánh khả năng tìm lỗi của các kịch bản kiểm thử sinh ra của phương pháp đề xuất so với một số phương pháp đã có.

3.4.1 Cơng cụ

Cơng cụ được xây dựng SequenceTesting sử dụng phát triển phương pháp đề xuất. Phương pháp thực thi sử dụng ngôn ngữ Java (cơng cụ SequenceTesting bao gồm1835 dịng lệnh), JDK 1.8 và áp dụng cho biểu đồ tuần tự UML 2.0, các ràng buộc OCL của biểu đồ lớp. Hình 3.19 mơ tả kiến trúc của công cụ trong phương pháp đề xuất. Đầu vào của công cụ là biểu đồ tuần tự UML 2.0 và biểu đồ lớp được lưu dưới dạng XMI file (sử dụng công cụ Enterprise Achitect ver.11 để tạo ra các thiết kế UML). Trong cơng cụ gồm có mơ đun (được phát triển sử dụng thuật toán đệ quy để đọc file XMI, đưa ra ở Phần 3.3.2) để sinh ra CFG. CFG tại bước trên được cung cấp làm đầu vào cho quá trình sinh các kịch bản kiểm thử. Việc tạo ra các dữ liệu kiểm thử bởi việc cải tiến phương pháp tìm hàm giá trị nhỏ nhất trong cách tiếp cận [97], phát triển cho biến dữ liệu cấu trúc động. Khi thực thi các kịch bản kiểm thử tự động: mỗi kịch bản kiểm thử được sinh ra là tuần tự các phương thức gọi và dữ liệu kiểm thử. Các kịch bản được chuyển thủ công thành các đoạn mã kiểm thử tương ứng, sau đó có thể sử dụng cơng cụ nguồn mở để thực thi các đoạn mã kiểm thử của các kịch bản kiểm thử đó trên các hệ thống thực (sử dung cơng cụ kiểm thử có sẵn DejaGnu1).

3.4.2 Kết quả và đánh giá

Tất cả các thực nghiệm được thực thi với cơng cụ SequenceTesting trên máy tính Intel Core i3- 6100U CPU 2.30 GHz với RAM 2GB.

3.4.2.1 Thực nghiệm và đánh giá phần sinh đồ thị trung gian

Công cụ được áp dụng cho các biểu đồ tuần tự từ dạng đơn giản khơng có hoặc có một khối đơn, đến dạng phức tạp chứa các khối lồng ghép, qua đó so sánh kết quả với phương pháp đề xuất ban đầu trong nghiên cứu [72]. Kết quả thu được thể hiện ở Bảng 3.5 cho thấy nghiên cứu đã hoàn chỉnh được hướng đề xuất ban đầu, giải quyết được thêm các khối đơn critical, strict, weak sequencing, assert, consider, ignore, negative. Hơn nữa, cải tiến thuật toán sinh CFG cho toán tử parallel nhằm mục đích tránh bùng nổ các kịch bản kiểm thử trong trường hợp đó, được giải quyết ở Chương 4.

Bӝ thӵc thi kiӇm thӱ tӵÿӝng Sinh ÿӗ thӏ dịng ÿiӅu khiӇn Cơng cө TiӃn trình Sinh các ca kiӇm thӱ Các ÿoҥn mã kiӇm thӱ (test scripts) Bӝ sinh ÿӗ thӏ dòng ÿiӅu khiӇn tӵ ÿӝng Bӝ sinh các kӏch bҧn và dӳ liӋu kiӇm thӱ Testing Framework UML sequence diagram và

class diagram (XMI file)

KӃt quҧ kiӇm thӱ

Luӗng dӳ liӋu và ÿiӅu khiӇn TiӃn trình tӵ ÿӝng

Một phần của tài liệu (LUẬN án TIẾN sĩ) các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ UML luận án TS máy tính 624801 (Trang 92 - 94)