Bảng biểu diễn trạng thái FSM của ATM

Một phần của tài liệu (LUẬN văn THẠC sĩ) mô hình hóa và kiểm thử máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn (FSM FINITE state machines testing) (Trang 67)

Xây dựng mô hình FSM chuyển đổi trạng thái của ATM:

Hình 3. 2. Mô hình FSM chuyển đổi trạng thái của ATM8.

Trong hình 3.2, hệ thống máy rút tiền tự động được mô tả bằng máy hữu hạn trạng thái. Hệ thống ATM cho phép một người dùng chèn vào một thẻ và nhập mã PIN chính xác. Người dùng được phép có tối đa ba lần để nhập mã PIN chính xác. Mã PIN được xác minh bằng cách kết hợp nó với một mã PIN được lưu trữ trên thẻ. Một khi PIN đã được xác minh, người sử dụng có thể rút tiền, gửi tiền, hoặc kiểm tra số dư, trên một trong hai tài khoản vãng lai hoặc tiết kiệm của khách hàng. Hình 3.2 có thông số sự kiện Card (Pin, sb, cb) và PIN(p). Sự kiện Card có ba thông số biểu thị các thông tin được lưu trữ trên thẻ, tức là, Pin đại diện cho các giá trị của PIN, sb đại diện cho số dư của tài khoản tiết kiệm, và cb đại diện cho số dư của tài khoản vãng lai. Sự kiện mã PIN có một p tham số đại diện cho các giá trị nhập số PIN tại ATM bởi người sử dụng.

Với mô hình chuyển trạng thái trên ta nhận thấy hệ thống gồm có 9 trạng thái được kí hiệu là S và được bắt đầu từ S0 cho đến S8. Tương ứng với mỗi cặp trạng thái là các cặp chuyển trạng thái (inputs/ outputs) được kí hiệu là T và được bắt đầu từ T1 cho đến T24.

8

Dưới đây là các từ viết tắt tương ứng cho các trạng thái khác nhau của ATM được biểu diễn trên mô hình:

Trạng thái (State) Từ viết tắt (Acronym)

Start S0 Card entered S1 Pin accept S2 Language choose S3 Current S4 Update current S5 Saving S6 Update saving S7 Exit S8 Bảng 3. 2. Bảng gán nhãn cho các trạng thái.

Sự gán nhãn cho kết quả đầu vào và đầu ra cho hệ thống ATM:

Cạnh Đầu vào/ đầu ra

S0, S1 T1 S1, S1 T2 S1, S8 T3 S1, S2 T4 S2, S3 T5 S2, S3 T6 S2, S8 T23 S3, S4 T7 S3, S8 T24

S4, S3 T9 S4, S5 T11 S4, S5 T12 S4, S5 T13 S4, S5 T14 S5, S4 T15 S5, S4 T16 S3, S6 T8 S6, S3 T10 S6, S7 T17 S6, S7 T18 S6, S7 T19 S6, S7 T20 S7, S6 T21 S7, S6 T22

Bảng 3. 3. Bảng gán nhãn cho kết quả đầu vào/ đầu ra cho hệ thống ATM.

Sau đây là bảng gán nhãn cho mỗi quá trình chuyển đổi của hệ thống ATM với mỗi một trạng thái T sẽ tương ứng với một giá trị input/ output được minh họa trong bảng 3.4.

Transition Label

T1 Card(pin, sb, cb)/ Enter PIN;

T2 PIN(p),(p!=pin)/ Wrong PIN, prompt for pin, Re-enter pin; T3 PIN(p)[(p ! = pin)]/ Wrong PIN, Eject card

T4 PIN(p)[p==pin]/ Select a language

T5 English(l==e) / Menu english

T7 Current/ −

T8 Saving/ −

T9 Done/ −

T10 Done/ −

T11 Balance(l), l==e/ (English, cb) T12 Balance(l), l==vi/ (Vietnamese,cb)

