Thị dòng điều khiển

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 32 - 34)

2.3 Các biểu đồ UML và ràng buộc OCL

2.3.3 thị dòng điều khiển

Mục tiêu chính của nghiên cứu là sinh các dữ liệu kiểm thử từ biểu đồ tuần tự UML và các ràng buộc OCL. Tuy nhiên, chúng ta khơng có cách sinh trực tiếp từ cấu trúc dữ liệu này. Để đạt được mục tiêu trên, luận án xây dựng một đồ thị dòng điều khiển (Control Flow Graph – CFG) đặc tả hành vi như cấu trúc dữ liệu trung gian cho việc sinh dữ liệu kiểm thử.

Theo [72], đồ thị dòng điều khiển là đồ thị được biểu diễn trực tiếp tương ứng với biểu đồ tuần tự đưa ra và các thông tin về ràng buộc được lấy từ biểu đồ lớp. Có năm loại nút (đỉnh) của đồ thị (Hình 2.9): block node (BN), decision node (DN), merge node (MN), fork node (FN) và join node (JN). Trong đó, BN là nút tương ứng với từng thông điệp (message) trong đồ thị; Một DN biểu diễn biểu thức điều kiện là các biểu thức logic thỏa mãn cho việc lựa chọn các toán hạng trong các tốn tử (ví dụ: tốn tử alt, opt, loop, v.v.); Một MN biểu diễn

BN

DN

MN

FN

JN

Hình 2.9: Các loại nút của đồ thị dịng điều khiển

nút ra của các tốn tử lựa chọn (ví dụ alt, opt); Một FN biểu diễn đầu vào trong khi đó JN biểu diễn đầu ra của tốn tử song song (parallel) và tuần tự yếu (weak sequencing). Các cạnh biểu diễn dòng điều khiển giữa các nút, các cạnh đi từ DN sẽ được gắn với vị từ.

Đồ thị dòng điều khiển G được định nghĩa [72] như sau: G = (A, E,in, F)

trong đó, A là một tập các nút (bao gồm BN, DN, MN, FN và JN); in là nút khởi tạo và F là tập hợp các nút kết thúc của đồ thị; E là tập các cạnh của đồ thị sao cho: E = {(x, y)|x, y ∈A∪F}. Với cấu trúc của từng nútAi ∈Ađược bao gồm: <noId, noType, noDetails, outEdge>, trong đó:

ˆ noId là nhãn duy nhất gắn trong từng nút,

ˆ noType là một trong các loại nút in, BN, DN, MN, FN, JN và f ni,

ˆ noDetails = <m1, m2, ..., mq> với q là số các thông điệp trong Bi ∈ BN. Mỗi nút Bi biểu diễn một thông điệp hoặc tuần tự các thông điệp mi. Mỗi thông điệp mi bao gồm các thông tin của lớp gửi và lớp nhận trong biểu đồ lớp và có cấu trúc như sau: (mi, parameterList, returnV alue); trong đó,

mỗi thông điệp hay phương thức mi bao gồm một danh sách các tham số

parameterList= <p1, p2, ..., pn> và giá trị trả về returnV alue. Mỗi tham số pi của phương thức mi trong biểu đồ tuần tự có thể bao gồm thuộc tính với các ràng buộc trong biểu đồ lớp. Tham số và giá trị trả về được lấy kiểu dữ liệu, thông tin về ràng buộc từ biểu đồ lớp và có cấu trúc như sau: <name, dataT ype, value, constraint> trong đó, name là tên tham số hoặc thuộc tính; dataT ype là loại dữ liệu của tham số hoặc thuộc tính tương ứng; value là giá trị được gán cho tham số; constraint chỉ các ràng buộc là các biểu thức OCL được xác định trong thuộc tính của biểu đồ lớp, và

ˆ outEdge = {oE1, oE2, ..., oEq}| q là số lượng các cạnh ra từ DN. Mỗi cạnh

oEi ∈ outEdge được xác định gồm: <noId, predicate> trong đó, noId là nhãn được gắn với nút tạo ra và predicate là các biểu thức logic, kiểm tra điều kiện trong các toán tử của biểu đồ tuần tự.

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 32 - 34)