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  
Đỗ ThBí ch Ngc  
Hc Vin Cô ng Nghệ Bưu Chính Viễn Thô ng  
Hoạt động kim thmt hthng phn mm nói chung  
và hthng nhúng nói riêng là vn đề thường chiếm ti 30-  
50% thi gian cng như kinh phí làm ra mt hthng.  
Trong đó vic sinh dữ liệu kiểm thử (test data) quyết đꢃnh  
đến cht lượng ca kết qukim th. Mt btest data được  
đánh giá là tt nếu có khnăng phát hin lꢄi cao, đạt độ  
phtheo chun 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ệ  
thng này, yêu cu kim thcao hơn, đòi hi phi có bộ  
test data để phhết tt ccác đưng chy xy ra.  
Không như các hthng phn mm thông thường, tín  
hiệu đầu vào ca hthng nhúng là các chui dliu theo  
thi gian. Do vy, vic sinh test data cho hthng nhúng  
gp nhiu khó khăn và phc tp hơn so vi hthng phn  
mm 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  
Vic kim thmô hình hthng nhúng có 2 vấn đề  
Hin nay, hthng nhúng đang phát trin mnh mvà 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 ca hthng nhúng thường là tín hiu  
người. Hthng nhúng bao gm cphn cng và phn liên tc theo thi gian. Các phương pháp kim thhoc xác  
mm hoạt động liên kết vi nhau. Nhiu loi hệ thống minh đa phần áp dng cho hthng vi thi gian ri rc.  
nhúng có nhng yêu cu rt cao vcht lượng, tính ꢂn đꢃnh Các nghiên cu này sinh dliu kim thri rc cho các  
và độ tin cy. Lý do là li ca hthng nhúng có thgây mô hình nhúng vi mc tiêu tìm li runtimes [3,11], vi  
ra tai nn khng khiếp, đặc bit là các hthống điều khin phm các tính cht da trên đặc thình thc (formal  
máy bay, tên la, hthống điều khiển động cơ ô tô... Li specification) [9], và độ phcao [8]. Tuy nhiên, dliu test  
trên hthng nhúng có thkhông sửa được (ví d: vtinh ri rc (discrete test data) hiếm khi tn ti trong mô hình  
nhân to), nếu sửa được thì chi phí cng rt cao, phải thu hthng nhúng mà là các tín hiu liên tc theo thi gian.  
hi sn phm hoc thiết kế li toàn b. Do vậy, đảm bo  
cht lượng cho các hthng nhúng là quan trọng và cần hiu vào, tín hiu ra, skin ln. Nghĩa là, để kim ththủ  
thiết. công sao cho phhết các trường hp xy ra là không khả  
Vấn đề 2: Các mô hình thường phc tp vi slượ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 đó, vic áp dng các phương pháp hình thc  
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 dliu test với độ phcao 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 dliu kim thcho 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 vi thi gian liên tc. Tác gihướng ti thiết kế  
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 tng cng vào 1 tín hiu da trên thut toán tìm kiếm  
nhằm thu được tín hiệu đầu ra đa dạng nht. 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 dliu kim thvi tiêu chí hệ thống được thực thi được trong quá trình kim th. Vì  
các độ phCC, DC, MC/DC vì nó hướng ti mi quan hệ vậy, sꢀ có khả năng phát hiện được nhiều lꢄi hơn.  
giữa thay đꢂi ca outport và inport. Trong tiêu chí các độ  
phCC, DC, MC/DC, chúng ta quan tâm ti tt ccác điều btest data có độ phcao. Trên thc tế, chun ISO 26262  
kin (condition) bên trong model. (“Road vehicles – Functional safety”) yêu cu kim thvà  
Yêu cu thông thường cho vic kim thmô hình là mt  
Trong [1], Godboley et.al. sinh dliu kim thcho mô đánh giá các độ phCC, DC, MC/DC. MATLAB/Simulink  
hình Simulink với Độ phnhánh. Đầu tiên, tác gisinh có mt công cphc vviệc đánh giá Độ phnày:  
code C cho mô hình Simulink, sau đó áp dng công cSimulink Design Verifier (SLDV) và Simulink  
kim thcho code C để thu được bdliu kim thvà Verification and Validation (V&V).  
tính toán các độ phCC, DC, MC/DC. Vấn đề duy nht  
Decision coverage (DC) hay còn được biết đến là Branch  
ca phương phướng này là nó sdng 1 công ckim thcoverage (Bao phnhánh). Độ phủ DC đánh giá số lượng  
tĩnh cho code C. Do vy, phương pháp này không khthi các các điểm quyết đꢃnh, rꢀ nhánh (như là if, switch )  
vi mô hình ln.  
trong hệ thống được thực thi cho cả trường hợp giá trꢃ true  
Trong [14], Tomita đề xut 1 phương pháp kim thử và trường hợp false khi thực hiện kiểm thử.  
trong đó mi tín hiu vào được gán cho 1 khuôn mu sn  
Condition coverage (CC) tương tự như bao phủ quyết  
(tín hiệu sine,step...) . Sau đó, mt dliu kim thslà 1 đꢃnh nhưng nó có độ nhy tốt hơn với các điều kin con.  
trường hp cthca khuôn mu này. Phương pháp này Độ phủ DC đánh giá số lượng các biểu thức Boolean con  
cho php sinh dliu kim th1 cách ddàng và kim soát trong tꢆng điểm quyết đꢃnh của hệ thống cho cả trường hợp  
vic sinh dliu thông qua slượng ít tham sca khuôn giá trꢃ true và trường hợp false khi thực hiện kiểm thử. Các  
mu (tn s, biên độ...) thay vì phi sinh dliu cho toàn biu thức boolean con được phân tách bng các php logic-  
btín hiu. Tuy nhiên, khi mô hình lớn, số lượng inports AND hoc logic-OR nếu cùng xy 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ó thkhông được như kì vng.  
Modified condition and decision coverage (MC/DC) là  
Bài báo này đề xut 1 phương pháp sinh dliu kim mức đánh giá chi tiết cho tꢆng biểu thức điều kiện. Độ phủ  
thtự động da trên các loi tín hiu mu 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 bdliu kim thử tꢆng điểm quyết đꢃnh của hệ thống cho cả trường hợp true  
với độ phcao. Kết quthnghim cho thy phương pháp và trường hợp false và giá trꢃ này sꢀ phải quyết đꢃnh tới cả  
đề xut cho kết qutt hơn phương pháp kim thtrong 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  
Mt test data cho mô hình hệ thống nhúng được xem như  
là 1 vector ca các tín hiu inport. Các tín hiu có thể ꢉ  
dng bt kì. Tuy nhiên, các tín hiu inport được cung cp  
bi các thiết bꢃ điều khin, hoặc được sinh ra bi một đối  
tượng vt lvà thường tuân theo các đꢃnh lut vt l. Do  
vy, ta không nht thiết phi sdng các tín hiu bt kì.  
Ngoài ra, vic sdng các loi tín hiu vào mu (sine,  
step,...) sgiúp điều khin tín hiệu đơn gin hơn vi chỉ  
mt vài tham s(ví d, tn s, cường độ...). [14] sdng  
các tín hiu 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 to bi nhiu loi blocks, bao gꢁm: inport/outport  
Đꢀnh ngha 1[14]: Test data/Bộ Test data.  
Mt test data là mt nhóm các tín hiệu đầu vào. Mt bộ  
test data là mt tp các test data.  
(vào/ra),  
mathematical  
operator  
(php  
toán),  
logical/relational operator (php logic/quan h),  
(multiport) switch, delay... Các blocks liên kết vi nhau  
bng lines, truyn dliu Boolean, integer hoc  
floating/fixed point gia chúng. Đặc biệt, mt mô hình hệ  
thống nhúng cho phꢈp nhận được mt số tín hiệu (các giá  
trꢃ liên tục theo thời gian) bằng cách sdng các block  
Inport và to ra mt số tín hiệu đầu ra được đại din bi các  
block Outport.  
Vi mt test data, độ phca mô hình nhúng là độ phủ  
ca các đối tượng trong mô hình. Độ phca mô hình cho  
mt bộ test data là tng hp các độ phca tng test data.  
Trong các độ phDC, 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, php relation, block chuyển đꢂi (multiport  
switch), các subsystem vi các cꢂng điều khin hot  
độ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 hc máy tính, mức độ ph(Test coverage)  
là mt thước đo được sdụng để mô tmức độ mt hệ  
thống được thc thi trên mt btest data cth. Mt bộ  
test data có mức độ phcao sꢀ làm cho nhiu 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ệ  
Ly mt ví dụ đơn giản như sau:  
thống harness như vậy.  
Mt 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}  
Bng 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 ngha 2[14]: Độ phủ  
Mt test data là phDC đầy đủ nếu, đối vi mꢄi đối  
tượng để đánh giá b, tt cgiá trra có thcủa b đều được  
xy ra ti mt thời điểm nào đó bi mt test data trong bộ  
test data. Mt test data là phCC đầy đnếu, vi mꢄi điều  
kin c ca b, mi giá trra có thca c xy ra ti mt thi  
điểm nào đó bi mt test data trong btest data. Mt test  
data là phMC/DC đầy đủ nếu, đối vi mi b mà quyết  
đꢃnh phthuc vào nhiều điều kin c1, ..., cn, test data bao  
gm các test data trong đó tng cm nh hưꢉng độc lập đến  
decision ca nó.  
Khi áp dụng kỹ thuật kiểm thử theo cặp, ta có tt c13  
ca kim 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 vi mi ca kim thtruyn 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 độ phDC, CC, MC/DC cho mô hình. Nếu độ phủ lại kỹ thuật sinh pairwise test nữa.  
ca ca kim thsau lớn hơn hoặc bng ca kim thử trước,  
hin thkết qutính toán độ phlê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 độ phca các ca kim th, kết qutrvlà 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 ngu nhiên mt test data ng viên (là mt  
nhóm các tín hiu inport).  
Bước 2: Chy mô phng cho mô hình vi test data va  
sinh và đánh giá độ phca nó. Vic chy mô phng và  
đánh giá các độ phCC, DC, MC/DC.  
Bước 3: Nếu test data này làm tăng đphDC hoc CC  
hoc MC/DC, ta thêm nó vào btest data.  
Bước 4: Các bước trên được thc hin lp đi lặp li cho  
tới khi đạt độ phtối đa hoặc đạt ti ngưꢋng slượng  
ln lp 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à mt  
phương pháp kim thhộ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 da trên squan  
sát cho thy phn ln lꢄi đều bt ngun tsự tương tác gia  
hai tham số. Do đó, pairwise testing tạo ra các ca kim thử  
phhết giá trca 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 ca mô hình là Inport1 và Inport2, suy  
ra số đầu vào ca mô hình là 2.  
Giả sử, Trong mi Inport, c6 loại tín hiệu đưꢃc sử  
dng: 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, stín hiu ssử  
dng ca 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 gm:  
• 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) thc hin chy mô phng  
cho mô hình MT vi thiết lp inport là t.  
Hàm checkMCDC() trvgiá trphtheo DC, CC,  
và MC/DC khi chy thêm mô phng vi t.  
Thut toán này chla chn các test data t vào tp test  
data T nếu mô phng MT vi t làm tăng độ phDC, hoc  
CC, hoc 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 ĐÁ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.  
Thut ton 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 Thut 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 btest 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 đề xut một phương pháp để sinh test data tự  
động cho các mô hình hthng nhúng vi tín hiệu đu vào  
liên tc. Thay vì sinh test data là các tín hiu ngu nhiên,  
kỹ thuật kiểm thử theo cặp được sdng nhm giúp vic  
sinh dliu kim thhiu quhơn. Đthc hin vic này,  
Thut toán 1 đã được đề xut nhm 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.  
Nhvy, các test data cho mô hình nhúng có thể được sinh  
và thc hin tự động. Kết quthnghim bước đầu cho  
thy phương pháp đề xut có khnăng sinh ra btest data  
cho các mô hình nhúng với Độ phcao hơn so vi phương  
pháp đề xut 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 trin của đề tài là áp dng các kthut phân  
tích tĩnh (static analysis) để đưa ra thông tin vmô hình, tꢆ  
đó htrvic sinh test data có Độ phcao hơn. Mt hướng  
phát trin khác của đề tài là thnghim các phương pháp  
kim thvà sinh dliu test khác, tꢆ đó đưa ra la chn  
các test data có độ phcao hơn na.  
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 ti Hà Nội. Năm 2004,  
bà tt nghiệp Kỹ sư tài năng Công  
nghệ thông tin ti Trường Đại hc  
Bách khoa Hà Nội. Năm 2007 bà  
nhận bằng Thc sĩ khoa hc ti  
Trường Đại học Sư Hà Ni. Năm  
2010, bà nhn hc vTiế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 vc nghin cu: 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 nghphn mm.  
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 ModelsWorkshop 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  
pdf 6 trang yennguyen 08/04/2022 4560
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:

  • pdfsinh_du_lieu_kiem_thu_cho_mo_hinh_he_thong_nhung_su_dung_ky.pdf