Công cụ SPIN

Một phần của tài liệu Kết hợp phương pháp kiểm chứng mô hình và các kỹ thuật kiểm thử phần mềm làm tăng độ tin cậy của hệ thống phần mềm (Trang 47)

Công cụ kiểm chứng SPIN được phát triển tại phòng thí nghiệm Bell Labs từ những năm 1980 của thế kỷ trước, và ngày nay nó vẫn được sử dụng rộng rãi. Công cụ tiếp tục được phát triển trong nhiều năm, thu hút nhiều nhóm người dùng trong cả lĩnh vực học thuật và công nghiệp. Năm 2002, SPIN được Hiệp hội máy tính Mỹ (Association for Computing Manchinery- ACM) trao Phần thưởng Hệ thống phần mềm (Software System Award) cho những cống hiến của nó với nền khoa học [6].

Hiện nay, công cụ SPIN đã phát triển đến phiên bản 6.2.7 được cập nhật vào ngày 02/03/2014 cùng với giao diện iSPIN phiên bản 1.1.1 cập nhật vào ngày 22/02/2014. Phiên bản iSPIN cho phép người dùng sử dụng SPIN với giao diện đồ họa trên hệ điều hành Windows.

Công cụ iSPIN cung cấp cho chúng ta các chức năng chính để kiểm chứng một chương trình Promela. Đó là các chức năng về kiểm tra cú pháp của chương trình, kiểm tra sự dư thừa trong chương trình, thiết lập bảng biểu tương ứng, vẽ mô hình automat của chương trinh; mô phỏng, mô phỏng ngẫu nhiên, mô phỏng tương tác, mô phỏng theo hướng dẫn – dùng để chạy lại các phản ví dụ và định vị lỗi; kiểm chứng một chương trình, sinh một bộ kiểm chứng, biên dịch bộ kiểm chứng, thực thi việc kiểm chứng và một số tùy chọn khác.

Hình 4.6 mô tả giao diện chính cùng các chứ cnăng của công cụ iSPIN. Trong đó có các chức năng là Edit/ View, Simulate/ Replay, Verification, Swarm Run, Help, Save Session, Restore Session và Quit. Ở màn hình Edit/ View có các chức năng thông thường như là Open – mở một tệp tin Promela plm, ReOpen – mở lại một tệp tin, Save – lưu tệp tin, Save as – lưu tệp tin với tên khác, Find – tìm kiếm trong tệp tin đang mở. iSPIN cũng cung cấp cho người dùng chức năng Syntax Check – kiểm tra cú pháp của tệp tin, Redundant Check – kiểm tra tính dư thừa trong các tệp tin Promela, Symbol Table – hiển thị bảng các biểu tượng được dùng, Automata View – chức năng hiển thị automata của chương trình (chức năng này chỉ sử dụng được khi cài thêm phần mềm Graphviz).

Hình 4.7. Giao diện khung làm việc Simulate/ Replay

Hình 4.7 mô tả các chức năng của màn hình Simulate/ Replay, màn hình này cho phép người dùng mô phỏng hoạt động và trạng thái của các biến, các kênh trong chương trình Promela. iSPIN có ba chức năng mô phỏng chính là: Random Simulation, Interactive Simulation và Guided Simulation. Random Simulation là cách dễ dàng nhất để mô phỏng một mô hình của Promela, mỗi lần chạy mô phỏng mới có thể sinh ra các loại thực thi khác nhau. Interaction Simulation dùng để giải quyết cho tất cả trạng thái không đơn định của mô hinh. Guide Simulation được dùng để mô phỏng các phản ví dụ đã được sinh ra trong quá trình kiểm chứng (Verification) và định vị được lỗi của mô hình. Ngoài ra, iSPIN còn cung cấp thêm một số điều kiện mở rộng khác cho quá trình mô phỏng.

Hình 4.8. Giao diện khung làm việc Verification

Hình 4.8 mô tả các chức năng trên màn hình Verification. iSPIN cung cấp cho người dùng các lựa chọn về kiểm tra tính an toàn (safety), tính hoạt động được

(liveness), các tuỳ chọn thêm về các lưu trữ dữ liệu, có sử dụng các Never Claim hay không, các tuỳ chọn về tìm kiếm để nâng cao khả năng đánh giá mô hình và rút gọn thời gian, cũng như không gian bộ nhớ khi kiểm chứng mô hình. Kiểm chứng tính an toàn của mô hình, iSPIN hỗ trợ kiểm chứng ba điều kiện: kiểm tra tính không hợp lệ của trạng thái kết thúc – mô hình có bị rơi vào trạng thái khoá chết hay không; kiểm tra xem các hàm assertion có bị vi phạm hay không; kiểm tra các kênh gửi/ nhận dữ liệu; và người dùng có thể chọn một hay nhiều tuỳ chọn. iSPIN hỗ trợ kiểm chứng tính hoạt động được của mô hình với các tuỳ chọn: kiểm chứng với các chu kỳ không được thực thi (non-progress cycles); kiểm chứng với các chu kỳ chấp nhận được (acceptance cycles); và tuỳ chọn kiểm chứng với ràng buộc công bằng yếu (enforce weak fairness constraint). iSPIN cũng cung cấp cho người dùng chức năng kiểm chứng theo các Never Claim với tuỳ chọn mặc định là không dùng never claim, người dùng có thể lựa chọn việc dùng các claim đã định nghĩa trong mô hình.

Một phần của tài liệu Kết hợp phương pháp kiểm chứng mô hình và các kỹ thuật kiểm thử phần mềm làm tăng độ tin cậy của hệ thống phần mềm (Trang 47)