Thuật toán sinh cây DS

Một phần của tài liệu Nghiên cứu kỹ thuật sinh ca kiểm thử từ mô hình máy hữu hạn trạng thái (Trang 26)

Input : M = <S, I, O, s0, δ, λ>.

Output: Cây DS.

Phương pháp: Thực hiện các bước sau:

Bước 1: Gọi ψ là một tập các khối trạng thái trong cây DS. an đầu, ψ

chứa khối trạng thái ban đầu và được gán là không kết thúc.

Bước 2: Tìm một thành phần ψ ψ mà vẫn chưa được “tính toán”. Nếu

không có thành phần nào như thế tồn tại thì thuật toán kết thúc.

Bước 3: Tính toán ψ’ = dpert(ψ,a) và thêm ψ’ vào ψ với a  I. Gán ψ đã được “tính toán” và cập nhật DS tree.

Bước 4: Nếu dpert (ψ,a) được tính toán ở Bước 3 thỏa mãn điều kiện kết thúc D1, D2 hoặc D3 thì gán ψ’ là nút kết thúc.

Bước 5: Quay lại Bước 2

Hình 3.5: Cây DS của FSM G2 ở Hình 3.4.

Từ khối trạng thái ban đầu với đầu vào 0 sinh ra khối trạng thái ( )(DD) vì:

・ Hai trạng thái và sinh ra cùng output 0 từ input 0 và chuyển FSM tới trạng thái và .

・ Hai trạng thái C và D sinh ra cùng output 1 từ input 0 và chuyển FSM tới cùng trạng thái D.

( )(DD) là khối trạng thái đồng nhất nên nó là nút kết thúc.

Từ khối trạng thái ban đầu với đầu vào 1 sinh ra khối trạng thái (DC)( ) vì:

・ Hai trạng và D sinh ra cùng output 0 với input 1 và chuyển FSM tới trạng thái D và C.

・ Hai trạng thái và C sinh ra cùng output 1 từ input 1 và chuyển FSM tới trạng thái và .

(DD)( ) là một khối trạng thái đồng nhất nên nó là nút kết thúc.

( )( )(C)(D) là khối trạng thái đơn nhất được sinh ra từ khối trạng thái (DC)(BA) với input 1 nên nó cũng là nút kết thúc.

Và cuối cùng ta được cây DS như Hình 3.3. Chuỗi input 11 đưa cây DS từ khối trạng thái ban đầu tới khối trạng thái đơn nhất duy nhất là một DS của FSM.

Ta kiểm chứng lại lại kết quả: λ( ,11) = λ(λ ( ,1),1) = 00 λ( ,11) = λ(λ( ,1),1) = 11 λ(C,11) = λ(λ(C,1),1) = 10

Trạng thái Chuỗi vào Chuỗi ra

A 11 00

B 11 11

C 11 10

D 11 01

Một phần của tài liệu Nghiên cứu kỹ thuật sinh ca kiểm thử từ mô hình máy hữu hạn trạng thái (Trang 26)