Bƣớc chuẩn hóa (normalization) sử dụng mô hình UML làm đầu vào và đầu ra là việc tạo các đồ thị của ca kiểm thử. Mục tiêu của phần này là kiểm tra tính đúng đắn của các ràng buộc OCL. Nếu tất cả các ràng buộc đều đúng về mặt cú pháp và tất cả chúng đều đƣợc hỗ trợ bởi cách tiếp cận của chúng tôi, thì cây cú pháp trừu tƣợng sẽ đƣợc tạo cho chúng.
Đầu tiên là việc ánh xạ các phần bắt buộc của mô hình đầu vào UML và các ràng buộc OCL liên quan trong một cấu trúc bên trong, đƣợc gọi là đồ thị ca kiểm thử. Sau đó, cấu trúc này đƣợc sử dụng để tạo ca kiểm thử và quên đi mô hình UML đầu vào. Ngoài ra, trong phần này, các tiêu chí về độ bao phủ đƣợc chuyển đổi thành các mục tiêu kiểm thử. Tất cả các tác vụ này đƣợc thực hiện bằng công cụ ParTeG đƣợc trình bày ở Mục 4.1. Cần lƣu ý rằng, cấu trúc bên trong của công cụ này đƣợc sử dụng ở một số phần để nó có thể hỗ trợ các yêu cầu của phƣơng pháp tiếp cận. Siêu mô hình (meta-model) một phần của đồ thị ca kiểm thử đƣợc chỉ ra trong Hình 3.5.
Các thuộc tính của lớp TCGTransition là những thuộc tính đƣợc thêm vào siêu mô hình đồ thị ca kiểm thử. Lƣu ý rằng ParTeG không hỗ trợ một số tiền điều kiện hoặc hậu điều kiện. Tuy nhiên, trong cách tiếp cận này, chúng tôi hỗ trợ một số tiền điều kiện hoặc hậu điều kiện cho mỗi lần chuyển đổi. Ràng buộc bảo vệ của quá trình chuyển đổi máy trạng thái UML và (các) tiền điều kiện của hoạt động đƣợc gọi trong tác động của quá trình chuyển đổi đó, nếu tồn tại, đƣợc chuyển đổi thành (các) tiền điều kiện chuyển đổi trong đồ thị ca kiểm thử. Ngoài ra, (các) hậu điều kiện của hoạt động đƣợc gọi trong tác động của quá trình chuyển đổi máy trạng thái UML, nếu tồn tại, đƣợc chuyển đổi thành (các) hậu điều kiện chuyển tiếp trong biểu đồ ca kiểm thử.
36
Trong cách tiếp cận đƣợc đề xuất, các kiểu dữ liệu Integer, Real và Boolean đƣợc hỗ trợ. Ngoài ra, chúng tôi hỗ trợ các câu lệnh if-then-else để xác định các ràng buộc OCL. Cuối cùng, Bảng 3.7 cho thấy các toán tử đƣợc hỗ trợ trong cách tiếp cận này.
Bảng 3.7: Các toán tử đƣợc hỗ trợ trong việc định nghĩa ràng buộc OCL Toán tử toán học (mathematical operations) +, -, *, /
Toán tử quan hệ (relational operations) <, <=, >, >=, =, <> Toán tử logic (Boolean operations) and, or, not, xor, implies