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

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.

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 trang 1

Trang 1

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 trang 2

Trang 2

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 trang 3

Trang 3

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 trang 4

Trang 4

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 trang 5

Trang 5

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 trang 6

Trang 6

pdf 6 trang duykhanh 4000
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

Tóm tắt nội dung 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

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
Bảng 1: Các ca kiểm thử theo cặp 
 Inport1 Inport2 Inport3 Inport4 
 2 4 6 1 
 2 5 2 5 
 3 5 1 1 
 Hình 1: Mô hình hệ thống nhúng harness trong 
 2 4 5 5 
 Simulink cho phép thêm các test data. 
 1 4 2 1 
 Định nghĩa 2[14]: Độ phủ 3 5 6 5 
 Một test data là phủ DC đầy đủ nếu, đối với mỗi đối 3 5 5 1 
tượng để đánh giá b, tất cả giá trị ra có thể của b đều được 3 4 2 5 
xảy ra tại một thời điểm nào đó bởi một test data trong bộ 1 5 6 5 
test data. Một test data là phủ CC đầy đủ nếu, với mỗi điều 1 4 1 5 
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 1 4 5 1 
điểm nào đó bởi một test data trong bộ test data. Một test 2 5 1 1 
data là phủ MC/DC đầy đủ nếu, đối với mỗi b mà quyết 2 4 6 1 
đị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 Khi áp dụng kỹ thuật kiểm thử theo cặp, ta có tất cả 13 
decision của nó. ca kiểm thử phủ hết tất cả các cặp giá trị xảy ra của 2inport s 
 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 
toán hết độ phủ của các ca kiểm thử, kết quả trả về là các DỮ LIỆU KIỂM THỬ MÔ HÌNH HỆ THỐNG 
độ phủ DC, CC, MCDC cao nhất và bộ test. Cụ thể: NHÚNG 
 III.1. Mã hoá và giải mã miền dữ liệu đầu vào tương ứng 
 Bước 1: Sinh ngẫu nhiên một test data ứng viên (là một với kỹ thuật kiểm thử theo cặp 
 nhóm các tín hiệu inport). 
 Mô hình hệ thống nhúng đang ở dạng sơ đồ với các 
 Bước 2: Chạy mô phỏng cho mô hình với test data vừa 
 inport, và một file mô tả các tín hiệu sẽ sử dụng để truyền 
 sinh và đánh giá độ phủ của nó. Việc chạy mô phỏng và 
 vào các inport. 
 đánh giá các độ phủ CC, DC, MC/DC. 
 Tuy nhiên, do yêu cầu của kỹ thuật kiểm thử theo cặp 
 Bước 3: Nếu test data này làm tăng độ phủ DC hoặc CC 
 cần đầu vào là các tham số, mỗi tham số nhận các giá trị 
 hoặc MC/DC, ta thêm nó vào bộ test data. 
 rời rạc, không phải là các tín hiệu. 
 Bước 4: Các bước trên được thực hiện lặp đi lặp lại cho 
 Vì vậy, ta cần mã hoá miền dữ liệu đầu vào thành các bộ 
 tới khi đạt độ phủ tối đa hoặc đạt tới ngưỡng số lượng 
 tham số và giá trị dựa theo định nghĩa sau. 
 lần lặp cho trước. 
 Định nghĩa 1: Cho mô hình M, miền dữ liệu D = 
II.2 Kĩ thuật kiểm thử theo cặp {(p1,, pn) | pi {1,,ki }}, với tham số pi tương ứng với 
 Pairwise testing (hay All-pairs testing) [12] là một đầu vào thứ i trong mô hình M, {1,ki} là chỉ số cho các 
