Tải bản đầy đủ (.pdf) (26 trang)

Nghiên cứu kỹ thuật kiểm thử tự động dựa trên mô hình áp dụng trong hệ thống nhúng (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 26 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
---------------------------------------

PHẠM THỊ NGỌC

NGHIÊN CỨU KỸ THUẬT KIỂM THỬ TỰ ĐỘNG DỰA TRÊN
MƠ HÌNH, ÁP DỤNG TRONG HỆ THỐNG NHÚNG

Chuyên ngành: Hệ thống thông tin
Mã số: 8.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI – 2019


Luận văn được hồn thành tại:
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG

Người hướng dẫn khoa học: TS. Đỗ Thị Bích Ngọc

Phản biện 1: PGS.TS Nguyễn Hà Nam
Phản biện 2: PGS.TS Trần Đăng Hưng

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Cơng
nghệ Bưu chính Viễn thơng
Vào lúc: 9 giờ 00 ngày 19 tháng 01 năm 2019
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Cơng nghệ Bưu chính Viễn thông



1

MỞ ĐẦU
Xuất hiện từ những năm đầu thập niên 1960, hệ thống nhúng đang dần trở thành một
ngành phát triển mạnh mẽ trong lĩnh vực công nghệ thông tin (CNTT), với những ứng dụng
rộng rãi trong công nghiệp và đời sống.
Sự tăng trưởng của hệ thống nhúng trong ngành công nghiệp dẫn tới một q trình
phát triển cơng nghệ dựa trên mơ hình (model based), mang lại nhiều thuận lợi cho sự phát
triển của công nghệ tự động. Các kỹ thuật dựa trên mơ hình như MATLAB/ Simulink,
Statemate, MatrixX hoặc LabView là những cơng cụ cụ thể và có cơ chế mạnh mẽ nhằm hỗ
trợ xử lý các tín hiệu liên tục và các loại dữ liệu quan trọng nhất trong lĩnh vực điều khiển
tự động.
Sự phát triển của hệ thống nhúng kéo theo những yêu cầu phát triển của hoạt động
kiểm thử. Thông thường, cách phổ biến để kiểm thử cho hệ thống nhúng nói chung là chạy
giả lập phần cứng trên phần mềm mô phỏng. Kiểm thử tự động là một giải pháp hữu hiệu
nhằm nâng cao tính chính xác và hiệu quả, cũng như giảm kinh phí và rút ngắn thời gian
trong quá trình kiểm thử các sản phẩm phần mềm nói chung và các hệ thống nhúng nói
riêng. Kiểm thử dựa trên mơ hình đang được xem là một phương pháp kiểm thử có khả năng
tự động hóa cao.
Kiểm thử dựa trên mơ hình là một phương pháp kiểm thử, trong đó các ca kiểm thử
được sinh ra từ mơ hình đặc tả hành vi của hệ thống đang được kiểm thử.
Ngoài ra,việc đảm bảo chất lượng dựa trên phát triển mơ hình, đặc biệt là thử nghiệm,
vẫn cịn ít được hỗ trợ. Đặc biệt hệ thống nhúng yêu cầu cao về chất lượng, cần kiểm thử
ngay từ mơ hình, việc mơ hình hóa & mơ phỏng hệ thống nhúng được sử dụng khi hệ vật lý
khơng tồn tại, tốn thời gian hoặc chi phí để xây dựng, cho phép quan sát quá trình, đáp ứng
động của hệ thống trước khi thực nghiệm trên thiết bị thực, đây chính là cơng cụ hữu hiệu
cho việc thiết kế, nghiên cứu, với chi phí thấp, có thể dễ dàng thay đổi.
Các cơng cụ mơ hình hố (như Simulink) hay được dùng để thiết kế các hệ thống
nhúng. Simulink được tích hợp vào Matlab như một cơng cụ để mơ phịng hệ thơng, giúp
người sử dụng phân tích và tổng hợp hệ thống một cách trực quan. Trong Simulink, hệ

thống được mô tả dưới dạng sơ đồ khối. Với dạng sơ đồ khối này, ta có thể quan sát các đáp
ứng thời gian của hệ thống với nhiều tín hiệu vào khác nhau như: tín hiệu bậc thang, tín hiệu
sinus, xung chữ nhật, tín hiệu ngẫu nhiên,.. bằng cách thực hiện mơ phỏng. Kết quả mơ
phỏng có thể được xem theo thời gian thực trong môi trường Simulink hoặc Matlab. Tất cả


2

các hàm trong Matlab đều cố thể truy cập từ Simulink, và ngược lại, các kết quả tìm được
trong Simulink đều có thể sử dụng và khái thác trong mơ trường Matlab.
Với mục đích tìm hiểu những kỹ thuật kiểm thử mới áp dụng vào hệ thống nhúng, tôi
nhận thấy việc nghiên cứu các phương pháp kiểm thử tự động dựa trên mơ hình trong hệ
thống nhúng là một vấn đề rất cần thiết hiện nay.
Luận văn sẽ được cấu trúc với các chương như sau:
Chương 1 : Tổng quan về hệ thống nhúng và kiểm thử trong hệ thống nhúng.
Chương 2 : Phương pháp kiểm thử dựa trên mô hình
Chương 3: Thử nghiệm và đánh giá
Luận văn sẽ khảo sát bài tốn kiểm thử dựa trên mơ hình áp dụng trong hệ thống
nhúng, đề xuất một phương pháp, một mơ hình kiểm thử phù hợp với quy trình hiện tại.
Đồng thời phương pháp đề xuất sẽ được phân tích và đánh giá bằng một số phương pháp
đánh giá thông dụng trên tập dữ liệu đã có sẵn.


3

Chương 1 – TỔNG QUAN VỀ HỆ THỐNG NHÚNG
VÀ KIỂM THỬ TRONG HỆ THỐNG NHÚNG.
1.1. Hệ thống nhúng
Hệ thống nhúng (embedded system) được định nghĩa là một hệ thống chuyên dụng,
thường có khả năng tự hành và được thiết kế tích hợp vào một hệ thống lớn hơn để thực

hiện một chức năng chuyên biệt nào đó.
Hệ thống nhúng là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng
vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng
và phần mềm phục vụ các bài tốn chun dụng trong nhiều lĩnh vực cơng nghiệp, tự động
hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn
định và có tính năng tự động hố cao.
1.2. Đặc điểm của hệ thống nhúng
Hệ thống nhúng thường có một số đặc điểm chung như sau:


Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng

chứ không phải đóng vai trị là các hệ thống máy tính đa chức năng. Một số hệ thống đòi hỏi
ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an tồn và tính ứng dụng; một số
hệ thống khơng địi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng
để giảm thiểu chi phí sản xuất.


Một hệ thống nhúng thường khơng phải là một khối riêng biệt mà là một hệ

thống phức tạp nằm trong thiết bị mà nó điều khiển.


Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu

trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa. Phần
mềm thường chạy với số tài nguyên phần cứng hạn chế: khơng có bàn phím, màn hình hoặc
có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp.
Với những đặc điểm như trên, việc thử nghiệm, xác định lỗi trong hệ thống nhúng
gặp nhiều khó khăn. Số lượng trường hợp thử nghiệm lớn, địi hỏi phải có phương pháp và

mơ hình kiểm thử phù hợp.
 Xu hướng phát triển của các hệ thống nhúng
Sau máy tính lớn (mainframe), PC và Internet thì hệ thống nhúng đang là làn sóng
đổi mới thứ 3 trong công nghệ thông tin và truyền thông.
Xu hướng phát triển của các hệ thống nhúng hiện nay là:


4

Phần mềm ngày càng chiếm tỷ trọng cao và đã trở thành một thành phần cấu tạo nên
thiết bị bình đẳng như các phần cơ khí, linh kiện điện tử, linh kiện quang học…
• Các hệ nhúng ngày càng phức tạp hơn đáp ứng các yêu cầu khắt khe về thời gian
thực, tiêu ít năng lượng và hoạt động tin cậy ổn định hơn.
• Các hệ nhúng ngày càng có độ mềm dẻo cao đáp ứng các yêu cầu nhanh chóng đưa
sản phẩm ra thương trường, có khả năng bảo trì từ xa, có tính cá nhân cao.
• Các hệ nhúng ngày càng có tính thích nghi, tự tổ chức cao có khả năng tái cấu hình
như một thực thể, một tác nhân.
• Các hệ nhúng ngày càng có khả năng tiếp nhận năng lượng từ nhiều nguồn khác
nhau (ánh sáng, rung động, điện từ trường, sinh học….) để tạo nên các hệ thống tự tiếp nhận
năng lượng trong quá trình hoạt động.
1.3. Lý thuyết kiểm thử
1.3.1.

Mục tiêu kiểm thử

Kiểm thử nhằm xác định sự khác biệt giữa các hành vi dự kiến và hành vi thực sự của
một hệ thống. Mục đích của kiểm thử là phát hiện lỗi, nhằm tìm ra các sự khác biệt có thể
nhận diện giữa hành vi của hệ thống được cài đặt và hành vi dự định của hệ thống thử
nghiệm. Mục tiêu của quá trình kiểm thử được xác định nhằm:



Tìm và ngăn ngừa các lỗi



Đạt được sự tự tin và cung cấp thông tin về mức độ chất lượng.



Đảm bảo rằng kết quả cuối cùng đáp ứng các yêu cầu kinh doanh và người sử

dụng.
Kiểm thử sẽ giúp hoàn thiện các ứng dụng phần mềm hoặc sản phẩm so với yêu cầu
kinh doanh và người sử dụng. Đây là giai đoạn rất quan trọng để đảm bảo hệ thống hoạt
động tốt và theo các thông số kỹ thuật.
1.3.2.

Nguyên tắc kiểm thử

Để kiểm thử đạt hiệu quả thì khi tiến hành kiểm thử hệ thống cần phải tuân thủ một
số nguyên tắc sau:
 Nguyên tắc 1: Kiểm thử chỉ ra sự hiện diện của lỗi.
 Nguyên tắc 2: Kiểm thử toàn bộ, đầy đủ là không thể.
 Nguyên tắc 3: Cần bắt đầu giai đoạn kiểm thử càng sớm càng tốt.
 Nguyên tắc 4: Phân nhóm lỗi để xác định một số module tập trung lỗi nhiều nhất.
 Nguyên tắc 5: Kịch bản kiểm thử cần được cập nhật


5


 Nguyên tắc 6: Kiểm thử được thực hiện trong những bối cảnh khác nhau.
1.3.3.

Nội dung các nhiệm vụ trong quá trình kiểm thử

 Lập kế hoạch kiểm thử:
-

Xác định yêu cầu kiểm tra

-

Khảo sát rủi ro

-

Xác định chiến lược kiểm tra

-

Xác định nhân lực, vật lực

-

Tổng hợp và tạo các bản kế hoạch kiểm tra

-

Xem xét các kế hoạch kiểm tra


 Chuẩn bị môi trường kiểm thử
-

Thiết kế hệ thống kiểm thử

-

Thiết kế chương trình kiểm thử và dữ liệu kiểm thử

-

Thiết đặt các công cụ kiểm thử

 Tiến hành kiểm thử:
 Kiểm tra kết quả của kiểm thử:
 Phân tích hỏng hóc, phân tích hiệu năng:
 Sửa chữa và cải tiến tài liệu, chương trình gốc:
 Hồn tất quá trình kiểm thử :
-

Quản lý tiến trình kiểm thử và báo cáo

-

Kiểm soát dữ liệu liên quan tới hỏng hóc

-

Xem lại tài liệu vận hành ngược dịng


1.4. Kiểm thử tự động
Kiểm thử tự động
Sử dụng một công cụ kiểm thử tự động để thực thi các ca kiểm thử thay cho con
người được goi là kiểm thử tự động. Cơng cụ kiểm thử tự động có thể lấy dự liệu từ file bên
ngoài (excel, csv, …) nhập vào ứng dụng, so sánh kết quả mong đợi với kết quả thực tế và
xuất ra báo cáo kết quả kiểm thử.
Ưu điểm và nhược điểm


Ưu điểm:
-

Độ tin cậy cao (Reliability)

-

Khả năng lặp (Repeatability)


6

-

Khả năng tái sử dụng (Reusability)

-

Nhanh (Fast)

-


Chi phí thấp (Cost Reduction)



Nhược điểm :
-

Khó mở rộng, khó bảo trì (Poor scalability and maintainability)

-

Khả năng bao phủ thấp (Low coverage)

-

Vấn đề công cụ và nhân lực (Technology vs. people issues)
Tầm quan trọng của kiểm thử tự động.

- Tiết kiệm tiền bạc và thời gian: Nhận định này đặc biệt đúng nếu xét trong giai đoạn
bảo trì của các dự án lớn. Mỗi tuần chúng ta phải thực hiện regression test từ 1 đến 2 lần với
số lượng test case rất lớn trong 1 đến 2 ngày. Gần như không thể thực hiện cách thủ công,
trong khi với kiểm thử tự động chúng ta hồn tồn có thể với nguồn nhân lực vơ cùng khiêm
tốn.
- Chính xác hơn: Nhờ độ ổn định cao, kiểm thử tự động có thể thực thi các ca kiểm
thử với độ chính xác cao hơn.
- Độ bao phủ cao: Như đã nói ở trên, khi sử dụng kiểm thử tự động, chúng ta có thể
thực thi số lượng lớn các ca kiểm thử trong một thời gian ngắn. Điều này giúp chúng ta tăng
độ bao phủ trong giai đoạn kiểm thử hồi quy (một ví dụ điển hình).
- Hồn thành các cơng việc mà con người khơng thể làm được: Nếu chúng ta muốn

thực thi load test, performance test, thì kiểm thử tự động là cách duy nhất.


7

Chương 2- PHƯƠNG PHÁP KIỂM THỬ DỰA TRÊN MƠ HÌNH
2.1. Kiểm thử dựa trên mơ hình
2.1.1.

Kiểm thử dựa trên mơ hình

Kiểm thử dựa trên mơ hình là một dạng kiểm thử dựa trên hành vi của các mơ hình,
nó mã hóa các hành vi dự tính của một hệ thống thử nghiệm và/hoặc hành vi trong mơi
trường của nó. Các trường hợp kiểm thử được tạo từ một trong các mơ hình hoặc là sự kết
hợp của chúng và được thực hiện trên hệ thống thử nghiệm. Theo phương pháp truyền
thống, quá trình kiểm thử bắt đầu bằng việc sử dụng các mơ hình thường khơng có cấu trúc,
khơng tái sử dụng, khơng được tài liệu hóa, thiếu logic hợp lý cho thiết kế kiểm thử, và dựa
trên kinh nghiệm, kỹ năng của các kỹ sư. Với ý tưởng các thực thể sẽ được mã hóa tường
minh vào hệ thống thử nghiệm dự kiến và các hành vi môi trường khả dĩ có thể giúp giảm
thiểu các vấn đề trên.
Các ý tưởng về kiểm thử dựa trên mơ hình được gọi là kiểm thử dựa trên đặc tả.
Trong thập kỷ vừa qua, ở lĩnh vực nghiên cứu và trong ngành cơng nghiệp,các phương pháp
phát triển dựa trên mơ hình và kiểm thử làm trung tâm, cũng như mức độ phát triển của
công nghệ từ lĩnh vực kiểm thử đã làm tăng sự quan tâm về chủ đề. Dias-Neto đã phân tích
271 tài liệu và xác định được 219 cách tiếp cận kiểm thử dựa trên mơ hình. Điều này cản trở
việc áp dụng công nghệ kiểm thử dựa trên mô hình trong cơng nghiệp và hạn chế cải tiến
các phương pháp tiếp cận kiểm thử dựa trên mơ hình.
Kiểm thử dựa trên mơ hình bao gồm các q trình và các kỹ thuật nhằm: tạo các dẫn
xuất tự động của các trường hợp kiểm thử trừu tượng từ các mô hình trừu tượng, tạo ra các
bài kiểm thử cụ thể từ các kiểm thử trừu tượng,và thực thi thủ công hoặc tự động các trường

hợp kiểm thử cụ thể.
2.1.2.

Quy trình kiểm thử dựa trên mơ hình

Q trình kiểm thử dựa trên mơ hình được bắt đầu bằng việc xác định u cầu của hệ
thống từ đó xây dựng mơ hình dựa vào các yêu cầu và chức năng của hệ thống. Việc xây
dựng mơ hình cịn phải dựa trên các yếu tố dữ liệu đầu vào và đầu ra. Mô hình này được sử
dụng để sinh ra các ca kiểm thử. Chúng ta có thể biết kết quả đầu ra mong đợi từ mơ hình
hoặc từ quy định chuẩn. Khi chạy kich bản và kết quả thu được sẽ so sánh với kết quả mong
đợi. từ đó quyết định hành động tiếp theo như sửa đổi mơ hình hoặc dừng kiểm thử,…
Các bước để thực hiện kiểm thử dựa trên mơ hình:


8

-

Xây dựng mơ hình dựa trên các u cầu và chức năng của hệ thống.

-

Tạo đầu ra dự kiến từ mơ tả của bài tốn

-

Chạy kịch bản kiểm thử

-


So sánh kết quả đầu ra thực tế với kết quả đầu ra dự kiến

-

Quyết định hành động tiếp theo (Sửa đổi mơ hình, tạo thêm ca kiểm thử, dừng

kiểm thử, đánh giá chất lượng phần mềm)
Trong giới hạn luận văn, học viên sẽ giới thiệu các thuật ngữ và miêu tả chung q
trình của kiểm thử dựa trên mơ hình.
2.1.3.

Thuận lợi và khó khăn của kiểm thử dựa trên mơ hình

 Thuận lợi
Trong quá trình phát triển hệ thống các kiểm thử viên thường thực hiện cơng việc của
mình bằng phương pháp truyền thống nên thường thiếu thời gian để thực hiện kiểm thử,
hoặc giá thành sản phẩm khi hoàn thành thường cao. Kiểm thử mơ hình sẽ khắc phục được
một số nhược điểm đó:
-

Do q trình sinh ca kiểm thử là tự động vì vậy mà rút ngắn thời gian phát triển

hệ thống.
-

Đặc biệt tuy chi phí cho việc xây dựng mơ hình lớn nhưng điều này sẽ được khấu

trừ do chi phí bảo dưỡng thấp hơn nhiều khi hệ thống được hoạt động.
-


Quá trình sinh các ca kiểm thử được thực hiện một cách tự động nên sinh ra

nhiều ca kiểm thử và phát hiện nhiều lỗi.
-

Sớm phát hiện lỗi và sự không rõ ràng trong đặc điểm kỹ thuật và thiết kế vì vậy

sẽ tăng thời gian giải quyết vấn đề trong kiêm thử.
-

Tự động tạo và kiểm tra các ca kiểm thử trùng nhau hoặc không hữu hiệu.

-

Khi một yêu cầu của hệ thống thay đổi thì việc thay đơi các ca kiểm thử đơn giản

hơn, vì chỉ cần thay đổi mơ hình của hệ thống.
 Khó khăn
Mặc dù có nhiều thuận lợi nhưng bên cạnh cũng có những trở ngại nhất định của
kiểm thử dựa trên mơ hình:
-

Do phải xây dựng mơ hình của hệ thống vậy nên người kiểm thử phần mềm phải

yêu cầu là những người có khả năng phân tích và thiết kế hệ thống.
-

Trong kiêm thử dựa trên mơ hình cơng việc quan trọng nhất là xây dựng mơ

hình. Việc xây dựng mơ hình cần được đầu tư thời gian, trí óc và tiền bạc.



9

2.2. Các vấn đề của quá trình kiểm thử dựa trên mơ hình
Các phương pháp kiểm thử dựa trên mơ hình thường bao gồm 6 vấn đề. Các vấn đề
phần lớn khơng hồn tồn độc lập với nhau: ví dụ, nếu kiểm thử liên quan với hệ thống liên
tục chứ khơng phải là một hệ thống rời rạc thì sẽ hạn chế lựa chọn mơ hình hóa mơ hình,
tiêu chí lựa chọn kiểm tra và công nghệ tạo trường hợp kiểm thử.

Hình 2.1: Các vấn đề của quá trình kiểm thử dựa trên mơ hình

Hình 2.3 giới thiệu tổng quan về các vấn đề của kiểm thử dựa trên mô hình. Các giải
pháp thay thế “A/B” ở các lá cho thấy các lựa chọn thay thế lẫn nhau, trong khi các đường
cong chỉ ra các lựa chọn thay thế không nhất thiết loại trừ lẫn nhau (ví dụ, một số cơng cụ
có thể sử dụng nhiều hơn một cơng nghệ để tạo kiểm thử, việc này khá phổ biến và để hỗ
trợ một số loại tiêu chí lựa chọn kiểm thử).
Bước 1 (xây dựng mơ hình) được thể hiện qua ba tham số trong danh mục đặc tả mơ
hình: phạm vi, các đặc điểm và mơ hình hóa mơ hình.
Bước 2 và 3 (lựa chọn tiêu chí kiểm thử và xây dựng đặc tả các trường hợp kiểm
thử) được phản ánh qua khối lựa chọn tiêu chí kiểm tra trong mục tạo kiểm thử.
Bước 4 (tạo kiểm thử) được thể hiện qua khối công nghệ trong mục tạo kiểm thử.


10

Bước 5 (thực hiện kiểm thử) được thể hiện bởi khối on/offline của mục thực thi
kiểm thử.
Các quan điểm khác nhau dẫn đến việc phân loại kiểm thử dựa trên mơ hình mà
khơng bắt đầu từ phương pháp, tất nhiên nó vẫn được chứng minh là đúng đắn. Ví dụ, có thể

phân loại dựa trên các đối tượng khác nhau được phát triển hoặc sử dụng trong quá trình
như: các mơ hình, các đặc tả kiểm thử, các trình điều khiển thử nghiệm, thuộc tính, kiểm
thử,.. Nguyên nhân cho quyết định sử dụng phương pháp như cơ sở vì dễ dàng phù hợp với
các hoạt động của phương pháp và do đó nó khơng phải là khái niệm phân loại đầy đủ. Tất
nhiên, khơng có nghĩa là phân loại khác cũng khơng có giá trị.
2.3. Lập mơ hình cho hệ thống
Mơ hình là một sự biểu đồ hóa mơ tả chi tiết hệ thống, đồng thời mô tả chi tiết các
khía cạnh, các đặc tính của hệ thống. Các mơ hình phải nhỏ so với kích thước của hệ thống,
rằng chúng ta có thể kiểm thử nó mà khơng mất quá nhiều chi phí, nhưng chúng phải đủ chi
tiết để mô tả thực tế và các đặc điểm cần kiểm thử.
Khi xây dựng mơ hình chúng ta cần thêm các trường hợp kiểm thử để xác định mơ
hình theo u cầu. sau đó chạy các trường hợp thử nghiệm tương tự, nhằm xác minh thêm
mức độ phủ của mơ hình.
2.3.1. Mơ hình kiểm thử trong Simulink
Mơ hình kiểm thử Simulink hay cịn gọi là Simulink Test cung cấp các cơng cụ nhằm
soạn thảo, quản lý và thực hiện các thử nghiệm có hệ thống, mơ phỏng dựa trên các mơ
hình, tạo code và mơ phỏng phần cứng vật lý. Nó bao gồm một khối Test Sequence cho
phép xây dựng các chuỗi kiểm tra và đánh giá mức độ phức tạp và một Trình quản lý kiểm
tra để quản lý và thực thi các kiểm tra.
Simulink test cho phép thực hiện các chức năng tương đương bao gồm các phần
mềm, bộ xử lý, và phần cứng thời gian thực trong vòng lặp. Ta có thể áp dụng các tiêu chí
pass/ fail bao gồm các độ phủ tuyệt đối, tương đối và có giới hạn trong vùng kiểm tra logic
và các điều kiện về thời gian.Việc thiết lập kịch bản giúp chúng ta có thể tùy chỉnh trong
q trình kiểm tra.
Ta có thể tạo các bộ khai thác kiểm thử để kiểm tra các thành phần trong mơ hình hệ
thống hoặc trong một mơ hình thử nghiệm riêng biệt. Sau đó có thể lưu trữ các trường hợp
thử nghiệm và kết quả của chúng, tạo ra một kho lưu trữ để xem xét và kiểm tra các lỗi, từ


11


đó tạo báo cáo, lưu trữ và tra cứu lại kết quả kiểm tra, chạy lại các kiểm tra không thành
công và gỡ lỗi các thành phần hệ thống đang thử nghiệm
2.3.2. u cầu/ đặc tả của mơ hình
Simulink cung cấp một mơi trường rất mạnh trong việc mơ hình hóa và mơ phỏng
các hệ thống và quy trình động. Trong nhiều hệ thống, các chức năng và chế độ phải thay
đổi phù hợp với các sự kiện có thể xảy ra và các điều kiện phát triển theo thời gian. Do đó,
mơi trường ứng dụng cần phải đáp ứng được sự phù hợp trong ngôn ngữ theo nhiều chế độ
và điều kiện phát triển. Ví dụ sau cho thấy cách để mơ hình một hệ thống truyền động ơ tơ
với Simulink.
 B1: Phân tích và vật lý hóa mơ hình
Mơ hình được thảo luận trong ví dụ này trực tiếp triển khai các khối dưới dạng các
hệ thống con. Mặt khác, tính logic và các quyết định được tạo ra trong trong thiết bị điều
khiển truyền dẫn được xây dựng theo các cơng thức chính xác. Vì vậy việc giám sát trạng
thái theo các sự kiện tương ứng với mối quan hệ quan trọng trong hệ thông và thực hiện các
hành động thích hợp khi chúng xảy ra.

Hình 2.2: Ví dụ sơ đồ khối hệ thống truyền lực

 B2: Mơ hình hóa
Việc mơ hình hóa được thực hiện trong Matlab. Các điều kiện ban đầu được tạo ra
trong không gian mơ hình. Hình vẽ thể hiện mức cao nhất của mơ hình. Chạy mơ phỏng mơ
hình, tham khảo các thành phần cấu trúc dữ liệu được tham chiếu đến.


12

Hình 2.3: Sơ đồ mơ hình hóa và kết quả mô phỏng động cơ truyền động

2.3.3. Tạo ca kiểm thử từ mơ hình

Tạo các ca kiểm thử dựa trên cấu trúc phân cấp mơ hình. Các mơ hình thường được
xây dựng bao gồm:


Nhóm tạo tín hiệu



Kiểm tra dữ liệu



Nhóm tạo tín hiệu ở phân cấp cao nhất của bộ phận thử nghiệm.

Sau khi mở mơ hình trong Simulink, thực hiện tạo các ca kiểm thử từ mơ hình.
Trong mỗi trường hợp thử nghiệm được tạo ra, cần chỉ định tiêu chí so sánh, tương
đương hoặc đường cơ sở, trước khi chạy thử nghiệm.
2.3.4. Đánh giá mức phủ của test case
Độ bao phủ test là tỉ lệ (tính theo %) các ca kiểm thử đã được thực hiện trên tổng số
các ca kiểm thử cần thiết. Nếu tỉ lệ này càng cao thì mơ hình càng được test kỹ. Cần phải cố
gắng thực hiện để đảm bảo mơ hình có độ phủ kiểm thử đat 100%.
Trong Simulink độ phủ testcase được đánh giá trên việc phân tích tồn bộ phạm vi
mơ hình và phân tích mã để đo lường sự hồn chỉnh trong mơ hình và mã được tạo ra. Nó áp
dụng các chỉ số chuẩn công nghiệp như quyết định, điều kiện, phạm vi điều chỉnh / quyết
định sửa đổi (MCDC) và phạm vi ranh giới quan hệ để đánh giá tính hiệu quả của thử
nghiệm mơ phỏng trong các mơ hình, phần mềm trong vịng lặp (SIL) và bộ xử lý - vịng lặp
(PIL). Chúng ta có thể sử dụng dữ liệu phủ bị thiếu để tìm những lỗ hổng trong kiểm thử,
những u cầu cịn bỏ sót hoặc những chức năng không mong muốn.



13

Độ phủ trong Simulink tạo ra các báo cáo tương tác cho biết số lượng các mơ hình
được kiểm thử, các hàm C/C ++, các hàm MATLAB và mã được tạo bởi Embedded Coder
đã được thực hiện. Từ đó có thể làm nổi bật kết quả kiểm thử tại các khối và hệ thống con
để xác định những khoảng trống trong thử nghiệm. Để đánh giá tính đầy đủ của q trình
kiểm thử, ta có thể tích lũy kết quả kiểm thử từ nhiều lần chạy thử nghiệm. Sau đó có thể áp
dụng bộ lọc để loại trừ các khối khỏi vùng phủ và định nghĩa mức độ phủ bị thiếu trong báo
cáo.


Tăng độ phủ kiểm thử cho mơ hình bằng cách khởi tạo đầu vào kiểm thử
Nếu các trường hợp kiểm thử không đạt được độ phủ nhất định thì cần phải tăng độ

phủ bằng cách tạo ra các đầu vào cho kiểm thử bắng cách sử dụng công cụ Simulink Design
Verifier. Ví dụ sau cho biết cách tăng độ phủ kiểm thử trong trường hợp cần khởi tạo các ca
kiểm thử bên ngoài. Đầu tiên cần xác định độ phủ ban đầu. Sau đó, tạo các ca kiểm thử mới,
thêm chúng vào bộ thử nghiệm, chạy thử nghiệm và tổng hợp độ phủ của bộ dữ liệu thử
nghiệm.


Quy trình tăng độ phủ kiểm thử
- Xác định độ phủ của mơ hình tương ứng với các ca kiểm thử ban đầu.
- Tạo thêm các ca kiểm thử bổ sung để đạt mức phủ cao hơn.
- Tạo các ca kiểm thử mới thêm vào tập thử nghiệm.
- Chạy tất cả các ca kiểm thử và tổng hơp lại mức phủ.


14


Chương 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
3.1. Cài đặt Matlab & Simulink toolbox
MATLAB, tên viết tắt của từ tiếng Anh MATrix LABoratory là một mơi
trường tính tốn số và lập trình, được thiết kế bởi cơng ty MathWorks. MATLAB là một
mơi trường mạnh dành cho các tính tốn khoa học. Nó tích hợp các phép tính ma trận và
phép tính số dựa trên các hàm cơ bản. Hơn nữa, cấu trúc đồ họa hướng đối tượng của
Matlab cho phép tạo ra hình vẽ chất lượng cao. MATLAB giúp đơn giản hóa việc giải quyết
các bài tốn tính tốn kĩ thuật so với các ngơn ngữ lập trình truyền thống như C, C++, và
Fortran. Ngày nay, Matlab trở thành một ngôn ngữ chuẩn được sử dụng rộng rãi trong nhiều
ngành và trên nhiều quốc gia trên thế giới.
Về mặt cấu trúc, Matlab gồm một cửa sổ chính và rất nhiều hàm viết sẵn khác
nhau. Các hàm trên cùng lĩnh vực ứng dụng được xếp chung vào một thư viện, điều này
giúp người sử dụng dễ dàng tìm kiếm được hàm cần quan tâm. Có thể kể một số thư viện
trong Matlab như:
-

Control System (Dành cho điều khiển tự động))

