Các thuận toán sinh Testcase dựa trên đặc tả

Một phần của tài liệu Phương pháp và kỹ thuật sinh Test case tự động (Trang 29 - 37)

Trong phần này, đầu tiên chúng ta mô tả cấu trúc của các giả định và các file đặc tả SCR và UML mà ta sẽ thực hiện trong thiết kế. Sau đó chúng ta đưa ra thiết kế cấu trúc, cuối cùng là các thuật toán mà phân tích các file đặc tả và sinh ra các Test case cho việc chỉnh sửa đầy đủ thuộc tính và tiêu chuẩn chỉnh sửa cặp chuyển tiếp được đưa ra.

3.2.4.1. Các files đặc tả UML và SCR

Các file đặc tả được lưu giữ như các file văn bản ASCII. Đầu tiên, chúng ta phân tách cú pháp file đặc tả để có được ý nghĩa của nó. Việc phân tách các file text đặc tả phụ thuộc rất nhiều vào cấu trúc của chúng. Trong phần này, chúng ta sẽ đưa ra một cái nhìn tổng quan tương đối chi tiết về việc làm thế nào các file text đặc tả được tạo ra.

(1) Cấu trúc của các file đặc tả SCR

File đặc tả có các mục riêng biệt sau đây: • Từ điển loại ( Type Dictionary)

• Từ điển lớp trạng thái (Mode Class Dictionary) • Từ điển hằng số (Constant Dictionary)

• Từ điển biến (Variable Dictionary)

• Từ điển xác nhận đặc tả (Specification Assertion Dictionary)

• Từ điển xác nhận môi trường (Environmental Assertion Dictionary)

• Từ điển biến giám sát liệt kê (Enumerated Monitored Variable Dictionary) • Từ điển biến điều khiển (Controlled Class Table)

• Các bảng loại trạng thái (Mode Class Table) • Các bảng biến điều kiện (Term Variable Table)

Các đặc tả cho tất cả các mục này được lưu giữ như các ASCII text file trong trật tự bên trên. Không có sự hạn chế trong tên file, hoặc phần đuôi file mở rộng. Cấu trúc của file text được chỉ ra ở bên dưới.

- Các giả định cho các đặc tả SCR

Các giả định sau đây được thực hiện trong khi phân tách đặc tả SCR trong file text. • @T, @F biểu thị cho các sự kiện khởi động

• AND biểu thị cho sự logic và • Chỉ có một loại lớp

• Các biến Boolean

• Thay đổi biến đơn trong sự kiện

• Không có biến nào hoặc các biến đơn hoặc đa biến trong điều kiện • Những sự chuyển tiếp trạng thái được xác định.

Type Dictionary TYPE Type Name

BASETYPE Base Type Name UNITS Unit Name

Mode Class Dictionary

MODECLASS Mode Class Name

MODES List of modes separated by comma INITMODE Initial Mode

COMMENT Comments for the mode class usage Constant Dictionary

CONSTANT Constant Name TYPE Type Name

VAL Value

COMMENT Comments for the constant Variable Dictionary

MON Name of a monitored variable TYPE Type Name

INITVAL Initial value ACCURACY Accuracy

COMMENT Rules for value assignment CON Name of a controlled variable TYPE Type Name

INITVAL Initial value ACCURACY Accuracy (adsbygoogle = window.adsbygoogle || []).push({});

COMMENT Rules for value assignment Specification Assertion Dictionary ASSERTION Name of an assertion EXPR Expression

COMMENT Explanation of assertion Environmental Assertion Dictionary Enumerated Monitored Variable Table

Event, Mode Transition, and Condition Functions EVENTFUNC Event function table name

MCLASS Mode class name MODES Mode name

EVENTS Event1, Event2

ASSIGNMENTS Value1, Value2

CONDFUNC Condition function table name CONDITIONS Condition1, Condition2 ASSIGNMENTS Value1, Value2

MODETRANS Mode transition table name FROM State name

EVENT Event

WHEN List of Disjunctive Conditions TO State name

Cấu trúc của file text trong đặc tả SCR. (2) Cấu trúc của các file UML MDL

Các file đặc tả UML được tạo ra bởi Rational Rose thường có đuôi file mở rộng “mdl”. Các file MDL lưu giữ thông tin đặc tả từ các hình phối cảnh khác nhau. Có hai loại chủ yếu của thông tin: vật chất và logic. Đặc tả bản thân được nhóm vào trong hai

gói: biểu đồ cộng tác đối tượng và use case. Chúng ta quan tâm đến các biểu đồ chuyển tiếp trạng thái, do đó, chúng ta chỉ đưa ra cấu trúc của phần logical view của file MDL. Hình 11 cho thấy cấu trúc bên trong của biểu đồ lớp và biểu đồ chuyển trạng thái trong một file MDL.

Hình 11: Cấu trúc của file MDL cho biểu đồ lớp và biểu đồ chuyển trạng thái.