T13 Deposit(d)/ cb=cb+d

T14 Withdrawal(w)/ cb=cb-w

T15 Print (l), l==e;/ Receipt(English); English=cb; Current

T16 Print(l), l==vi;/ Receipt(Vietnamese); Vietnamese=cb; Current

T17 Withdrawal(w)/sb=sb-w

T18 Deposit(d)/sb=sb+d

T19 Balance(l), l==e/ (English, sb) T20 Balance(l), l==vi/ (Vietnamese,sb)

T21 Print (l), l==e;/ Receipt(English); English=sb; Saving

T22 Print(l), l==vi;/ Receipt(Vietnamese); Vietnamese=sb; Saving.

T23 Exit/ Eject card

T24 Cancel/ Eject card

Bảng 3. 4. Bảng gán nhãn cho quá trình chuyển đổi.

Bảng thông tin chi tiết cho quá trình chuyển đổi của hệ thống ATM:

Transition name

State

name Event Condition Action

T1 Start Card entered Card(pin,sb,cb) attempt=0

T2 Card entered Card

entered pin(p)

p!=pin&&

attempt<3 attempt=attempt+1

attempt==3

T4 Card entered PIN

accepted Pin(p) P==pin

T5 PIN accepted Language

choose English() l==e

T6 PIN Accepted

Language choose Vietnamese() l==vi T7 Language choose Current Current T8 Language choose  saving Saving T9 CurrentLanguage choose Done T10 SavingLanguage choose done

T11 Current update current Balance(l) l==e Print e(cb) T12 Currentupdate Current Balance(l) l==vi Print vi(cb) T13 Currentupdate Current Deposit(d) cb=cb+d

T14 Current update Current Withdraw(w) w>0 &&

w<cb cb=cb-w

T15 Update Current Current Display(e ) l==e Receipt (e) T16 Update Current Current Display(vi) l==vi Receipt (vi)

T17 SavingUpdate saving Withdraw(w) w>0 &&

w<sb sb=sb-w

T18 SavingUpdate saving Deposit(d) d>0 sb=sb+d T19 SavingUpdate saving Balance(l) l==e Print e(sb) T20 SavingUpdate saving Balance (l) l==vi Print vi(sb) T21 Update savingsaving Receipt(l) l==e Receipt (e) T22 Update savingsaving Receipt(l) l==vi Receipt (vi) T23 Pin acceptexit Eject card()

T24 Language chooseexit Eject card()

Bảng 3. 5. Thông tin chi tiết của quá trình chuyển đổi cho hệ thống ATM.

Một mô hình hóa hệ thống FSM trở thành đầu vào để sinh ca kiểm thử dựa trên mô hình. Các chiến lược kiểm thử được lựa chọn phụ thuộc vào trạng thái đường đi ban đầu cho các trạng thái cuối cùng. Đối với mỗi đường đi, các giá trị kiểm thử thích hợp (inputs) dẫn đến những mâu thuẫn của đường đi đã xác định được chọn. Rõ ràng một ca kiểm thử bao gồm chuỗi sự kiện chuyển đổi với các giá trị đầu vào phù hợp. Ví dụ như: Card (123456, 500.00,200.00); Pin(123456); withdrawal (200.00);…