-

Finacial toolbox (Lĩnh vực kinh tế))

-

Fuzzy Logic ( Điều khiển mờ))

-

Signal Processing (Xử lý tín hiệu)


-

Statistics ( Tính tốn và thống kê)

-

System Identification ( Nhận dạng)

-



Mỗi năm Mathworks - công ty sản xuất và phân phối MATLAB đưa ra thị trường 2
bản cập nhật rxxxxa vào đầu năm và rxxxb vào cuối năm (với xxxx là năm phát hành).
Trong giới hạn luận văn, sử dụng bản Matlab R2016a.
Simulink được tích hợp vào Matlab như một cơng cụ để mơ phịng hệ thơng, giúp
người sử dụng phân tích và tổng hợp hệ thống một cách trực quan. Trong Simulink, hệ
thống được mô tả dưới dạng sơ đồ khối. Với dạng sơ đồ khối này, ta có thể quan sát các đáp
ứng thời gian của hệ thống với nhiều tín hiệu vào khác nhau như: tín hiệu bậc thang, tín hiệu
sinus, xung chữ nhật, tín hiệu ngẫu nhiên,.. bằng cách thực hiện mô phỏng. Kết quả mơ
phỏng có thể được xem theo thời gian thực trong môi trường Simulink hoặc Matlab. Tất cả
các hàm trong Matlab đều cố thể truy cập từ Simulink, và ngược lại, các kết quả tìm được
trong Simulink đều có thể sử dụng và khái thác trong mô trường Matlab.


