Xây dựng hệ ràng buộc

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ tuần tự UML, biểu đồ lớp và ràng buộc OCL (Trang 57 - 58)

Chƣơng 1 : GIỚI THIỆU

3.4 Xây dựng hệ ràng buộc

Để thực thi đƣợc các ca kiểm thử sinh từ đồ thị dòng điều khiển thì cần có dữ liệu đầu vào cho các ca kiểm thử. Dữ liệu đầu vào đó sẽ đƣợc lấy từ kết quả giải các hệ ràng buộc tƣơng ứng trên từng đƣờng đi của ca kiểm thử. Dữ liệu đƣa vào giải hệ đƣợc thu thập từ ràng buộc OCL và các dữ liệu đƣợc khai báo trên thiết kế theo yêu cầu ở mục 3.1.2. Tất cả đều đƣợc bóc tách từ tệp xmi và lƣu giữ trong các nốt (các thông điệp) tƣơng ứng.

Giữ liệu kiểm thử sẽ đƣợc giải tƣơng ứng cho từng ca kiểm thử. Duyệt từ nốt khởi đầu tới nốt kết thúc để thu thập các thông điệp và ràng buộc. Các ràng buộc và các biến sẽ lƣu trữ trong hai mang tƣơng ứng nhƣ sau:

ArrayList<String> testConstraint ArrayList<String> DefineList

Trong đó mảng ArrayList<String> DefineList sẽ lƣu giữ các biến, mảng đƣợc khai báo trong dữ liệu test. Trong thiết kế mô hình, các biến này thƣờng cũng sẽ đƣợc khai báo trong các biểu đồ lớp tƣơng ứng trong ULM 2.0.

Hình 3.18 Ví dụ về ràng buộc OCL đƣợc khai báo trong thiết kế.

Ví dụ về một mảng DefineList đã đƣợc điền dữ liệu nhƣ sau: defineList = {int max, int money, double time, float transfer};

Mảng ArrayList<String> testConstraint lƣu giữ các ràng buộc, dữ kiện chƣơng trình cần thực thi. Ví dụ số tiền tối thiểu có trong tài khoản: money >=50, thời gian đƣợc lƣu giữ dƣới dạng số thực: time > 0.

Ví dụ về một mảng testConstraint đã đƣợc fill dữ liệu nhƣ sau:

testConstraint = {max <=10, max >0, money >=50, time > 0, transfer = money/max}; Hai mảng testConstraint, defineList đƣợc dùng làm dữ liệu đầu vào cho công cụ giải hệ SMT-Solver.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ tuần tự UML, biểu đồ lớp và ràng buộc OCL (Trang 57 - 58)

Tải bản đầy đủ (PDF)

(74 trang)