Do đó, cần lập kế hoạch như thế nào để có thể bao phủ được tất cả các trạng thái, các chuyển trạng thái với số ca kiểm thử sử dụng là ít nhất. Một hệ thống được đặc tả bởi mô hình máy hữu hạn trạng thái ATMS và được cài đặt bằng ATMI. Kiểm thử xem hệ thống ATMI có hoạt động đúng như đặc tả ATMS hay không bằng cách so sánh hành vi của hai máy trạng thái dựa trên quan sát hành vi input/ output của ATMI gọi là sự tìm ra lỗi. Như thế nào là hoạt động đúng, như thế nào là phù hợp, như thế nào là lỗi? Căn cứ vào đâu để chúng ta có thể đưa ra kết luận ATMI hoạt động đúng theo đặc tả ATMS. Như vậy, bài toán mô hình hóa ATM ở đây là kiểm thử xem ATMI có mô phỏng ATMS hay không, nếu ATMI không mô phỏng ATMS thì có lỗi trong quá trình cài đặt. Do vậy, làm thế nào để biết được máy hữu hạn trạng thái ATMI có mô phỏng máy hữu hạn trạng thái ATMS hay không? Phương pháp kiểm thử với việc kiểm chứng trạng thái được giới thiệu ở chương 2 là cách để giúp ta thực hiện với mô hình này. Chính vì vậy, để đạt được độ bao phủ trạng thái và độ bao phủ chuyển trạng thái, thì ta sẽ lựa chọn chuỗi các trạng thái và chuyển trạng thái sao cho các trạng thái được đến thăm ít nhất một lần. Điều này sẽ được thể hiện rõ ở bảng 3.6 và bảng 3.7 dưới đây:

Dãy chuyển đổi bao phủ tất cả các trạng thái trong hình 3.2:

Serial Number

Transition Tours (Dãy chuyển đổi)

States Visited (Trạng thái đến

thăm)

1

<S0, Card(pin, sb, cb)/ Enter Pin, S1>; <S1, pin!=pin/ Wrong pin, Eject card, S8>;

S0, S1, S8

2

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, current/ − , S4>;

<S4, Deposit(d)/ cb=cb+d, S5>;

S0, S1, S2, S3, S4, S5, S6, S7, S8.

<S5, Print(English)/ Receipt(English), English=cb, Current, S4>; <S4, Done/ − , S3>;

<S3, Saving/ − , S6>;<S6, Deposit/ sb=sb+d, S7>;

<S7, Print(English)/ Receipt(English), English=sb, Saving, S6>; <S6, Done/ − , S3>;

<S3, Cancel/ Eject card , S8>;

3

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, current/ −, S4>;

<S4, Withdrawal(w)/ cb=cb-w, S5>;

<S5, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Saving/ −, S6>; <S6, withdrawal(w)/ sb=sb-w, S7>; <S7, Print(Vietnamese)/ Receipt(Vietnamese),

Vietnamese=sb, Saving, S6>; <S6,Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

S0, S1, S2, S3, S4, S5, S6, S7, S8.

Bảng 3. 6. Dãy chuyển đổi bao phủ tất cả các trạng thái trong hình 3.2

Dãy chuyển đổi bao phủ tất cả các trạng thái chuyển đổi trong hình 3.2:

Serial Number

Transition Tours (Dãy chuyển đổi)

1

<S0, Card(pin, sb, cb)/ Enter pin, S1>;

<S1, pin!=pin/ wrong pin, Re-enter pin, prompt for pin, S1>; <S1, pin!=pin/ Wrong pin, Eject card, S8>.

2

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, current/ − , S4>;

<S4, Balance(English)/ (English,cb), S5>;

<S5, Print(English)/ Receipt(English), English=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

3

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, current/ −, S4>;

<S4, Deposit(d)/ cb=cb+d, S5>;

<S5, Print(English)/ Receipt(English), English=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

4

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, current/ − , S4>;

<S4, withdrawal(w)/ cb=cb-w, S5>;

<S5, Print(English)/ Receipt(English), English=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

5

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, current/ − , S4>;

<S4, Balance(Vietnamese)/ (Vietnamese,cb), S5>;

<S5, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

6

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, current/ − , S4>;

<S4, Deposit(d)/ cb=cb+d, S5>;

<S5, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

7

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, current/ − , S4>;

<S4, withdrawal(w)/ cb=cb-w, S5>;

<S5, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=cb, Current, S4>; <S4, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

8

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, Saving/ − , S6>;