15

Mọi chi tiết về phần mềm, cách sử dụng và các ví dụ của từng lệnh, có thể tham
khảo trong phần help của Matlab hoặc download các file dạng *.pdf tạo trang Web của
Matlab tại địa chỉ

3.2. Áp dụng kiểm thử dựa trên mơ hình vào bài tốn kiểm thử mơ hình điều
khiển hành trình
Khái qt lại bài tốn kiểm thử dựa trên mơ hình, ta cần đảm bảo rằng trong quá
trình thiết kế và phát triển hệ thống, các mơ hình được đưa ra và mơ phỏng lại chính xác
tương ứng với hệ thống thực nhằm việc kiểm thử đạt hiệu quả tối đa. Các bước thực hiện
trong quá trình kiểm thử:
-

B1: Xác định các input port, output port của mơ hình simulink

-

B2: Căn cứ u cầu/ đặc tả mơ hình từ đó sinh các ca kiểm thử tương ứng

-

B3: Chạy chương trinh mơ phỏng với mơ hình Simulink và các ca kểm thử thiết kế
được.

-

B4: Đánh giá mức phủ của ca kiểm thử.
3.2.1. Xây dựng mơ hình trong Matlab
Hệ thống điều khiển hành trình (cruise control) của xe ô tô là một hệ thống phản hồi,