phương pháp kiểm thử hộp đen. bằng cách sử dụng phương loại tín hiệu đầu vào thứ i có thể nhận. 
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 Ví dụ 1: Đầu vào của mô hình là Inport1 và Inport2, suy 
sát cho thấy phần lớn lỗi đều bắt nguồn từ sự tương tác giữa ra số đầu vào của mô hình là 2. 
hai tham số. Do đó, pairwise testing tạo ra các ca kiểm thử Giả sử, Trong mỗi Inport, có 6 loại tín hiệu được sử 
phủ hết giá trị của hai tham số. Thực nghiệm cho thấy, dụng: Sine, Step, Square, Linear, Constant, Triangle. Ta 
Pairwise testing có khả năng sinh test data phủ MC/DC tốt đánh chỉ số cho Sine là 1, Step là 2, Square là 3, Linear là 
hơn so với kiểm thử ngẫu nhiên [12]. 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 
 Phương pháp pairwise testing bao gồm: đó, miền D là: {(inport1, inport2)| inport1, inport2 
 • Lựa chọn tham số đầu vào và các giá trị tương ứng   {1,2,3,4,5,6}} 
 • Lấy tổ hợp (pairwise) của các giá trị giữa 2 tham số 
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ẽ cụ thể tương ứng với chỉ số của nó. 
thu được các bộ giá trị (v1,,vn) đảm bảo phủ hết các cặp • Hàm simulation(MT,t) thực hiện chạy mô phỏng 
giá trị xảy ra của 2 tham số pi, pj bất kì. Chúng ta cần cho mô hình MT với thiết lập inport là t. 
chuyển bộ giá trị này thành test data của mô hình M tức là • Hàm checkMCDC() trả về giá trị phủ theo DC, CC, 
tương ứng với inport i của mô hình M, sẽ nhận tín hiệu thứ và MC/DC khi chạy thêm mô phỏng với t. 
vi. 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 
III.2. Thuật toán đề xuất CC, hoặc MC/DC. 
 Để áp dụng kỹ thuật kiểm thử theo cặp vào sinh dữ liệu 
 IV. THỰC NGHIỆM VÀ ĐÁNH GIÁ 
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 toán đề xuất được cài đặt và thử nghiệm bằng 
thuật kiểm thử theo cặp, cụ thể ta phải bổ xung các yêu cầu mScript trên môi trường MATLAB để sinh dữ liệu test cho 
sau: 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 
 - ta cần mã hoá thông tin các inport của mô hình thành 
 sẽ là bộ test data và độ phủ tương ứng. 
dạng tham số (là inport) giá trị (là các loại tín hiệu mà
 4 mô hình được lựa chọn từ các mô hình được áp dụng 
inport đó có thể nhận) để thành đầu vào của kĩ thuật kiểm trong thực tế của các hệ thống nhúng trong điều khiển ô tô. 
thử theo cặp Bảng sau mô tả các mô hình bao gồm số lượng blocks trong 
 - thực hiện sinh các ca kiểm thử theo cặp để phủ hết các mô hình, số lượng inport tương ứng. 
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 Model No. Số lượng Số lượng 
đầu vào cho mô hình hệ thống nhúng. block inport 
 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 Model 1 325 2 
inports theo kĩ thuật kiểm thử theo cặp. 
 Model 2 501 2 
 Thuật toán 1 được đề xuất như sau. 
 Thuật toán 1: Sinh Testsuite áp dụng kỹ thuật Model 3 453 19 
pairwise testing Model 4 2432 51 
Input: 
- mô hình cho kiểm thử MT 
- mô tả cấu hình các loại tín hiệu C Ba thử nghiệm được thực hiện để đánh giá các độ phủ 
Output: DC, CC, MC/DC và so sánh giữa kiểm thử ngẫu nhiên và 
- test data T phương pháp đề xuất (áp dụng kiểm thử theo cặp). Để đảm 
Các bước thực hiện: 
Begin bảo việc so sánh là công bằng, số lượng lần lặp và thời gian 
 D = encode(MT, C); thực hiện được cấu hình giống nhau giữa kiểm thử ngẫu 
 PT = pairwise (D); nhiên và phương pháp đề xuất. Kết quả thử nghiệm được 
 ST = decode (PT); chỉ ra ở 3 bảng sau (Bảng 3, Bảng 4, Bảng 5) và biểu đồ 
 T= ø; minh hoạ tương ứng (Hình 2, Hình 3, Hình 4). Kết quả ở 
 Coverage = (0,0,0); 
 dạng % số DC (hay CC, MC/DC) mà các ca kiểm thử đã 
 for t ST 
 begin phủ được trên tổng số DC (hay CC, MC/DC) có trong mô 
 simulation (MT,t); hình. 
 tCoverage = checkMCDC(); Bảng 3: So sánh độ phủ DC giữa random và pairwise 
 if (Coverage <tCoverage) 
 begin 
 Model No. random (%) Pairwise (%) 
 T = T  {temp}; 
 Coverage = tCoverage; Model 1 86 86 
 end if; 
 end for; Model 2 33 33 
 return T; 