<S6, withdrawal(w)/ sb=sb-w, S7>;

<S7, Print(English)/ Receipt(English), English=sb, Saving, S6>; <S6, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

9

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, Saving/ − , S6>;

<S6, Deposit(d)/ sb=sb+d, S7>;

<S7, Print(English)/ Receipt(English), English=sb, Saving, S6>; <S6, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

10

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, English/ Menu English, S3>; <S3, Saving/ − , S6>;

<S6, Balance(English)/ (English,sb), S7>;

<S7, Print(English)/ Receipt(English), English=sb, Saving, S6>; <S6, Done/ − , S3>; <S3, Cancel/ Eject card, S8>;

11

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, Saving/ −, S6>;

<S6, withdrawal(w)/ sb=sb-w, S7>;

<S7, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=sb, Saving, S6>; <S6, Done/ −, S3>; <S3, Cancel/ Eject card, S8>;

12

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, Saving/ −, S6>;

<S6, Deposit(d)/ sb=sb+d, S7>;

<S7, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=sb, Saving, S6>; <S6, Done/ −, S3>; <S3, Cancel/ Eject card, S8>;

13

<S0, Card(pin, sb, cb)/ Enter pin, S1>; <S1, pin=pin/ Select a language, S2>; <S2, Vietnamese/ Menu Vietnamese, S3>; <S3, Saving/ − , S6>;

<S6, Balance(Vietnamese)/ (Vietnamese,sb), S7>;

<S7, Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=sb, Saving, S6>; <S6, Done/ −, S3>; <S3, Cancel/ Eject card, S8>;

Bảng 3. 7. Dãy chuyển đổi bao phủ tất cả các trạng thái chuyển đổi trong hình 3.2.

Bởi vậy, ở thực nghiệm này tôi dựa vào phương pháp kiểm chứng chuỗi vào ra duy nhất (UIO) để thực hiện cho bài toán mô hình hóa ATM, bởi vì, mỗi một trạng thái của mô hình là một cặp chuỗi input/ output.

Si Sj

Do vây, chuỗi kiểm tra để kiểm thử quá trình chuyển đổi giữa các trạng thái được xây dựng trên phương pháp chuỗi kiểm chứng UIO. Việc xây dựng r hành động để thiết lập lại I, sao cho I có thể được thiết lập lại trạng thái ban đầu, để tạo ra các chuỗi chuyển tiếp ngắn nhất có thể dẫn từ trạng thái q0 đến trạng thái qi. Việc áp dụng đầu vào để có thể kích hoạt các quá trình chuyển đổi để được kiểm tra, sinh ra các trạng thái sau qj kiểm chứng chuỗi. Với phương pháp chuỗi kiểm chứng UIO, việc sinh ca kiểm thử cho mô hình FSM của ATM là một tập hợp đầy đủ các chuỗi kiểm thử cho mỗi trạng thái chuyển đổi trong mô hình trạng thái FSM của ATM được thể hiện trong hình 3.2. Việc sử dụng phương pháp chuỗi kiểm chứng UIO để kiểm chứng xem chuỗi input/output của mỗi trạng thái ATMI có đúng như đặc tả của trạng thái ATMS không? Dựa vào chuỗi input/output cho mỗi trạng thái để sinh ra ca kiểm thử. Chuỗi UIO cho mỗi trạng thái được thể hiện trong bảng 3.8, và các chuỗi được sinh ra trong bảng 3.9. Dưới đây là bảng chuỗi vào – ra duy nhất cho mỗi trạng thái trong mô hình FSM của ATM:

Trạng thái Chuỗi UIO

S0 Insert card/−

S1

Card(pin,sb,cb)/ Enter Pin;

Pin!=pin/ Wrong pin, Re-enter Pin, Prompt for pin; Pin!=pin/ wrong pin, Eject card;

Pin=pin/ Select a language;

S2

English/ Menu English;