hiện được ứng dụng rộng rãi trên các xe ô tô hiện nay. Hệ thống được xây dựng nhằm mục
đích cố gắng duy trì vận tốc của xe ơ tơ khi có sự thay đổi độ dốc của một con đường, như
đi vào các đoạn đường gập ghềnh. Bộ điều khiển sẽ bù sự thay đổi này bằng cách đo tốc độ
của xe và điều chỉnh bướm ga một cách thích hợp.
Sơ đồ khối dưới đây thể hiện mơ hinh hóa hệ thống:


Hình 3.1:

Sơ đồ khối của hệ thống điều khiển hành trình cho hệ thống ơ tơ.

Bộ điều khiển bướm ga động cơ tạo một mô men xoắn T và truyền nó xuống đất
thơng qua hộp số và các bánh răng. Kết hợp với các lực bên ngồi mơi trường như lực cản


16

khí động học và trọng lực, lực sẽ giúp xe di chuyển. Vận tốc v của xe được đo bởi hệ thống
điều khiển và thay đổi bướm ga thông qua cơ chế thực thi. Giao diện người dùng cho phép
hệ thống tắt hoặc bật và thiết lập vận tốc mong muốn 𝑣𝑟
Cho 𝑣 vận tốc của xe và 𝑣𝑟 vận tốc mong muốn (vận tốc tham chiếu). Bộ điều khiển
là loại vi tích phân tỷ lệ (PI) nhận các tín hiệu đầu vào 𝑣 và 𝑣𝑟 , sau đó tạo ra tín hiệu điều
khiển u được gửi tới bộ truyền truyền động điều khiển vị trí bướm ga. Bướm ga kiểm sốt
mơ men xoắn T được tạo bởi động cơ, được truyền qua các bánh răng và báng xe, tạo ra một
lực F giúp xe di chuyển. Các lực nhiễu 𝐹𝑑 gây ra xáo trộn do các thay đổi độ dốc đường đi,
lực cản lăn và các lực động lực học. Bộ điều khiển hành trình cũng có giao diện người- máy
cho phép lái xe thiết lập và thay đổi tốc độ mong muốn. Ngồi ra cịn có chức năng ngắt kết
nối điều khiển hành trình khi đạp phanh. Hệ thống này bao gồm nhiều thành phần riêng biệt:
bộ phận truyền động, động cơ, chuyển số, bánh xe và thân xe với mơ hình chi tiết có thể rất
phức tạp. Mặc dù vậy, mơ hình đáp ứng cho thiết kế bộ điều khiển hành trình khá đơn giản.

