Trang 3 5Các khái niệm Một sai sót error là một sựnhầm lẫn hay một sựhiểu sai trong quá trình phát triển phần mềm của người phát triển Một lỗi fault, defect xuất hiện trong phần mềm như
Ki m th (9) Nguy n Thanh Bình Khoa Cơng ngh Thông tin Trư ng ð i h c Bách khoa ð i h c ðà N ng N i dung Gi Ki Ki Ki i thi m th m th m th u v ki m th ti n trình phát tri n h p đen h p tr ng Ki m th ? IEEE: Ki m th ti n trình v n hành h th ng ho c thành ph n dư i nh ng ñi u ki n xác ñ nh, quan sát ho c ghi nh n k t qu ñưa ñánh giá v h th ng ho c thành ph n Myers: Ki m th ti n trình th c thi chương trình v i m c đích tìm th y l i (The art of software testing) Ki m th ? Ki m th ≠ G r i (debug) Ki m th • nh m phát hi n l i G r i • xác đ nh b n ch t l i ñ nh v l i chương trình • ti n hành s a l i Các khái ni m M t sai sót (error) m t s nh m l n hay m t s hi u sai trình phát tri n ph n m m c a ngư i phát tri n M t l i (fault, defect) xu t hi n ph n m m k t qu c a m t sai sót M t h ng hóc (failure) k t qu c a m t l i xu t hi n làm cho chương trình khơng ho t đ ng đư c hay ho t đ ng cho k t qu khơng mong đ i sai sót l i h ng hóc Các khái ni m D li u th (test data) d li u vào c n cung c p cho ph n m m th c thi K ch b n ki m th (test scenario) bư c th c hi n khi ki m th Phán xét ki m th (test oracle) ñánh giá k t qu c a ki m th • t đ ng: chương trình • th cơng: ngư i Các khái ni m Ki m th viên (tester) ngư i th c hi n ki m th Ca ki m th (test case) t p d li u th ñi u ki n th c thi k t qu mong ñ i Các khái ni m Ti n trình ki m th Ki m th thư ng bao g m bư c thi t k ca ki m th bư c t o d li u th • ki m th v i t t c d li u vào c n thi t • khơng th ki m th “vét c n” • ch n t p d li u th ñ i di n t mi n d li u vào • d a tiêu chu n ch n d li u th bư c th c thi chương trình d li u th • cung c p d li u th • th c thi • ghi nh n k t qu bư c quan sát k t qu ki m th • th c hi n ho c sau th c thi • so sánh k t qu nh n ñư c k t qu mong ñ i Ti n trình ki m th 10 Khó khăn c a ki m th Liên quan đ n ti n trình phát tri n g m nhi u giai đo n phát tri n • c a m t giai ño n vào c a giai đo n khác • m t mát thông tin V m t ngư i thi u đào t o tr ng vai trị ki m th V m t k thu t không t n t i thu t tốn t ng qt có th ch ng minh s đ n hồn tồn c a b t kỳ m t chương trình 11 T i ki m th H p th c hóa (validation) ch r ng s n ph m ñáp ng ñư c yêu c u ngư i s d ng Xác minh (verification) ch r ng s n ph m th a mãn ñ c t yêu c u Phân bi t h p th c hóa xác minh “Verification: Are we building the product right ?” “Validation: Are we building the right product ?” 12 Ki m th ti n trình phát tri n Các k thu t ki m th k thu t ki m th tĩnh (static testing) k thu t ki m th đ ng (dynamic testing) • ki m th h p đen (black-box testing) • k thu t ki m th ch c (functional testing) • ki m th h p tr ng (white-box testing) • k thu t ki m th c u trúc (structural testing) Các ho t ñ ng ki m th /chi n lư c ki m th ki ki ki ki m m m m th th th th ñơn v (unit testing) tích h p (integration testing) h p th c hóa (validation testing) h i quy (regression testing) 13 Ki m th ti n trình phát tri n Ki m th ñơn v (unit testing) ki m th m i đơn v ph n m m (mơ-đun) s d ng k thu t ki m th h p ñen d li u th ñươc t o d a tài li u thi t k có th s d ng c ki m th h p tr ng ki m th tĩnh • ph n m m yêu c u ch t lư ng cao thư ng ñư c th c hi n ph n c ng phát tri n ph n m m 14 Ki m th ti n trình phát tri n Ki m th tích h p (integration testing) sau ñã th c hi n ki m th ñơn v ghép n i ñơn v /thành ph n ph n m m ki m th s ghép n i, trao ñ i d li u gi a ñơn v /thành ph n s d ng k thu t ki m th h p đen mơt s trư ng h p, s d ng k thu t ki m th h p tr ng • chi phí cao, khó khăn d li u th đư c t o d a thi t k t ng th 15 Ki m th ti n trình phát tri n Ki m th tích h p (2) c n xây d ng thêm • nút trám (stub): thành ph n khác mô ph ng thành ph n ph n m m chưa đư c tích h p • trình u n (driver): thành ph n t o d li u vào cho m t vài thành ph n ph n m m t p h p ñang ñư c ki m th 16 Ki m th ti n trình phát tri n Ki m th tích h p (3) 17 Ki m th ti n trình phát tri n Ki m th tích h p (4) chi n lư c t xu ng (top-down) • ki m th tích h p thành ph n trư c, sau thêm vào thành ph n ñư c g i tr c ti p b i thành ph n v a ki m th • cho phép xác ñ nh s m l i v ki n trúc • b d li u th có th đư c tái s d ng cho bư c ti p theo • nhiên chi n lư c địi h i ph i xây d ng nhi u nút trám chi n lư c t dư i lên (bottom-up) • ki m th thành ph n không g i thành ph n khác, sau thêm vào thành ph n g i thành ph n v a ki m th • s d ng nút trám • l i xác ñ nh l i tr 18 Ki m th ti n trình phát tri n Ki m th h p th c hóa (validation testing) g i ki m th h th ng (system testing) th c hi n sau ki m th tích h p k t thúc ch ng minh ph n m m th c hi n ñúng mong ñ i c a ngư i s d ng d a vào yêu c u ngư i s d ng ch s d ng k thu t ki m th h p ñen nên th c hi n mơi trư ng mà ph n m m s đư c s d ng 19 Ki m th ti n trình phát tri n Ki m th h i quy (regression testing) ph n m m sau ñưa vào s d ng, có th có ch nh s a • có th phát sinh l i m i c n ki m th l i: ki m th h i quy thư ng tái s d ng b d li u th ñã s d ng giai ño n trư c 20 10 Ki m th giá tr biên Nguyên t c ch n d li u th N u d li u vào thu c m t kho ng, ch n • giá tr biên • giá tr = giá tr biên ± sai s nh nh t N u giá tr vào thu c danh sách giá tr , ch n • ph n t th nh t, ph n t th hai, ph n t k cu i ph n t cu i N u d li u vào ñi u ki n ràng bu c s giá tr , ch n • s giá tr t i thi u, s giá tr t i ña m t s s giá tr không h p l T v n d ng kh th c t ñ ch n giá tr biên c n ki m th 29 Ki m th giá tr biên Ví d (1) Chương trình nh n vào ba s th c, ki m tra ba s th c có đ dài ba c nh m t tam giác N u ñ dài ba c nh c a m t tam giác, ki m tra xem tam giác thư ng, cân, đ u ki m tra tam giác nh n, vuông hay tù 30 15 Ki m th giá tr biên Ví d (2) D li u th 1, 1, 0, 0, 4, 0, 1, 2, 3.00001 0.001, 0.001, 0.001 99999, 99999, 99999 3.00001, 3, 2.99999, 3, 3, 4, 5.00001 3, 4, 5, -3, -3, Không tam giác Ch m t m M t c nh b ng khơng G n m t tam giác Tam giác r t nh Tam giác r t l n Tam giác g n ñ u Tam giác g n cân Tam giác giác g n vuông B n giá tr Ch m t giá tr D li u vào r ng Giá tr âm 31 Ki m th l p tương ñương Ý tư ng phân ho ch mi n d li u vào thành l p d li u có quan h v i m i l p dùng ñ ki m th m t ch c năng, g i l p tương ñương 32 16 Ki m th l p tương ñương Ba bư c ñ i v i m i d li u vào, xác ñ nh l p tương ñương t mi n d li u vào ch n d li u ñ i di n cho m i l p tương ñương k t h p d li u th b i tích ð -các đ t i b d li u ki m th 33 Ki m th l p tương ñương Nguyên t c phân ho ch l p tương ñương N u d li u vào thu c m t kho ng, xây d ng • l p giá tr l n • l p giá tr nh • n l p giá tr h p l N u d li u t p h p giá tr , xây d ng • l p v i t p r ng • l p nhi u giá tr • nl ph pl N u d li u vào ñi u ki n ràng bu c, xây d ng • l p v i ràng bu c ñư c th a mãn • l p v i ràng bu c khơng đư c th a mãn 34 17 Ki m th l p tương đương Ví d Bài tốn tam giác Thư ng Cân ð u Nh n 6,5,3 6,1,6 4,4,4 Không tam giác Vuông 5,6,10 7,4,4 không th Tù 3,4,5 √2,2,√2 không th -1,2,8 35 Bài t p Ki m th giá tr biên Vi t m t chương trình th ng kê phân tích m t t p ch a tên ñi m c a sinh viên m t năm h c T p ch a nhi u nh t 100 trư ng M i trư ng ch a tên c a m i sinh viên (20 ký t ), gi i tính (1 ký t ) m c a mơn h c (t đ n 10) M c đích chương trình: • tính di m trung bình m i sinh viên • tính m trung bình chung (theo gi i tính et theo mơn h c) • tính s sinh viên lên l p (đi m trung bình 5) Xây d ng d li u th cho chương trình b i ki m th giá tr biên 36 18 Bài t p Ki m th l p tương đương Vi t chương trình d ch, ñó có câu l nh FOR, ñ c t câu l nh FOR sau: “L nh FOR ch ch p nh n m t tham s nh t bi n đ m Tên bi n khơng đư c s d ng hai ký t khác r ng Sau ký hi u = c n dư i c n c a bi n ñ m Các c n c n dư i s nguyên dương ñư c ñ t gi a t khóa TO” Xây d ng d li u th ñ ki m th câu l nh FOR theo k thu t ki m th l p tương ñương 37 Ki m th h p tr ng D a vào mã ngu n/c u trúc chương trình Xây d ng d li u th sau mã hóa/l p trình Thư ng phát hi n l i l p trình Khó th c hi n Chi phí cao 38 19 Các k thu t ki m th h p tr ng Ki m th d a ñ th lu ng ñi u n Ki m th d a ñ th lu ng d li u Ki m th ñ t bi n (mutation testing) 39 ð th lu ng ñi u n ð th lu ng ñi u n (Control Flow Graph ðTLðK) đ th có hư ng, bi u di n m t chương trình đ nh: bi u di n l nh tu n t hay kh i l nh cung: bi u di n r nhánh m t ñ nh vào m t ñ nh ñư c thêm vào ñ bi u di n ñi m vào c a chương trình L trình (path) ðTLðK xu t phát t ñ nh vào ñi qua ñ nh cung ñ th k t thúc t i ñ nh 40 20 ð th lu ng u n Ví d if x