- Các giả định cho các đặc tả UML

Trong phần này chúng ta chỉ quan tâm đến các chuyển tiếp khởi động bởi một vài sự kiện thay đổi, chúng ta không xem xét các loại chuyển tiếp khác. Với các đầu vào file đặc tả UML, sẽ có các giả định sau:

• Tất cả các chuyển tiếp là được khởi động bằng các sự kiện thay đổi.

• Các sự kiện và các điều kiện được diễn đạt thông qua các thuộc tính phân loại Boolean.

• Đặc tả được viết ra hết sức chặt chẽ sau các chú giải UML. Ví dụ, when giải thích một sự kiện thay đổi, các điều kiện là trong ngoặc đơn, vân vân… Bởi vì không có cách nào để kiểm thử một đặc tả được hình thành hoặc thống nhất hay không, giả định này không thể được kiểm thử.

• Các chuyển tiếp trạng thái được định trước.

Chúng ta giải thích mô hình thiết kế thông qua một biểu đồ lớp và ba biểu đồ cộng tác đối tượng được tạo ra bởi Rose.

(1) Biều đồ lớp

Hình 12 là một biều đồ lớp UML được thiết kế. Các lớp được đưa ra như các hộp mà có ba phần: tên lớp, các thành viên dữ liệu được khai báo trong lớp, và các phương thức của lớp. Có bốn đối tượng: một phân tách đặc tả UML, một phân tách đặc tả SCR, một máy tạo ra Test case đặc tả đầy đủ, và một máy tạo Test case cặp chuyển tiếp.

UMLSpecParser đọc một file text đặc tả UML, phân tách nó, và tạo ra bảng chuyển tiếp trạng thái cho các lớp có máy trạng thái. SCRSpecParser đọc các file text đặc tả SCR, phân tách chúng, và tạo ra các bảng chuyển tiếp trạng thái cho các lớp. FullPredicate lấy một bảng chuyển tiếp trạng thái như một đầu vào, tạo ra các Test case cho các tiêu chuẩn chỉnh sửa thuộc tính đầy đủ, và lưu giữ các Test case trong một file. Cặp chuyển tiếp lấy một bảng chuyển tiếp trạng thái như một đầu vào, tạo ra các Test case cho tiêu chuẩn chỉnh sửa cặp chuyển tiếp, và lưu giữ các Test case trong một file text.

(2) Các biểu đồ cộng tác đối tượng

Các biểu đồ cộng tác đối tượng (OCD) cho việc sinh ra các Test case chỉnh sửa cặp chuyển tiếp, chỉnh sửa chuyển tiếp, chỉnh sửa thuộc tính đầy đủ được đưa ra trong hình 13, 14, và 15.

Trong hình 13 Nó tương tác với người sử dụng, có các lệnh để đọc một file đặc tả SCR hoặc UML và FullPredicate, gửi bảng chuyển tiếp trạng thái như một tham số. FullPredicate sinh ra các Test case cho các tiêu chuẩn chỉnh sửa thuộc tính đầy đủ, lưu giữ các Test case trong các file, và trả thông điệp mà Test case có thể được sinh ra.

Hình 14: OCD cho việc sinh ra các Test case chỉnh sửa chuyển tiếp

Hình 15: OCD cho việc sinh ra các Test case chỉnh sửa cặp chuyển tiếp. (adsbygoogle = window.adsbygoogle || []).push({});

Phần này đưa ra các thuật toán, các thuật toán được phát triển để phân tách các file text đặc tả SCR và UML để tạo ra các Test case.

(1). Thuật toán phân tách đặc tả SCR

Hình 16 đưa ra một thuật toán để phân tách các file text đặc tả SCR. Thuật toán SCRSpecparser lấy một file đặc tả SCR như một đầu vào, sau đó phân tách file để rút ra từ điển lớp, từ điển biến và bảng chuyển đổi trạng thái và lưu giữ chúng trong các cấu trúc dữ liệu.

Hình 16: Thuật toán phân tích đặc tả SCR (2). Thuật toán phân tách đặc tả UML

Hình 17 cho một thuật toán để phân tách file đặc tả UML (MDL files). Thuật toán UMLSpecParser lấy một file đặc tả UML như một đầu vào, sau đó phân tách file để rút ra thông tin cần thiết cho việc tạo ra Test case. Nó lấy tên lớp, thuộc tính và máy trạng thái, và lưu giữ chúng trong các cấu trúc dữ liệu. Trong thuật toán này, các lớp UML được ghép với các lớp chế độ của SCR, các thuộc tính lớp tới các từ điển biến, và các máy trạng thái tới các bảng chuyển tiếp trạng thái.

Hình 17: Thuật toán phân tách đặc tả UML

Một phần của tài liệu Phương pháp và kỹ thuật sinh Test case tự động (Trang 29 - 37)