Hình 3.2:

Mơ hình lực cân bằng xe ô tô

Căn cứ vào đặc tả mơ hình và các phương trình lực tác động lên xe, hệ thống điều

khiển hành trình được mơ hình hóa thành mơ hình đơn giản như sau:

Trong đó:
-

Khối Cruise control là bộ điều khiển hành trình.

-

Khối Hill Counter là khối dữ liệu đầu vào cho hệ thống là độ dốc của mặt đường,


17

-

Khối Set Velocity là khối dữ liệu đầu vào cho hệ thống là vận tốc hành trình mong
muốn

-

Khối Scope Velocity là đầu ra của hệ thống hiển thị tốc độ thực của xe.

Hình 3.3:

Chi tiết khối Cruise control

3.2.2. Sinh ca kiểm thử và thực thi và kết quả kiểm thử
Hệ thống phải đáp ứng các yêu cầu cơ bản như sau:
Sau khi thiết lập tốc độ hành trình thời gian để đạt tốc độ hành trình khơng q 60

giây.
Khi giá trị độ dốc của mặt đường (hill couter) thay đổi hệ thống phải tự điều chỉnh để
vẫn duy trì được tốc độ hành trình mong muốn khơng q 10%.
Với các yêu cầu như trên, các ca kiểm thử cho mô hình được tạo ra như sau:
- Trên giao diện Simulink chọn Analyst  Test Manager.
- Tại giao diện Test Manager chọn New Test File from Model , chọn mơ hình cần
kiểm thử.


