Dấu vết và giới hạn

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu ứng dụng NModel” trong việc phát triển hệ thống nhúng thời gian thực (Trang 43 - 44)

CHƢƠNG 2 TỔNG QUAN VỀ HỆ THỐNG NHÚNG

3.2. Hệ thống với các mô hình hữu hạn

3.2.4.2. Dấu vết và giới hạn

Để kết nối Impl tới test runner thì bản khai thác kiểm thử (test harness3) phải đƣợc viết. Ta phải hiểu cách test suite đƣợc biểu diễn trong tệp tin đƣợc viết bởi chƣơng trình sinh test.

Công cụ otg lƣu trữ các test suite trong các tệp văn bản. Mỗi test case trong một tập test suite là một dấu vết (trace) - văn bản biểu diễn một đƣờng chạy chƣơng trình. Một dấu vết không đƣợc thể hiện trong mã C#, mặc dù nó giống nhƣ mã (code). Một dấu vết là một chuỗi các hành động. Mỗi hành động

đƣợc thể hiện nhƣ một term – một cấu trúc dữ liệu mà các công cụ sử dụng để

biểu diễn các hành động. Cú pháp của các term này rất dễ hiểu, nhƣng khác với

cú pháp của các cuộc gọi phƣơng thức C#. Công cụ sử dụng các term bởi vì chúng dễ làm việc hơn với văn bản chƣơng trình. Kiểm thử viên phải làm việc

với các term trong mã của bản khai thác kiểm thử (test harness).

1 Hệ thống đóng (Closed system) là hệ thống mà tất cả các hành động là xác định và có thể điều khiển 2 Test runner là một lệnh hoàn chỉnh tham chiếu đối với otg

Hầu hết mọi hành động tƣơng ứng với một cuộc gọi phƣơng thức nhƣng không phải tất cả đều nhƣ vậy. Mỗi cuộc gọi phƣơng thức tƣơng ứng với hai hành động, ví dụ:

ClientReceive_Start(),

ClientReceive_Finish(double("100")),

Hành động đầu tiên, đƣợc gọi là hành động bắt đầu, nó là một lời gọi phƣơng thức. Hành động thứ hai, hành động kết thúc, nó là sự trả lại phƣơng thức bao gồm giá trị trả về mong đợi đƣợc tính bởi MP, xuất hiện bên trong dấu ngoặc đơn trong thuật ngữ. Cặp các hành động này đƣợc gọi là một hành động chia tách (split action). Bất kỳ phƣơng thức hành động nào có đầu ra (một giá trị trả về hoặc đầu ra C# hoặc các tham số byref) phải đƣợc mô hình hóa nhƣ một hành động chia tách. Hai hành động trong MP là không cần phải code mà các công cụ tự động tạo ra các hành động chia tách từ mọi phƣơng thức hành động với các kết quả đầu ra (sử dụng tùy chọn mpv

combineActions để hiển thị cả hai hành động trong mỗi cặp).

Việc mô hình hóa hai hành động riêng biệt là rất cần thiết bởi vì Impl có thể không thực hiện hành động kết thúc. Hành động bắt đầu là có thể kiểm soát; test harness có thể luôn luôn gây ra Impl để thực thi cuộc gọi phƣơng thức. Nhƣng hành động kết thúc có thể quan sát đƣợc; test harness có thể chỉ chờ việc trả lại phƣơng thức. Nếu Impl bị sự cố hoặc bị treo, thì phƣơng thức sẽ không trả lại và hành động kết thúc sẽ không xảy ra. Test runner chỉ ra rằng đây là những thất bại.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu ứng dụng NModel” trong việc phát triển hệ thống nhúng thời gian thực (Trang 43 - 44)

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

(74 trang)