Vietnamese/ Menu Vietnmaese; Exit/ Eject card;

S3 Current/− ; Saving/ −; S4 Done/−; Withdraw(w)/ cb=cb-w; Deposit(d)/ cb=cb+d; Balance(English)/ (English,cb); Balance(Vietnamese)/ (Vietnamese,cb); S5

Print(English)/ Receipt(English), English=cb, current;

S6 Done/−; Withdrawal(w)/ sb=sb-w; Deposit(p)/ sb=sb+d; Balance(English)/ (English,sb); Balance(Vietnamese)/ (Vietnamese,sb); S7

Print(English)/ Receipt(English), English=sb, saving;

Print(Vietnamese)/ Receipt(Vietnamese), Vietnamese=sb, saving; S8 Exit/ Eject card;

Bảng 3. 8. Chuỗi vào – ra duy nhất cho mỗi trạng thái của ATM.

Bảng các chuỗi kiểm thử cho mỗi trạng thái chuyển tiếp trong mô hình FSM của ATM:

Test Case_ID Test trạng thái chuyển tiếp Đầu vào (Input)

Đầu ra mong đợi (Expected output) Chuỗi chuyển tiếp trạng thái (Transition Sequence) TC1 T1: S0->S1 Card(pin,sb,cb), Pin!=pin

Enter pin, wrong pin, Re-enter pin,

Prompt for pin.

T1, T2

TC2 T2: S1->S1

Card(pin,sb,cb), Pin!=pin

Enter pin; wrong pin, Re-enter pin, Prompt for pin; Eject card;

T1, T2, T3

TC3 T3: S1->S8

Card(pin,sb,cb), Pin!=pin

Enter pin; wrong pin; Eject card; T1, T3 TC4 T4:S1->S2 Card(pin,sb,cb), Pin=pin Enter pin; Select a language; T1, T4, T23 TC5 T5: S2->S3 Card(pin,sb,cb), Pin=pin, English, Cancel. Enter pin; Select a language; Menu English; T1, T4, T5, T24.

Eject card. TC6 T6: S2->S3 Card(pin,sb,cb), Pin=pin, Vietnamese, Cancel. Enter pin; Select a language; Menu Vietnamese; Eject card. T1, T4, T6, T24 TC7 T7: S3->S4 Card(pin,sb,cb), Pin=pin, English, Current, Done. Enter pin; Select a language; Menu Vietnamese; Eject card. T1, T4, T5, T7, T9, T24 TC8 T8: S3->S6 Card(pin,sb,cb), Pin=pin, English, Saving, Done. Enter pin; Select a language; Menu English; Eject card. T1, T4, T5, T8, T10, T24. TC9 T9: S4->S3 Card(pin,sb,cb), Pin=pin, Vietnamese, Current, Done. Enter pin; Select a language; Menu Vietnamese; Eject card. T1, T4, T6, T7, T9, T24 TC10 T10:S6->S3 Card(pin,sb,cb), Pin=pin, Vietnamese, Saving, Done. Enter pin; Select a language; Menu Vietnamese; Eject card. T1, T4, T6, T8, T10, T24. TC11 T11:S4->S5 Card(pin,sb,cb), Pin=pin, English, Current, Balance(English) Enter pin; Select a language; Menu English; (English,cb); T1, T4, T5, T7, T11

TC12 T12:S4->S5 Card(pin,sb,cb), Pin=pin, Vietnamese, Current, Balance(Vietnamese) Enter pin; Select a language; Menu Vietnamese; (Vietnamese,cb); T1, T4, T6, T7, T12 TC13 T13:S4->S5 Card(pin,sb,cb), Pin=pin, English, Current, Deposit(d). Enter pin; Select a language; Menu English;

Một phần của tài liệu (LUẬN văn THẠC sĩ) mô hình hóa và kiểm thử máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn (FSM FINITE state machines testing) (Trang 67)

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

(88 trang)