18

Simulink sẽ tạo ra bộ test case tương ứng với bộ tạo giá trị đầu vào của hệ thống điều
khiển hành trình.

Mặc định trường hợp kiểm thử tự động sẽ nhận các tham số đầu vào do bộ nguồn tạo
là các tham số để kiểm thử.

Khi thực thi các trường hợp kiểm thử do chưa có ràng buộc nên Simulink sẽ thực thi
mơ hình và hiển thị các giá trị đầu ra, và thông báo trường hợp kiểm thử đã thành công.
Trường hợp kiểm thử 1: Thay đổi giá trị tốc độ mong muốn, giữ nguyên độ dốc
của mặt đường, xem xét giá trị vận tốc đầu ra có nằm trong khoảng cho phép, thời
gian thiết lập tốc độ nằm trong ngưỡng cho phép hay không.
Để thực hiện kiểm thử, tạo sẵn file cơ sở dữ liệu thiết lập độ dốc của mặt đường, vận
tốc mong muốn của xe tại từng thời điểm.


19

Để thực hiện kiểm thử, tạo ca kiểm thử. Chọn Input  Add Input, chọn đường dẫn
tới file cơ sở dữ liệu đã được tạo, có thể tạo nhiều file đầu vào để kiểm thử (mỗi file là 1

kiểm thử)

