Tìm hiểu về công cụ tự động sinh test case tự động kiểm thử phần mềm
MỞ ĐẦU !"#$%&' ()*$%%+$#$&, ++/#!01" 2$3+ !45+/ 657&89:;<=>?" +&@ *3+/! 3AB6+/ +!C3AD!D"E 6F#& G+H:;#I(3 893539!J.:K+H!L!F5- :$*M@N5:;;+ O M2!&8(.*'3893539!J.: K+HCD#6! $2;PBQ5'.3DP6R ;+& 8+*K' 45893539J.:K+H+8939 & N#'D8939$893539.S 5&@(.'.SR; +3A36!< 8939$893539*CD6F 3A/+$893539T&@(.435B5 #'!T6C5'$8935392U #I(!UD2'3;K5Q5 939*6FQ5893539& VTT35< Mở đầu:W!& Chương 1:X3M)(& Chương 2:8R5393539!& Chương 3:X#I(393539 !& Chương 4:Y555Z+9F& Chương 5: Một số ví dụ thực thi tượng trưng với jpf. Kết luận: Trình bày kết quả và nêu nhận xét. 1 2 CHƯƠNG 1: CƠ SỞ LÝ LUẬN 1.1. Tổng quan kiểm thử phần mềm. #5!F$! 62::5'6FQ53D [+\ !F#&C6 +55!*!( !J!C]!6!F/Q #5& 8#I(##'O4M ;+ !"!% ^25T%$3C_0: [P."`;+ `3D [U< • V;!F7.:+a#$#$ & • 8'!B#b7& • XC#5!F/!"& • @!;!F7Q52::5& 8H.J*#C!F 26;B&89 .%#!F$35#.: !FP!\(!F6c9 ^(F4+5 :!45E\_#!F$ : 3P +&N(.* %#2\9. 6!\& Vì vậy tích hợp với quá trình phát triển phần mềm, có một số lợi ích: • d5%C.53*C K5!D+ 35/54K!";K4 &V F$"Q5#;& • X6'D): +6 F$%& • X6K3+ P95E E*!!O3& • V3D[+5.:& 1.2. Khái niệm Test Case 3 8+*'K .#C22D35<(#$4*$ #$893*933*93!< Hình 1: Một quy trình kiểm tra cơ bản. 8!C893539!F$2$#$93&G !" Q5$#$93$O!\8935392 #5$%:2D&W5!4$#$ 93$3;57*C2D!D6D# 5e]e$6D.:#5& @(.'45893539D!25 7!!D2D6F&V!F!C* $D893539f G893539C#*!F$ #$!#!FC15L.:!55. #'&G893539K25Tg2D< • G'D<!D!#C!$#& • V<!D!F5.+/$*!F3 + !!#& • $D<#$DDJ!F# *;1!F!L15L.:& 893539C)h5'H57* !"!55 KF93U5%6C*! 6F+!F& 1.3. Các nhóm kiểm định phần mềm 8h#!\6F5.: $*C#I(C-9 25C"<d-"LTh^35+955.33_*# +/!^+.5+5593_#I(;+5 4 :'^+9i2539+9Z5_&j5C!( -56F4;LT*# CHP)4;JF5k' & Phân tích mã nguồn tĩnh #I(% #'.:4.!C&'#I (kiểm thử dữ liệu động!01D4.+/ !(*#I(-"LThOP9P]L TQ5& Kỹ thuật kiểm thử phần mềm dựa trên mô hình<# 5CM:M!!F!F#'!F JFC5J!FP9P]&lJFC5 F21/$Q5#O/4 /'`#"5457!F-&I( JFC5!DC5!FP9P]+!CD #'5#$K5-"! 3B'-"!C:LT& P +P*B5D3+ 93539^KF#_#&X6FQ5 # 6(F93539B 53+ &j5:""Q5!6F# !CD6F!F#!Q +0 D. ^ mn 959_ ! Q +/ ^+55 959_&8:";6(#6D !!#:^"+ <A#D!4 6Bk955293_&8#:" ;5((+/#;%!! #6B& oU#I(-"+5:'35# JFC5LTQ5!F#*- "6BQ5(+/;%! !#3A+p+&l5!C* 35(935393A5C"P*!D2D :"mn+559593$ (M;LT.&j/5*$.!F !3AD'3; .:5#&@$((.* C!F#!2U.*!94#$ 5 D[*P]!FKF*!2% *$#"3DP6& Đánh giá tập dữ liệu kiểm thử: N4J/ !D*3A#'$$#;: (6D+/!C&N5.D#O"RFQ5 +/!RFQ5*3F!3 F4S&C2* +/!*!53A!F4!9+q4&8 ##'C' !45$#$[* Orr##-#' $!C!!F6F&@$K5 D7!F(+/1C# 54!F!(.5%& VQ5.;!!.!Q2U5!!F 45.;!#&N$##'!.!Q!F$ 7#"54Q5!Th5B5213C %&X636Q5KFS#'5& 5#!D#;4 !554!Q5&XB5C45 5#!!4!F4C2U!5 2$!2*4!!#& 1.4. Vấn đề sinh Test case từ yêu cầu phần mềm 8+*K' 45893539J.:K+H+8939 & N#'D8939$893539.S 5&@(.'.SR; +3A36!<8939$ 893539*CD6F3A /+C8939$893539T^CKF 93H5_&@(.B5D[C5!T2C5 !3545893539DC[6 F&V!.*B5D:; #I(!!45893539&@45893539 !SD2'3;K5Q5 939*BD2"& lB5458935393AB9395 6!-a5qQ5.:& 6 N$2.!F3*6!C!F4213* $#K5T& @(.:;' 3893 539!J.:K+H6/" $+&l. U !"45893539CD*C6 F&WBD2'3;K5Q5939*D 2"6F!F- 5& 7 CHƯƠNG 2: TỔNG QUAN VỀ QUÁ TRÌNH SINH TEST CASE TỰ ĐỘNG 2.1. Giới thiệu @93'657 0!KQ5&VrD"Q593 2U5.E!(.Q5B5!5 r!C5C&G/'5 7'K9345893539!' D;93*%6!\!F $(9;!(&X.2. R5#I(4893539!& XR;3+ -3!# Q5!':5!$93&G 933A!F#;2M# #6(*15L.:Q5#&8"D Q5B5P(#;. 3F %!FO35#'2&V. F 6FQ5893539!F45& X#535893539!L!F !P6&G8935393:D;93*% 6!\!F$(9;! (&893539C!F$5$J.:K+H*J .:*J39539&G/F$ Q545893539J!D$#$!CBC !F3530!K3s3!3 + #!F45&8:!C*# 893539!F3525!#I353 #'6(K!D.: $#$&V.3Arr3AD"Q5P +#%!F42130 !KQ53D[& 2.2. Tổng quan về các phương pháp sinh Test case G$(!F!5545893539* 35"a:*C !"*!\3 6'&I(a:P!\893539+5: D!\&I(!\!K+a3+ T '#3!P!\(F!K+a!!F 8 2545893539HF!K+a.& N/#I(.C!F-5h!&I (hK!F+5:#)'D*F4 #I(!!4!FJ+/$2U4. #93&I(!\ :P!\ 89353925T :!L!F57t4 --&X#I('Q5 893539!F35!";4 !P!\893539& u6:;35893539+5 :!D*.:#'!4v>>?893539& N'/'!F3+ !C!F!D35 893539&J#wGx^wZ9+G+9x559_'/ !F3+ L6:;3+ F!T wGx 359i5 +553* 39i539 +553* 3999 +553*y!35893539+a!$35893 539+5:'& 2.2.1. Sinh Test case dựa trên đặc tả z893539+5:!D3893539 194!FP!\+5:!D!4 5893539J2!T4wGx&@#!Q "*.$O35-#I( !F!55Xg&X#I(!L3+ 2!T 4wGxM3M!352(! #93933!P(#93&X $(a*O5!D2!T4 ;Q5!C*!\qP4!552U3#$ FL!D&z5!C9397:[!O 35&8C4*%!F53#'6/5 !D2!T4!F!552MK3+ & G :!P!\!D!FD$!F+5: :[O35"F!#I (452!#93"65Q5 K& 2.2.2. Sinh Test case dựa trên mô hình wGx!L(!F35-J'!T $#$*'!5!F 9 !EKM"EQ5C&8.:* !T93!L#'5-D( wGx*3$ #:['C5!F& V 6!5-*2MR; *"Q593C${>?R" &V55$.! 5#DE3+ wGx93& V5'93+5:'Q5( 3+ Q52!T4&X2 !TO(*5+3* 5Q5B&X2!T42+p+0!# J4.!$4#*C64+0! #J4!.!$4!#PD.52: .4&wGxC'!C!F 2$!$#I('!F^|2}9G+9899_ !L:';ES!F3+ 93& 2.2.3. Sinh Test case hướng đường dẫn G#[3+ $F#$\.:R $35893539!K+a!L!F!55& 8!F!P6C!F(4$( !K+a&d.!L:6!Q5$ (35893539!!L6D( 35893539+5:;#$\.:& VK+a!F25!FP9P]J2J2 89353935!C!F:;!B&d ;#$\.:!F3+ !P!\893539* !01D!\6!\]35893539 D&XF$Q5.!CC#'!0126; 3!O53#'26;#I( !45+/93& 2.3. Kiểm thử phần mềm và UML XC5!493T!\* ;E**T*93D&oD3575 /3#2/55!4*S2!TwGx E3+ 5!4& 10 [...]... sinh ra các Test case cho các tiêu chuẩn chỉnh sửa thuộc tính đầy đủ, lưu giữ các Test case trong các file, và trả thông điệp mà Test case có thể được sinh ra Hình 13: OCD cho việc sinh ra các Test case chỉnh sửa đầy đủ các thuộc tính 30 Hình 14: OCD cho việc sinh ra các Test case chỉnh sửa chuyển tiếp Hình 15: OCD cho việc sinh ra các Test case chỉnh sửa cặp chuyển tiếp 31 3.1.4.3 Các thuật toán Phần. .. vai trò trong test phần mềm Đầu tiên là cung cấp các công tin cần thiết để kiểm tra hoặc là đầu ra của chương trình có đúng hay không Thứ hai là cung cấp thông tin để lựa chọn các Test case và để đánh giá sự phù hợp của test Kiểm thử dựa trên đặc tả đưa ra nhiều ưu điểm trong test phần mềm Đặc tả chuẩn của một sản phầm phần mềm có thể được sử dụng như một sự hướng dẫn cho việc thiết kế các test chức năng... KỸ THUẬT VÀ PHƯƠNG PHÁP SINH TEST CASE TỰ ĐỘNG 3.1 Kỹ thuật sinh Test case dựa trên đặc tả Kiểm thử dựa trên đặc tả lấy được các thông tin test từ một đặc tả của phần mềm khi test. Tuy nhiên, khi việc thực hiện được phát triển không chuẩn mực từ một đặc tả chuẩn mực, đặc tả có thể đóng một vai trò chủ yếu trong quá trình test bằng cách cho phép chúng ta thu được các đầu vào test và các kết quả mong... lớp…để sinh Test case Trong phần 3.3.1 trình bày từ việc sử dụng các biểu đồ trạng thái trong việc tạo ra các Test case đến việc phân tích mức độ tích hợp sử dụng biểu đồ cộng tác Kỹ thuật định ra các tiêu chuẩn cho cả test tĩnh và động của các biểu đồ cộng tác các mức Phần 3.3.2 đưa ra cơ sở tạo ra test case từ việc cải tiến các use case, use case đóng vai trò như đầu vào cho việc test thống kê tự động. .. kiểm thử, và một nền tảng cho việc tự động hóa hoàn toàn việc tạo ra các ca kiểm thử Mô hình kiểm thử: Thỏa mãn thuộc tính sử dụng các điều kiện đầu vào, các biến, và luôn luôn đúng để tạo ra kết quả, sau đó sinh ra các Test case để thỏa mãn các yêu cầu riêng biệt trong một kết quả xác nhận Công việc này liên quan chặt chẽ đến việc nghiên cứu sự tạo ra kiểm thử tự động được dựa trên mã hóa trước đó... xác định 3.1.2 Kỹ thuật sinh ra Test case dựa theo đặc tính của SCR Kiểm thử các mức độ trong phát triển phần mềm thực tế đã được thực hiện từ lâu được dựa trên các phân tích không chuẩn mực của các yêu cầu phần mềm Điều này dẫn đến các kết quả không thống nhất, các vấn đề trong việc hiểu mục đích và kết quả của việc kiểm thử, hoàn thành thiếu tính hiệu quả trong việc kiểm thử Việc xác định đúng cho... hiện kiểm thử bởi chúng mô tả chính xác phần mềm đóng vai trò như thế nào trong việc trợ giúp việc cung cấp một mẫu cái mà có thể tự động điều khiển Kỹ thuật sinh Test case dựa theo đặc tả SCR thiết lập các tiêu chuẩn và giải quyết việc sinh ra các ca kiểm thử mức độ hệ thống từ các xác nhận/các yêu cầu chức năng Những tiêu chuẩn này cung cấp một quá trình chuẩn, một phương pháp để đo lường việc kiểm thử, ... độ tự động hóa ít nhất của quá trình kiểm thử 3.1.3 Kỹ thuật tạo Test case cho đặc tả UML Phần này trình bày một cách chi tiết về làm thế nào để có thể sử dụng đặc tả UML để tạo ra Test case, và qui trình làm như thế nào Mô hình kiểm thử: UML có thể được sử dụng để xác định một vùng rộng các khía cạnh của một hệ thống Các biểu đồ trạng thái là một nơi rõ ràng nhất để bất đầu với việc tạo ra dữ liệu kiểm. .. các kết quả hoàn thành là hướng đến kiểm thử phần mềm bằng việc thực thi phần mềm thông qua các luồng xử lý hoàn chỉnh Như nó đã diễn ra, chỉnh sửa các cặp chuyển tiếp vào trong sự chuyển tiếp, nhưng chúng được thiết lập để kiểm thử phần mềm trong rất nhiều cách khác nhau 15 (1) Mức độ chỉnh sửa kế tiếp Mức độ này là tương tự với tiêu chuẩn chỉnh sửa nhánh trong kiểm thử cấu trúc Yêu cầu ở đây là mỗi... sau Để kiểm thử đầy đủ các thuộc tính với các biến khởi động sự kiện, cả giá trị trước và sau nên được kiểm thử Điều này được thực hiện bằng việc giả định hai phiên bản của biến khởi động sự kiện, A và A’, ở đó A đưa ra giá trị trước và A’ cho ra giá trị sau của nó (3) Mức chỉnh sửa các cặp chuyển tiếp Các mức độ kiểm thử trước đó là kiểm thử việc chuyển tiếp độc lập, nhưng không kiểm thử trình tự của . 93&8;5*' J$!$"E!H !F.:!893539& 11 CHƯƠNG 3: CÁC KỸ THUẬT VÀ PHƯƠNG PHÁP SINH TEST CASE TỰ ĐỘNG 3.1. Kỹ thuật sinh Test case dựa trên đặc tả +5:!D6.!F'93J! DQ5#93&8.:*#!F #'[J!D[*!DC!C 50Q.$932U]B 5!F!93#$D!FJ! .&XC550"!DC!C50 93&V:6'$!# 5!5Q5C!B5.#'&8;5 6'!57893539!!3H FQ593& +5:!D!55!93 &VD[Q53DC!F3 +. ít nhất của quá trình kiểm thử. 3.1.3 Kỹ thuật tạo Test case cho đặc tả UML Phần này trình bày một cách chi tiết về làm thế nào để có thể sử dụng đặc tả UML để tạo ra Test case, và qui trình làm. của nó. (3) Mức chỉnh sửa các cặp chuyển tiếp Các mức độ kiểm thử trước đó là kiểm thử việc chuyển tiếp độc lập, nhưng không kiểm thử trình tự của các chuyển tiếp trạng thái. Mức độ này đòi hỏi