Bao phủ mô hình máy hữu hạn trạng thái

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 53 - 55)

Chƣơng 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

2.8. bao phủ mô hình máy hữu hạn trạng thái

Khả năng bao phủ của mô hình là khả năng mà bộ kiểm thử do nó sinh ra có thể lường trước được tất cả các trường hợp trong thực tế hoạt động của hệ thống. Tuy nhiên vẫn chưa có nghiên cứu cụ thể nào về hiệu quả đầy đủ của các thuật toán bao phủ cho các mô hình xác định đường đi qua tất cả các trạng thái hay tất cả các chuyển dịch, đặc biệt là mô hình máy trạng thái.

2.8.1. Một số đặc trƣng của máy hữu hạn trạng thái.

Trong một mô hình máy hữu hạn trạng thái, các nhân tố cấu thành máy hữu hạn trạng thái bao gồm: trạng thái (state), input, output, chuyển trạng thái (transtion).

Trạng thái (state): Là sự mô tả trừu tượng tình thế trong vòng đời của một thực thể hệ thống. Trong các trạng thái lại phân thành trạng thái khởi đầu, trạng thái kết thúc, và trạng thái trung gian.

Sự kiện (event): Là một đầu vào cụ thể tại một thời điểm như một thông báo, một lời gọi hay một yêu cầu,…

Hành động (action): là một hoạt động, một đầu ra theo sau một sự kiện. Chuyển trạng thái (transittion): Là cặp hai trạng thái thể hiện sự thay đổi trạng thái từ trạng thái này sang trạng thái kia so sự kiện gây ra.

Tiền định: Điều kiện ràng buộc lên việc chuyển trạng thái, thường gắn với một sự kiện và trạng thái xuất phát.

Tùy thuộc vào bài toán cụ thể được đưa ra mà một máy hữu hạn trạng thái có thể đầy đủ các yếu tố ở trên, hoặc thiếu một vài nhân tố nào đó.

Trong bài toán kiểm thử dựa trên mô hình FSM chúng ta thường coi vấn đề input như một phần của vấn đề trạng thái và chuyển trạng thái. Giả sử rằng tất cả các input cần phải được xử lý một cách chính xác thông qua một số quá trình chuyển trạng thái của FSM, thậm chí cả khi đầu vào không hợp lệ được mong đợi là sẽ được xử lý chính xác mà không gây lỗi hệ thống hoặc các vấn đề khác thông qua các cách thức dưới đây:

- Bỏ qua những input không hợp lệ như đứng yên ở cùng một trạng thái đối với những trường hợp input không hợp lệ đó.

- Xử lý trực tiếp input không hợp lệ như xuất ra thông báo lỗi thông qua việc điều khiển những ngoại lệ và những sự chuyển trạng thái liên quan. Đối với các giá trị output, chúng ta cũng không giải quyết trực tiếp những vấn đề về output mà coi nó là một phần của vấn đề kiểm thử chuyển trạng thái như: sự chuyển tiếp đưa ra những thông tin không mong đợi về sự thiếu, thừa, lỗi đầu ra thì sẽ xác định sự chuyển tiếp là sự chuyển tiếp lỗi.

Để kiểm thử xem hệ thống máy hữu hạn trạng thái hoạt động có đầy đủ và vững chắc không, kiểm thử cần bao phủ được các nhân tố cấu thành hệ thống trong mối quan hệ với các nhân tố khác, đó là: trạng thái, sự kiện, chuyển trạng thái, hành động. Do một số nhân tố gắn kết với nhau trong mô hình, nên khi bao phủ được yếu tố này thì đồng thời cũng bao phủ được yếu tố kia. Nhưng không phải các yếu tố đều được gắn với nhau, trong trường hợp này cần phải kiểm thử độc lập. Chẳng hạn, có thể đạt được tiêu chuẩn bao phủ tất cả các trạng thái nhưng lại không bao phủ tất cả các chuyển trạng thái. Tất nhiên, với các mô hình nhỏ sẽ cho phép bao phủ tất cả trạng thái. Bởi vậy, việc biểu diễn đồ thị của máy trạng thái là một đồ thị có hướng, nên với các bài toán lớn hơn, ta phải biết lựa chọn từ rất nhiều thuật toán tìm bao phủ cạnh của đồ thị đó là một phương pháp tốt để áp dụng cho bài toán mô hình hóa ATM ở trên.

Tuy nhiên với một hệ thống máy hữu hạn trạng thái đã cho, liệu chúng ta có thể tìm được đường đi qua tất cả các trạng thái và đi qua tất cả các đường chuyển trạng thái của nó hay không? Nhưng câu trả lời cho những trường hợp tổng quát là không, nhưng với máy trạng thái hữu hạn lại là có thể. Sau đây là một số nội dung kiểm tra một máy hữu hạn trạng thái là đúng đắn và đầy đủ:

 Có ít nhất một trạng thái khởi đầu với các chuyển tiếp trạng thái đi ra.

 Có ít nhất một trạng thái kết thúc với các chuyển tiếp trạng thái đi vào.

 Mỗi trạng thái đều có thể đến được từ trạng thái khởi đầu.

 Mỗi sự kiện và hành động được xác định phải xuất hiện trong ít nhất một chuyển tiếp trạng thái.

 Mỗi trạng thái không phải là khởi đầu hay kết thúc có ít nhất một chuyển trạng thái đến và một chuyển trạng thái đi.

 Tên của trạng thái, hành động và sự kiện phải rõ ràng, đủ nghĩa trong khung cảnh của ứng dụng.

Bên cạnh đó, những lỗi dưới đây cần được kiểm tra trước khi kiểm thử như: thiếu chuyển trạng thái, chuyển trạng thái sai, thiếu sự kiện hay sự kiện sai, thiếu hành động hay hành động sai, trạng thái thừa hay trạng thái dừng không phải là kết thúc. Vì vậy, trong kiểm thử dựa trên FSM tập trung vào những vấn đề về trạng thái và chuyển trạng thái. Input được sử dụng chính cho sự cập nhật và output được sử dụng chính cho sự kiểm tra kết quả. Do vậy, để kiểm thử mô hình hóa FSM của ATM thì cần thiết bao nhiêu ca kiểm thử? Căn cứ vào đâu để biết được số ca kiểm thử đã đủ hay chưa? Do đó, ở trong nghiên cứu này sẽ được sử dụng hai chỉ số để đo độ bao phủ là: Độ bao phủ trạng thái (state coverage) và độ bao phủ chuyển trạng thái (transition coverage).

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 53 - 55)

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

(88 trang)