Hình 3.4:

Nhập file dữ liệu đầu vào

Sau đó chọn Run để thực thi để thực thi từng ca kiểm thử

Như vậy mơ hình chỉ đáp ứng được với vận tốc mong muốn nhỏ 50km/h thì thời gian
đáp ứng của hệ thống mới đạt 60 giây.
Trường hợp kiểm thử 2: Thay đổi giá trị độ dốc, giữ nguyên vận tốc hành trình,
xem xét giá trị đầu ra có nằm trong khoảng cho phép.
Để thay đổi giá trị độ dốc theo thời gian, tạo file dữ liệu đầu vào theo thời gian.


20

Trước khi thực hiện kiểm thử, tạo dữ liệu baseline làm cơ sở đánh giá khả năng vận
hành của hệ thống. Dữ liệu được sử dụng làm baseline khi xe được thiết lập ở vận tốc hành
trình 50km/h, độ dốc bằng 0, khơng đổi trong q trình kiểm thử.
Trong cài đặt trường hợp kiểm thử chọn Baseline Critical Capture để lấy các giá trị
đầu ra làm baseline, kết quả sẽ được ghi vào file cruise_control.mat để có thể sử dụng cho
các kiểm thử khác.

Hình 3.5:

Tạo file dữ liệu cơ sở từ 1 ca kiểm thử