end; Model 3 85 85 
 Model 4 84 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ĩa1 . 
 • 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 
 Đỗ Thị Bích Ngọc 
 100 
 90 Từ kết quả thử nghiệm trên, ta có nhận xét: Với các mô 
 80 hình nhỏ (số lượng block, số lượng inport nhỏ), thì việc sử 
 70
 60 dụng phương pháp sinh test data ngẫu nhiên (Random) sẽ 
 50 đạt hiệu quả tương đương, còn với các mô hình lớn, thì 
 40 phương pháp áp dụng pairwise cho kết quả tốt hơn, đặc biệt 
 30 là độ phủ MC/DC, CC. 
 20
 10
 0 V. KẾT LUẬN 
 Model 1 Model 2 Model 3 Model 4 Bài báo đề xuất một phương pháp để sinh test data tự 
 random Pairwise
 độ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, 
 Hình 2: Biểu đồ so sánh độ phủ DC kỹ thuật kiểm thử theo cặp được sử dụng nhằm giúp việc 
 Bảng 4: So sánh độ phủ CC giữa random và pairwise 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 
 Model No. random (%) Pairwise (%) thử và mô hình thành đầu vào của thuật toán pairwise 
 Model 1 93 93 testing, sau đó kết quả của thuật toán pairwise được biến 
 đổi thành cáctest data của mô hình, tức là các tín hiệu mẫu. 
 Model 2 66 69 Nhờ vậy, các test data cho mô hình nhúng có thể được sinh 
 Model 3 71 77 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 
 Model 4 56 63 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ướ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 
 Hình 3: Biểu đồ so sánh độ phủ CC 
 [2] Godefroid, P., Klarlund, N. and Sen, K., 2005, June. 
Bảng 5: So sánh độ phủ MC/DC giữa random và pairwise DART: directed automated random testing. In ACM 
 Sigplan Notices (Vol. 40, No. 6, pp. 213-223). ACM. 
 Model No. random (%) Pairwise (%) [3] Holling, D., Pretschner, A. and Gemmar, M., 2014, 
 September. 8cage: lightweight fault-based test generation 
 Model 1 63 63 
 for simulink. In Proceedings of the 29th ACM/IEEE 
 Model 2 31 31 international conference on Automated software 
 engineering (pp. 859-862). ACM. 
 Model 3 41 59 [4]. Kuhn, D. Richard, Dolores R. Wallace, and Albert M. 
 Model 4 57 79 Gallo. "Software fault interactions and implications for 
 software testing." IEEE transactions on software 
 engineering 30.6 (2004): 418-421. 
 90 [5] Matinnejad, R., Nejati, S., Briand, L.C. and 
 80
 70 Bruckmann, T., 2016, May. Automated test data 
 60 generation for time-continuous simulink models. In 
 50 Proceedings of the 38th international conference on 
 40 software engineering (pp. 595-606). ACM. 
 30 [6] Matinnejad, R., Nejati, S., Briand, L. C., & Bruckmann, 
 20 T. (2016, May). SimCoTest: A test data generation tool for 
 10
 Simulink/Stateflow controllers. In Proceedings of the 38th 
 0
 Model 1 Model 2 Model 3 Model 4 International Conference on Software Engineering 
 random Pairwise Companion (pp. 585-588). ACM. 
 [7] Pacheco, C., Lahiri, S.K., Ernst, M.D. and Ball, T., 
 2007, May. Feedback-directed random test generation. In 
 Hình 4: Biểu đồ so sánh độ phủ MC/DC Proceedings of the 29th international conference on 
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 Đỗ Thị Bích Ngọc sinh ngày 
Society. 08/03/1981 tại Hà Nội. Năm 2004, 
[8] Peranandam, P., Raviram, S., Satpathy, M., Yeolekar, bà tốt nghiệp Kỹ sư tài năng Công 
A., Gadkari, A. and Ramesh, S., 2012, March. An nghệ thông tin tại Trường Đại học 
integrated test generation tool for enhanced coverage of Bách khoa Hà Nội. Năm 2007 bà 
Simulink/Stateflow models. In Proceedings of the nhận bằng Thạc sĩ khoa học tại 
Conference on Design, Automation and Test in Europe Trường Đại học Sư Hà Nội. Năm 
(pp. 308-311). EDA Consortium. 2010, bà nhận học vị Tiến sĩ 
[9] Richardson, D.J., Aha, S.L. and O'malley, T.O., 1992, chuyên ngành Khoa học thông tin 
June. Specification-based test oracles for reactive systems. tại Viện Khoa học và Công nghệ 
In Proceedings of the 14th international conference on Tiên tiến Nhật Bản (JAIST). Từ 
Software engineering (pp. 105-118). ACM. 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: 
https://www.mathworks.com/products/sldesignverifier.ht 
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. 

File đính kèm:

  • pdfsinh_du_lieu_kiem_thu_cho_mo_hinh_he_thong_nhung_su_dung_ky.pdf