Sinh dữ liệu kiểm thử cho mô hình hệ thống nhúng sử dụng kỹ thuật kiểm thử theo cặp
Đỗ Thị Bích Ngọc
SINH DỮ LIỆU KIỂM THỬ CHO MÔ HÌNH
HỆ THỐNG NHÚNG SỬ DỤNG KỸ THUẬT
KIỂM THỬ THEO CẶP
Đỗ Thị Bí ch Ngọc
Học Viện Cô ng Nghệ Bưu Chính Viễn Thô ng
Hoạt động kiểm thử một hệ thống phần mềm nói chung
và hệ thống nhúng nói riêng là vấn đề thường chiếm tới 30-
50% thời gian cꢅng như kinh phí làm ra một hệ thống.
Trong đó việc sinh dữ liệu kiểm thử (test data) quyết đꢃnh
đến chất lượng của kết quả kiểm thử. Một bộ test data được
đánh giá là tốt nếu có khả năng phát hiện lꢄi cao, đạt độ
phủ theo chuẩn cho trước. Đã có nhiều tiêu chuẩn yêu cầu
về an toàn các hệ thống nhúng, như ISO 26262, IEC 61508,
EN-50128, IEC 60880, and DO-178C… Trong các hệ
thống này, yêu cầu kiểm thử cao hơn, đòi hỏi phải có bộ
test data để phủ hết tất cả các đường chạy xảy ra.
Không như các hệ thống phần mềm thông thường, tín
hiệu đầu vào của hệ thống nhúng là các chuꢄi dữ liệu theo
thời gian. Do vậy, việc sinh test data cho hệ thống nhúng
gặp nhiều khó khăn và phức tạp hơn so với hệ thống phần
mềm thông thường.
Tóm tắt: Hệ thống nhúng đang ngày càng đóng vai trò quan
trọng trong đời sống hiện đại. Các hệ thống này đòi hỏi tính
an toàn rất cao. Vì vậy, đảm bảo chất lượng cho các hệ
thống nhúng này đã và đang thu hút sự quan tâm của cả
giới nghiên cứu và công nghiệp. Trong các hệ thống nhúng,
quy trình kiểm thử thường yêu cầu độ phủ cao, với nhiều
độ đo theo các chuẩn quốc tế, như CC, DC, MC/DC của
ISO 26262. Bài báo này đề xuất 1 phương pháp sinh dữ
liệu kiểm thử tự động áp dụng kĩ thuật kiểm thử theo cặp
nhằm thu được bộ test data với độ phủ cao. Thực nghiệm
cho thấy phương pháp đề xuất cho kết quả tốt hơn so với
kiểm thử ngẫu nhiên.
Từ khoá: Độ phủ CC, độ phủ DC, độ phủ MC/DC, mô
hình hệ thống nhúng, kiểm thử, kiểm thử theo cặp, tín
hiệu liên tục
I. GIỚI THIỆU
Việc kiểm thử mô hình hệ thống nhúng có 2 vấn đề
Hiện nay, hệ thống nhúng đang phát triển mạnh mꢀ và chính;
ngày càng đóng vai trò quan trọng trong cuộc sống của con
Vấn đề 1: Đầu vào của hệ thống nhúng thường là tín hiệu
người. Hệ thống nhúng bao gꢁm cả phần cứng và phần liên tục theo thời gian. Các phương pháp kiểm thử hoặc xác
mềm hoạt động liên kết với nhau. Nhiều loại hệ thống minh đa phần áp dụng cho hệ thống với thời gian rời rạc.
nhúng có những yêu cầu rất cao về chất lượng, tính ꢂn đꢃnh Các nghiên cứu này sinh dữ liệu kiểm thử rời rạc cho các
và độ tin cậy. Lý do là lꢄi của hệ thống nhúng có thể gây mô hình nhúng với mục tiêu tìm lꢄi runtimes [3,11], vi
ra tai nạn khủng khiếp, đặc biệt là các hệ thống điều khiển phạm các tính chất dựa trên đặc tả hình thực (formal
máy bay, tên lửa, hệ thống điều khiển động cơ ô tô... Lꢄi specification) [9], và độ phủ cao [8]. Tuy nhiên, dữ liệu test
trên hệ thống nhúng có thể không sửa được (ví dụ: vệ tinh rời rạc (discrete test data) hiếm khi tꢁn tại trong mô hình
nhân tạo), nếu sửa được thì chi phí cꢅng rất cao, phải thu hệ thống nhúng mà là các tín hiệu liên tục theo thời gian.
hꢁi sản phẩm hoặc thiết kế lại toàn bộ. Do vậy, đảm bảo
chất lượng cho các hệ thống nhúng là quan trọng và cần hiệu vào, tín hiệu ra, sự kiện lớn. Nghĩa là, để kiểm thử thủ
thiết. công sao cho phủ hết các trường hợp xảy ra là không khả
Vấn đề 2: Các mô hình thường phức tạp với số lượng tín
Cùng với sự phát triển mạnh mꢀ của hệ thống nhúng, các thi. Thêm vào đó, việc áp dụng các phương pháp hình thức
công cụ hꢄ trợ thiết kế mô hình các hệ thống nhúng được hay phân tích tĩnh để sinh ra dữ liệu test với độ phủ cao là
áp dụng ngày càng nhiều. Việc thiết kế mô hình hệ thống không dễ.
nhúng trên các công cụ trước khi thiết kế mẫu thật là cần
thiết để dễ dàng phát hiện, sửa lꢄi cꢅng như chỉnh sửa thiết
kế nhằm đảm bảo chất lượng. Vì vậy, có nhiều nghiên cứu, kiểm thử cho mô hình hệ thống nhúng [1,5,6,14].
ứng dụng hꢄ trợ việc kiểm thử mô hình các hệ thống nhúng
Matinnejad [5, 6]) sinh dữ liệu kiểm thử cho mô hình
thiết [1,2,3,5,6,7,8,9,10,14]. Bài báo này hướng tới bài Simulink với thời gian liên tục. Tác giả hướng tới thiết kế
Có một số nghiên cứu liên quan tới bài toán sinh dữ liệu
toán kiểm thử cho mô hình hệ thống nhúng.
cho tꢆng cꢂng vào 1 tín hiệu dựa trên thuật toán tìm kiếm
nhằm thu được tín hiệu đầu ra đa dạng nhất. Phương pháp
Tác giả liên lạc: Đꢄ Thꢃ Bích Ngọc
Email: ngocdtb@ptit.edu.vn
Đến tòa soạn: 4/2020, chỉnh sửa: 6/2020, chấp nhận đăng: 7/2020
SỐ 02 (CS.01) 2020
TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
27
SINH DỮ LIỆU KIỂM THỬ CHO MÔ HÌNH HỆ THỐNG NHÚNG SỬ DỤNG KỸ THUẬT KIỂM THỬ THEO CẶP
này không thể áp dụng để sinh dữ liệu kiểm thử với tiêu chí hệ thống được thực thi được trong quá trình kiểm thử. Vì
các độ phủ CC, DC, MC/DC vì nó hướng tới mối quan hệ vậy, sꢀ có khả năng phát hiện được nhiều lꢄi hơn.
giữa thay đꢂi của outport và inport. Trong tiêu chí các độ
phủ CC, DC, MC/DC, chúng ta quan tâm tới tất cả các điều bộ test data có độ phủ cao. Trên thực tế, chuẩn ISO 26262
kiện (condition) bên trong model. (“Road vehicles – Functional safety”) yêu cầu kiểm thử và
Yêu cầu thông thường cho việc kiểm thử mô hình là một
Trong [1], Godboley et.al. sinh dữ liệu kiểm thử cho mô đánh giá các độ phủ CC, DC, MC/DC. MATLAB/Simulink
hình Simulink với Độ phủ nhánh. Đầu tiên, tác giả sinh có một công cụ phục vụ việc đánh giá Độ phủ này:
code C cho mô hình Simulink, sau đó áp dụng công cụ Simulink Design Verifier (SLDV) và Simulink
kiểm thử cho code C để thu được bộ dữ liệu kiểm thử và Verification and Validation (V&V).
tính toán các độ phủ CC, DC, MC/DC. Vấn đề duy nhất
Decision coverage (DC) hay còn được biết đến là Branch
của phương phướng này là nó sử dụng 1 công cụ kiểm thử coverage (Bao phủ nhánh). Độ phủ DC đánh giá số lượng
tĩnh cho code C. Do vậy, phương pháp này không khả thi các các điểm quyết đꢃnh, rꢀ nhánh (như là if, switch …)
với mô hình lớn.
trong hệ thống được thực thi cho cả trường hợp giá trꢃ true
Trong [14], Tomita đề xuất 1 phương pháp kiểm thử và trường hợp false khi thực hiện kiểm thử.
trong đó mꢄi tín hiệu vào được gán cho 1 khuôn mẫu sꢇn
Condition coverage (CC) tương tự như bao phủ quyết
(tín hiệu sine,step...) . Sau đó, một dữ liệu kiểm thử sꢀ là 1 đꢃnh nhưng nó có độ nhạy tốt hơn với các điều kiện con.
trường hợp cụ thể của khuôn mẫu này. Phương pháp này Độ phủ DC đánh giá số lượng các biểu thức Boolean con
cho phꢈp sinh dữ liệu kiểm thử 1 cách dễ dàng và kiểm soát trong tꢆng điểm quyết đꢃnh của hệ thống cho cả trường hợp
việc sinh dữ liệu thông qua số lượng ít tham số của khuôn giá trꢃ true và trường hợp false khi thực hiện kiểm thử. Các
mẫu (tần số, biên độ...) thay vì phải sinh dữ liệu cho toàn biểu thức boolean con được phân tách bằng các phꢈp logic-
bộ tín hiệu. Tuy nhiên, khi mô hình lớn, số lượng inports AND hoặc logic-OR nếu cùng xảy ra
lớn, việc chọn ngẫu nhiên các loại tín hiệu khiến cho các
độ phủ CC, DC, MC/DC có thể không được như kì vọng.
Modified condition and decision coverage (MC/DC) là
Bài báo này đề xuất 1 phương pháp sinh dữ liệu kiểm mức đánh giá chi tiết cho tꢆng biểu thức điều kiện. Độ phủ
thử tự động dựa trên các loại tín hiệu mẫu kết hợp với kĩ MC/DC đánh giá số lượng các biểu thức Boolean con trong
thuật kiểm thử theo cặp nhằm thu được bộ dữ liệu kiểm thử tꢆng điểm quyết đꢃnh của hệ thống cho cả trường hợp true
với độ phủ cao. Kết quả thử nghiệm cho thấy phương pháp và trường hợp false và giá trꢃ này sꢀ phải quyết đꢃnh tới cả
đề xuất cho kết quả tốt hơn phương pháp kiểm thử trong giá trꢃ điều kiện cha của nó.
[14].
c.
Kiểm thử mô hình hệ thống nhúng dựa trên tín
hiệu mẫu
II. TỔNG QUAN VỀ KIỂM THỬ MÔ HÌNH HỆ
THỐNG NHÚNG
Một test data cho mô hình hệ thống nhúng được xem như
là 1 vector của các tín hiệu inport. Các tín hiệu có thể ꢉ
dạng bất kì. Tuy nhiên, các tín hiệu inport được cung cấp
bꢉi các thiết bꢃ điều khiển, hoặc được sinh ra bꢉi một đối
tượng vật lꢊ và thường tuân theo các đꢃnh luật vật lꢊ. Do
vậy, ta không nhất thiết phải sử dụng các tín hiệu bất kì.
Ngoài ra, việc sử dụng các loại tín hiệu vào mẫu (sine,
step,...) sꢀ giúp điều khiển tín hiệu đơn giản hơn với chỉ
một vài tham số (ví dụ, tần số, cường độ...). [14] sử dụng
các tín hiệu mẫu để sinh test data cho mô hình Simulink.
II.1 Các khái niệm cơ bản về kiểm thử mô hình hệ thống
nhúng
Có nhiều công cụ dùng để thiết kế mô hình các hệ thống
nhúng, trong đó MATLAB/Simulink là một công cụ được
sử dụng nhiều trong cả nghiên cứu và thực tế. Bài báo sꢀ
thực hiện kiểm thử cho các mô hình biểu diễn bằng
MATLAB/Simulink [13].
a. Mô hình hệ thống nhúng Simulink
Một mô hình hình hệ thống nhúng MATLAB/Simulink,
được tạo bꢉi nhiều loại blocks, bao gꢁm: inport/outport
Đꢀnh nghꢁa 1[14]: Test data/Bộ Test data.
Một test data là một nhóm các tín hiệu đầu vào. Một bộ
test data là một tập các test data.
(vào/ra),
mathematical
operator
(phꢈp
toán),
logical/relational operator (phꢈp logic/quan hệ),
(multiport) switch, delay... Các blocks liên kết với nhau
bằng lines, truyền dữ liệu Boolean, integer hoặc
floating/fixed point giữa chúng. Đặc biệt, một mô hình hệ
thống nhúng cho phꢈp nhận được một số tín hiệu (các giá
trꢃ liên tục theo thời gian) bằng cách sử dụng các block
Inport và tạo ra một số tín hiệu đầu ra được đại diện bꢉi các
block Outport.
Với một test data, độ phủ của mô hình nhúng là độ phủ
của các đối tượng trong mô hình. Độ phủ của mô hình cho
một bộ test data là tꢂng hợp các độ phủ của tꢆng test data.
Trong các độ phủ DC, CC và MC/DC, đối tượng để đánh
giá là block có các hành vi logic. Trong Simulink, thì chúng
là block logic, phꢈp relation, block chuyển đꢂi (multiport
switch), các subsystem với các cꢂng điều khiển hoạt
động…
Để có thể kiểm thử mô hình hệ thống nhúng, ta cần đưa
các test data vào mô hình và gán cho mꢄi inport 1 tín hiệu
tương thích sau đó chạy mô phỏng với các inport này rꢁi
đánh giá độ phủ tương ứng. Để làm điều đó, một mô hình
harness được tạo ra tꢆ mô hình gốc, trong đó mô hình gốc
được thể hiện như 1 hệ thống con (Test unit). Các test data
b. Các độ phủ CC, DC, MC/DC
Trong khoa học máy tính, mức độ phủ (Test coverage)
là một thước đo được sử dụng để mô tả mức độ một hệ
thống được thực thi trên một bộ test data cụ thể. Một bộ
test data có mức độ phủ cao sꢀ làm cho nhiều block trong
SỐ 02 (CS.01) 2020
TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
28
Đỗ Thị Bích Ngọc
có thể đưa vào qua khối lệnh Signal Builder (Inputs) trong
• Xây dựng bộ test sao cho bao phủ được tất cả các cặp
Simulink và phân phối cho các inport tương ứng của Test xác đꢃnh ꢉ trên.
unit thông qua khối Size-Type. Hình 1 minh hoạ 1 hệ
Lấy một ví dụ đơn giản như sau:
thống harness như vậy.
Một Mô hình hệ thống nhúng có 4 inports, trong đó
inport1 nhận giá trꢃ {1,2,3}; inport2 nhận giá trꢃ {4,5},
inport3 nhận giá trꢃ {1,2,5,6}, inport4 nhận giá trꢃ {1,5}
Bảng 1: Các ca kiểm thử theo cặp
Inport1
Inport2
Inport3
Inport4
2
2
3
2
1
3
3
3
1
1
1
2
2
4
5
5
4
4
5
5
4
5
4
4
5
4
6
2
1
5
2
6
5
2
6
1
5
1
6
1
5
1
5
1
5
1
5
5
5
1
1
1
Hình 1: Mô hình hệ thống nhúng harness trong
Simulink cho phép thêm các test data.
Đꢀnh nghꢁa 2[14]: Độ phủ
Một test data là phủ DC đầy đủ nếu, đối với mꢄi đối
tượng để đánh giá b, tất cả giá trꢃ ra có thể của b đều được
xảy ra tại một thời điểm nào đó bꢉi một test data trong bộ
test data. Một test data là phủ CC đầy đủ nếu, với mꢄi điều
kiện c của b, mꢄi giá trꢃ ra có thể của c xảy ra tại một thời
điểm nào đó bꢉi một test data trong bộ test data. Một test
data là phủ MC/DC đầy đủ nếu, đối với mꢄi b mà quyết
đꢃnh phụ thuộc vào nhiều điều kiện c1, ..., cn, test data bao
gꢁm các test data trong đó tꢆng cm ảnh hưꢉng độc lập đến
decision của nó.
Khi áp dụng kỹ thuật kiểm thử theo cặp, ta có tất cả 13
ca kiểm thử phủ hết tất cả các cặp giá trꢃ xảy ra của 2 inports
bất kì.
Tư tưꢉng của việc sinh test data dựa trên tín hiệu mẫu
Chi tiết về kỹ thuật pairwise testing có thể tham khảo tại
như sau : đối với mꢄi ca kiểm thử truyền vào, tiến hành tính [13], vì vậy, trong phạm vi bài báo này sꢀ không trình bày
toán các độ phủ DC, CC, MC/DC cho mô hình. Nếu độ phủ lại kỹ thuật sinh pairwise test nữa.
của ca kiểm thử sau lớn hơn hoặc bằng ca kiểm thử trước,
hiển thꢃ kết quả tính toán độ phủ lên màn hình. Sau khi tính III. ÁP DỤNG KIỂM THỬ THEO CẶP CHO SINH
DỮ LIỆU KIỂM THỬ MÔ HÌNH HỆ THỐNG
NHÚNG
toán hết độ phủ của các ca kiểm thử, kết quả trả về là các
độ phủ DC, CC, MCDC cao nhất và bộ test. Cụ thể:
III.1. Mã hoá và giải mã miền dữ liệu đầu vào tương ứng
với kỹ thuật kiểm thử theo cặp
Bước 1: Sinh ngẫu nhiên một test data ứng viên (là một
nhóm các tín hiệu inport).
Bước 2: Chạy mô phỏng cho mô hình với test data vꢆa
sinh và đánh giá độ phủ của nó. Việc chạy mô phỏng và
đánh giá các độ phủ CC, DC, MC/DC.
Bước 3: Nếu test data này làm tăng độ phủ DC hoặc CC
hoặc MC/DC, ta thêm nó vào bộ test data.
Bước 4: Các bước trên được thực hiện lặp đi lặp lại cho
tới khi đạt độ phủ tối đa hoặc đạt tới ngưꢋng số lượng
lần lặp cho trước.
Mô hình hệ thống nhúng đang ꢉ dạng sơ đꢁ với các
inport, và một file mô tả các tín hiệu sꢀ sử dụng để truyền
vào các inport.
Tuy nhiên, do yêu cầu của kỹ thuật kiểm thử theo cặp
cần đầu vào là các tham số, mꢄi tham số nhận các giá trꢃ
rời rạc, không phải là các tín hiệu.
Vì vậy, ta cần mã hoá miền dữ liệu đầu vào thành các bộ
tham số và giá trꢃ dựa theo đꢃnh nghĩa sau.
Đꢀnh nghꢁa 1: Cho mô hình M, miền dữ liệu D =
{(p1,…, pn) | pi {1,…,ki }}, với tham số pi tương ứng với
đầu vào thứ i trong mô hình M, {1,…ki} là chỉ số cho các
loại tín hiệu đầu vào thứ i có thể nhận.
II.2 Kĩ thuật kiểm thử theo cặp
Pairwise testing (hay All-pairs testing) [12] là một
phương pháp kiểm thử hộp đen. bằng cách sử dụng phương
pháp tꢂ hợp để kiểm tra tất cả sự kết hợp rời rạc có thể của
các tham số liên quan. Phương pháp này dựa trên sự quan
sát cho thấy phần lớn lꢄi đều bꢌt nguꢁn tꢆ sự tương tác giữa
hai tham số. Do đó, pairwise testing tạo ra các ca kiểm thử
phủ hết giá trꢃ của hai tham số. Thực nghiệm cho thấy,
Pairwise testing có khả năng sinh test data phủ MC/DC tốt
hơn so với kiểm thử ngẫu nhiên [12].
Ví dụ 1: Đầu vào cꢀa mô hình là Inport1 và Inport2, suy
ra số đầu vào cꢀa mô hình là 2.
Giả sử, Trong mꢁi Inport, cꢂ 6 loại tín hiệu đưꢃc sử
dụng: Sine, Step, Square, Linear, Constant, Triangle. Ta
đánh chỉ số cho Sine là 1, Step là 2, Square là 3, Linear là
4, Constant là 5, Triangle là 6. Do vậy, số tín hiệu sꢄ sử
dụng cꢀa mꢁi đầu vào là 6, ta mã hoá lần lưꢃt là 1,.., 6. Do
đꢂ, miền D là: {(inport1, inport2)| inport1, inport2
{1,2,3,4,5,6}}
Phương pháp pairwise testing bao gꢁm:
• Lựa chọn tham số đầu vào và các giá trꢃ tương ứng ꢍ
• Lấy tꢂ hợp (pairwise) của các giá trꢃ giữa 2 tham số
SỐ 02 (CS.01) 2020
TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
29
SINH DỮ LIỆU KIỂM THỬ CHO MÔ HÌNH HỆ THỐNG NHÚNG SỬ DỤNG KỸ THUẬT KIỂM THỬ THEO CẶP
Sau khi áp dụng kĩ thuật kiểm thử theo cặp, chúng ta sꢀ
thu được các bộ giá trꢃ (v1,…,vn) đảm bảo phủ hết các cặp
giá trꢃ xảy ra của 2 tham số pi, pj bất kì. Chúng ta cần
chuyển bộ giá trꢃ này thành test data của mô hình M tức là
tương ứng với inport i của mô hình M, sꢀ nhận tín hiệu thứ
vi.
cụ thể tương ứng với chỉ số của nó.
•
•
Hàm simulation(MT,t) thực hiện chạy mô phỏng
cho mô hình MT với thiết lập inport là t.
Hàm checkMCDC() trả về giá trꢃ phủ theo DC, CC,
và MC/DC khi chạy thêm mô phỏng với t.
Thuật toán này chỉ lựa chọn các test data t vào tập test
data T nếu mô phỏng MT với t làm tăng độ phủ DC, hoặc
CC, hoặc MC/DC.
III.2. Thuật toán đề xuất
Để áp dụng kỹ thuật kiểm thử theo cặp vào sinh dữ liệu
kiểm thử cho mô hình hệ thống nhúng, ta cần cải tiến thuật
toán của của Tomita [14] để có thể áp dụng kỹ thuật kỹ
thuật kiểm thử theo cặp, cụ thể ta phải bꢂ xung các yêu cầu
sau:
- ta cần mã hoá thông tin các inport của mô hình thành
dạng tham số (là inport) giá trꢃ (là các loại tín hiệu mà
inport đó có thể nhận) để thành đầu vào của kĩ thuật kiểm
thử theo cặp
IV. THỰC NGHIỆM VÀ ĐÁNH GIÁ
Thuật toán đề xuất được cài đặt và thử nghiệm bằng
mScript trên môi trường MATLAB để sinh dữ liệu test cho
các mô hình biểu diễn bằng MATLAB/Simulink, với đầu
vào là 1 mô hình Simulink, 1 file đặc tả các tín hiệu, đầu ra
sꢀ là bộ test data và độ phủ tương ứng.
4 mô hình được lựa chọn tꢆ các mô hình được áp dụng
trong thực tế của các hệ thống nhúng trong điều khiển ô tô.
Bảng sau mô tả các mô hình bao gꢁm số lượng blocks trong
mô hình, số lượng inport tương ứng.
- thực hiện sinh các ca kiểm thử theo cặp để phủ hết các
cặp giá trꢃ của 2 tham số bất kì (là bất kì tꢂ hợp của 2 loại
tín hiệu của 2 inports).
Bảng 2: Danh sách model thử nghiệm
- biến đꢂi các ca kiểm thử theo cặp thành các tín hiệu
đầu vào cho mô hình hệ thống nhúng.
Như vậy, thay vì lựa chọn loại tín hiệu cho các inport 1
cách ngẫu nhiên, các loại tín hiệu sꢀ được gán cho các
inports theo kĩ thuật kiểm thử theo cặp.
Thuật toán 1 được đề xuất như sau.
Thuꢂt toꢃn 1: Sinh Testsuite ꢃp dụng kỹ thuꢂt
pairwise testing
Input:
Model No.
Số lượng
block
Số lượng
inport
Model 1
Model 2
Model 3
Model 4
325
2
2
501
453
19
51
2432
- mô hình cho kiểm thử MT
- mô tả cấu hình các loại tín hiệu C
Output:
- test data T
Các bước thực hiện:
Begin
Ba thử nghiệm được thực hiện để đánh giá các độ phủ
DC, CC, MC/DC và so sánh giữa kiểm thử ngẫu nhiên và
phương pháp đề xuất (áp dụng kiểm thử theo cặp). Để đảm
bảo việc so sánh là công bằng, số lượng lần lặp và thời gian
thực hiện được cấu hình giống nhau giữa kiểm thử ngẫu
nhiên và phương pháp đề xuất. Kết quả thử nghiệm được
chỉ ra ꢉ 3 bảng sau (Bảng 3, Bảng 4, Bảng 5) và biểu đꢁ
minh hoạ tương ứng (Hình 2, Hình 3, Hình 4). Kết quả ꢉ
dạng % số DC (hay CC, MC/DC) mà các ca kiểm thử đã
phủ được trên tꢂng số DC (hay CC, MC/DC) có trong mô
hình.
D = encode(MT, C);
PT = pairwise (D);
ST = decode (PT);
T= ø;
Coverage = (0,0,0);
for t ST
begin
simulation (MT,t);
tCoverage = checkMCDC();
if (Coverage <tCoverage)
begin
Bảng 3: So sánh độ phꢀ DC giữa random và pairwise
Model No.
Model 1
Model 2
Model 3
Model 4
random (%) Pairwise (%)
T = T {temp};
Coverage = tCoverage;
end if;
end for;
return T;
end;
86
33
85
84
86
33
85
89
Trong Thuật toán 1:
•
Hàm encode(MT, C) sꢀ lấy thông tin các inport của
mô hình MT, cùng với mô tả cấu hình các loại tín
hiệu C, tꢆ đó mã hoá thành miền dữ liệu D theo
Đꢃnh nghĩa 1.
•
•
Hàm parwise(D) sꢀ áp dụng kĩ thuật pairwise
testing để sinh bộ test data PT tương ứng với D.
Hàm decode (PT) sꢀ biến đꢂi tꢆng phần tử của PT
thành test data của MT, tức là bộ tín hiệu đầu vào
SỐ 02 (CS.01) 2020
TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
30
Đỗ Thị Bích Ngọc
100
90
80
70
60
50
40
30
20
10
0
Tꢆ kết quả thử nghiệm trên, ta có nhận xꢈt: Với các mô
hình nhỏ (số lượng block, số lượng inport nhỏ), thì việc sử
dụng phương pháp sinh test data ngẫu nhiên (Random) sꢀ
đạt hiệu quả tương đương, còn với các mô hình lớn, thì
phương pháp áp dụng pairwise cho kết quả tốt hơn, đặc biệt
là độ phủ MC/DC, CC.
V. KẾT LUẬN
Model 1
Model 2
random
Model 3
Pairwise
Model 4
Bài báo đề xuất một phương pháp để sinh test data tự
động cho các mô hình hệ thống nhúng với tín hiệu đầu vào
liên tục. Thay vì sinh test data là các tín hiệu ngẫu nhiên,
kỹ thuật kiểm thử theo cặp được sử dụng nhằm giúp việc
sinh dữ liệu kiểm thử hiệu quả hơn. Để thực hiện việc này,
Thuật toán 1 đã được đề xuất nhằm biến đꢂi yêu cầu kiểm
thử và mô hình thành đầu vào của thuật toán pairwise
testing, sau đó kết quả của thuật toán pairwise được biến
đꢂi thành các test data của mô hình, tức là các tín hiệu mẫu.
Nhờ vậy, các test data cho mô hình nhúng có thể được sinh
và thực hiện tự động. Kết quả thử nghiệm bước đầu cho
thấy phương pháp đề xuất có khả năng sinh ra bộ test data
cho các mô hình nhúng với Độ phủ cao hơn so với phương
pháp đề xuất trong [14].
Hình 2: Biểu đꢁ so sánh độ phủ DC
Bảng 4: So sánh độ phꢀ CC giữa random và pairwise
Model No.
Model 1
Model 2
Model 3
Model 4
random (%) Pairwise (%)
93
66
71
56
93
69
77
63
Hướng phát triển của đề tài là áp dụng các kỹ thuật phân
tích tĩnh (static analysis) để đưa ra thông tin về mô hình, tꢆ
đó hꢄ trợ việc sinh test data có Độ phủ cao hơn. Một hướng
phát triển khác của đề tài là thử nghiệm các phương pháp
kiểm thử và sinh dữ liệu test khác, tꢆ đó đưa ra lựa chọn
các test data có độ phủ cao hơn nữa.
REFERENCES
[1] Godboley, S., Sridhar, A., Kharpuse, B., Mohapatra,
D.P. and Majhi, B., Generation of branch coverage test data
for simulink/stateflow models using crest tool.
International Journal of Advanced Computer Research,
3(4), p.222, 2013
[2] Godefroid, P., Klarlund, N. and Sen, K., 2005, June.
DART: directed automated random testing. In ACM
Sigplan Notices (Vol. 40, No. 6, pp. 213-223). ACM.
[3] Holling, D., Pretschner, A. and Gemmar, M., 2014,
September. 8cage: lightweight fault-based test generation
for simulink. In Proceedings of the 29th ACM/IEEE
international conference on Automated software
engineering (pp. 859-862). ACM.
[4]. Kuhn, D. Richard, Dolores R. Wallace, and Albert M.
Gallo. "Software fault interactions and implications for
software testing." IEEE transactions on software
engineering 30.6 (2004): 418-421.
[5] Matinnejad, R., Nejati, S., Briand, L.C. and
Bruckmann, T., 2016, May. Automated test data
generation for time-continuous simulink models. In
Proceedings of the 38th international conference on
software engineering (pp. 595-606). ACM.
Hình 3: Biểu đꢁ so sánh độ phủ CC
Bảng 5: So sánh độ phꢀ MC/DC giữa random và pairwise
Model No.
Model 1
Model 2
Model 3
Model 4
random (%) Pairwise (%)
63
31
41
57
63
31
59
79
90
80
70
60
50
40
30
20
10
[6] Matinnejad, R., Nejati, S., Briand, L. C., & Bruckmann,
T. (2016, May). SimCoTest: A test data generation tool for
Simulink/Stateflow controllers. In Proceedings of the 38th
International Conference on Software Engineering
Companion (pp. 585-588). ACM.
0
Model 1
Model 2
random
Model 3
Model 4
Pairwise
[7] Pacheco, C., Lahiri, S.K., Ernst, M.D. and Ball, T.,
2007, May. Feedback-directed random test generation. In
Proceedings of the 29th international conference on
Hình 4: Biểu đꢁ so sánh độ phủ MC/DC
SỐ 02 (CS.01) 2020
TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
31
SINH DỮ LIỆU KIỂM THỬ CHO MÔ HÌNH HỆ THỐNG NHÚNG SỬ DỤNG KỸ THUẬT KIỂM THỬ THEO CẶP
Software Engineering (pp. 75-84). IEEE Computer
Society.
Đỗ Thꢀ Bích Ngọc sinh ngày
08/03/1981 tại Hà Nội. Năm 2004,
bà tốt nghiệp Kỹ sư tài năng Công
nghệ thông tin tại Trường Đại học
Bách khoa Hà Nội. Năm 2007 bà
nhận bằng Thạc sĩ khoa học tại
Trường Đại học Sư Hà Nội. Năm
2010, bà nhận học vꢃ Tiến sĩ
[8] Peranandam, P., Raviram, S., Satpathy, M., Yeolekar,
A., Gadkari, A. and Ramesh, S., 2012, March. An
integrated test generation tool for enhanced coverage of
Simulink/Stateflow models. In Proceedings of the
Conference on Design, Automation and Test in Europe
(pp. 308-311). EDA Consortium.
[9] Richardson, D.J., Aha, S.L. and O'malley, T.O., 1992,
June. Specification-based test oracles for reactive systems.
In Proceedings of the 14th international conference on
Software engineering (pp. 105-118). ACM.
chuyên ngành Khoa học thông tin
tại Viện Khoa học và Công nghệ
Tiên tiến Nhật Bản (JAIST). Tꢆ
năm 2010-2012, bà làm sau tiến sĩ tại viện AIST – Nhật
[10] Satpathy, M., Yeolekar, A. and Ramesh, S., 2008, Bản. Tꢆ 2013- nay, bà là Giảng viện tại Học viện Công
October. Randomized directed nghệ Bưu chính Viễn thông.
testing (REDIRECT) for Simulink/Stateflow models. In Lĩnh vꢅc nghiꢆn cứu: Phân tích mã nguꢁn, Kiểm thử phần
Proceedings of the 8th ACM international conference on mềm, Kiểm chứng phần mềm, Công nghệ phần mềm.
Embedded software (pp. 217-226). ACM.
[11] Sanchez, J., 2016. A review of pair-wise testing. arXiv
preprint arXiv:1606.00288.
[12]
Simulink
Design
Verifier:
ml [Online; accessed 5-May- 2020].
[13]. Sims, S. and DuVarney, D.C., 2007, October.
Experience report: the reactis validation tool. In ACM
SIGPLAN Notices (Vol. 42, No. 9, pp. 137-140). ACM.
[14]. T. Tomita, Daisuke.I, Toru. M, Shigeki.T, T. Aoki,
Template-Based Monte-Carlo Test Generation for
Simulink Models,Workshop on Design, Modeling and
Evaluation of Cyber Physical Systems (CyPhy'17 ), LNCS
11267.
[15] Vu T.D., Hung P.N., Nguyen V.H. (2017) A Method
for Automated Test data Generation from UML Models
with String Constraints. In: Król D., Nguyen N., Shirai K.
(eds) Advanced Topics in Intelligent Information and
Database Systems. ACIIDS 2017. Studies in
Computational Intelligence, vol 710. Springer, Cham
TEST DATA GENERATION FOR EMBEDDED
MODEL USING PAIRWISE TESTING TECHNIQUE
Abstract: Embedded systems are playing more and more
important role in society. These systems require high
safety. Thus, quality assurance for these kinds of systems
has been attracted many attention and investment of both
academic research and industry communities. In embedded
systems, testing often requires high coverage with different
measures respect to international standards like DC, CC,
MC/DC coverages respected to ISO 26262. In this paper,
in order to have good test cases with high DC, CC, MC/DC
coverages, we propose a method to automatically generate
test-cases by applying pairwise testing technique.
Experiments shown that our method has order of
magnitude better than that of the random testing method.
Keywords: CC coverage, DC coverage, MC/DC coverage,
Embedded model, Testing, Pairwise testing, Continuous
signal.
SỐ 02 (CS.01) 2020
TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
32
Bạn đang xem tài liệu "Sinh dữ liệu kiểm thử cho mô hình hệ thống nhúng sử dụng kỹ thuật kiểm thử theo cặp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- sinh_du_lieu_kiem_thu_cho_mo_hinh_he_thong_nhung_su_dung_ky.pdf