Sau đó thực thi trường hợp kiểm thử Input để tạo baseline


Hình 3.6:

So sánh kết quả với đường cơ sở baseline

Trong kết quả kiểm thử sẽ xuất hiện thêm Baseline Criteria Result so sánh kết quả
của kiểm thử với đường cơ sở baseline.
Để thực hiện kiểm thử với các số liệu độ dốc thay đổi, sử dụng file cơ sở dữ liệu
excel chứa thông tin về độ dốc mặt đường theo thời gian và vận tốc mong muốn.
Khi độ dốc thay đổi vừa phải vận tốc mong muốn của xe vẫn được duy trì tương đối
ổn định nằm trong khoảng cho phép.


21

Hình 3.7:

Hình 3.8:

Độ dốc của đường tăng giảm với biên độ nhỏ

Vận tốc của xe khi độ dốc thay đổi với biên độ nhỏ

Trong ca kiểm thử tiếp theo, tiến hành tăng độ dốc của mặt đường lên đột ngột, xe
không thể đạt được tốc độ như mong muốn sau khoảng thời gian, như vậy động cơ của xe sẽ
không tạo đủ lực để đưa tốc độ xe lên vận tốc hành trình mong muốn với độ dốc lớn

Hình 3.9:

Độ dốc của đường tăng giảm với biên độ lớn



22

Hình 3.10:

Vận tốc của xe khi độ dốc đường lớn

Như vậy, để minh họa cho phần lý thuyết về kiểm thử tự động dựa trên mơ hình, học
viên đã thực hiện xong tạo 2 ca kiểm thử cho mơ hình điều khiển hành trình đơn giản, sử
dụng dữ liệu đầu vào, phân tích đánh giá kết quả đầu ra phù hợp.


23

Chương 4 – KẾT LUẬN
Hệ thống nhúng ngày càng được ứng dụng rỗng rãi trong cuộc sống của chúng ta, đặc
biệt trong thời đại công nghệ 4.0, vạn vật kết nối (IoT). Kiểm thử dựa trên mơ hình cho các
hệ thống nhúng ngày càng có ý nghĩa quan trọng, nhằm phát hiện và khắc phục lỗi, các
nhược điểm của hệ thống kiểm thử giúp hệ thống được hoàn thiện, bảo đảm các chức năng
khi đưa vào hoạt động.
Luận văn đã thực hiện tìm hiểu mơ hình hệ thống nhúng, nghiên cứu kỹ thuật kiểm
thử cho mơ hình hệ thống nhúng và thực hiện kiểm thử một số mơ hình Simulink.
Việc thực hiện kiểm thử của luận văn còn đơn giản. Hướng phát triển của luận văn là
áp dụng các phương pháp sinh dữ liệu kiểm thử để giúp tăng độ phủ.


×