intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Công nghệ phần mềm: Chương 9 - Nguyễn Thanh Bình

Chia sẻ: Fgnfffh Fgnfffh | Ngày: | Loại File: PDF | Số trang:29

107
lượt xem
22
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung chương 9 Kiểm thử thuộc bài giảng Công nghệ phần mềm trình bày các kiến thức cơ bản như: giới thiệu chung về kiểm thử, kiểm thử trong tiến trình phát triển, kiểm thử hộp đen và kiểm thử hộp trắng...bài giảng thực sự hữu ích dành cho sinh viên ngành công nghệ thông tin.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Công nghệ phần mềm: Chương 9 - Nguyễn Thanh Bình

  1. 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 i thi u v ki m th Ki m th trong ti n trình phát tri n Ki m th h p ñen Ki m th h p tr ng 2 1
  2. Ki m th là gì ? IEEE: Ki m th là 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 và ñưa ra ñánh giá v h th ng ho c thành ph n ñó Myers: Ki m th là 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) 3 Ki m th là gì ? 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 và ñ nh v l i trong chương trình • ti n hành s a l i 4 2
  3. Cá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ư là k t qu c a m t sai sót M t h ng hóc (failure) là 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 nhưng cho k t qu không như mong ñ i sai sót l i h ng hóc 5 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 trong khi th c thi K ch b n ki m th (test scenario) các bư c th c hi n khi 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: con ngư i 6 3
  4. 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 7 Các khái ni m 8 4
  5. Ti n trình ki m th Ki m th thư ng bao g m các bư c thi t k các ca ki m th bư c t o d li u th • ki m th v i t t c các d li u vào là c n thi t • không th ki m th “vét c n” • ch n t p các d li u th ñ i di n t mi n d li u vào • d a trên các tiêu chu n ch n d li u th bư c th c thi chương trình trên 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 trong khi ho c sau khi th c thi • so sánh k t qu nh n ñư c và k t qu mong ñ i 9 Ti n trình ki m th 10 5
  6. 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ái ra c a m t giai ño n là cái vào c a giai ño n khác • m t mát thông tin V m t con ngư i thi u ñào t o ít chú tr ng vai trò ki m th V m t k thu t không t n t i thu t toán t ng quát có th ch ng minh s ñúng ñ n hoàn toàn c a b t kỳ m t chương trình nào 11 T i sao ki m th H p th c hóa (validation) ch ra r ng s n ph m ñáp ng ñư c yêu c u ngư i s d ng Xác minh (verification) ch ra 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 và xác minh “Verification: Are we building the product right ?” “Validation: Are we building the right product ?” 12 6
  7. Ki m th trong 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 năng (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 m th ñơn v (unit testing) ki m th tích h p (integration testing) ki m th h p th c hóa (validation testing) ki m th h i quy (regression testing) 13 Ki m th trong 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 ra d a trên tài li u thi t k có th s d ng c ki m th h p tr ng và 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 trên ph n c ng phát tri n ph n m m 14 7
  8. Ki m th trong ti n trình phát tri n Ki m th tích h p (integration testing) sau khi ñã th c hi n ki m th ñơn v ghép n i các ñơ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 các ñơ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 ra d a trên thi t k t ng th 15 Ki m th trong 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): các thành ph n khác mô ph ng các thành ph n ph n m m chưa ñư c tích h p • trình ñi u khi n (driver): các thành ph n t o ra các d li u vào cho m t vài các thành ph n ph n m m trong t p h p ñang ñư c ki m th 16 8
  9. Ki m th trong ti n trình phát tri n Ki m th tích h p (3) 17 Ki m th trong ti n trình phát tri n Ki m th tích h p (4) chi n lư c t trên xu ng (top-down) • ki m th tích h p các thành ph n chính trư c, sau ñó thêm vào các thành ph n ñư c g i tr c ti p b i các thành ph n v a ki m th • cho phép xác ñ nh s m các l i v ki n trúc • các b d li u th có th ñư c tái s d ng cho các bư c ti p theo • tuy nhiên chi n lư c này ñò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 các thành ph n không g i các thành ph n khác, sau ñó thêm vào các thành ph n g i các thành ph n v a ki m th • ít s d ng các nút trám • nhưng l i xác ñ nh l i tr hơn 18 9
  10. Ki m th trong ti n trình phát tri n Ki m th h p th c hóa (validation testing) còn g i là ki m th h th ng (system testing) th c hi n sau khi 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 trong môi trư ng mà ph n m m s ñư c s d ng 19 Ki m th trong ti n trình phát tri n Ki m th h i quy (regression testing) ph n m m sau khi ñưa vào s d ng, có th có cá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 các b d li u th ñã s d ng trong các giai ño n trư c 20 10
  11. Ki m th trong mô hình V ð c t yêu c u Ki m th h p th c hóa Thi t k ki n trúc Ki m th tích h p Thi t k chi ti t Ki m th ñơn v Mã hóa 21 Các k thu t ki m th k thu t ki m th tĩnh (static testing) • không th c thi chương trình 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 năng (functional testing) • ki m th h p tr ng (white-box testing) • k thu t ki m th c u trúc (structural testing) 22 11
  12. Ki m th tĩnh Thanh tra mã ngu n (code inspection) Ch ng minh hình th c Th c thi hình th c (symbolic execution) ðánh giá ñ ph c t p McCabe Nejmeh 23 Ki m th h p ñen Inputs causing anomalous Input test data I behaviour e System Outputs which reveal the presence of Output test results Oe defects 24 12
  13. Ki m th h p ñen Ch c n d a vào ñ c t chương trình Xây d ng d li u th trư c khi mã hóa/l p trình Thư ng phát hi n các l i ñ c t yêu c u, thi t k D dàng th c hi n Chi phí th p 25 Ki m th h p ñen Ki m th giá tr biên (boundary value analysis) Ki m th l p tương ñương (equivalence class testing) Ki m th ng u nhiên (random testing) ð th nhân-qu (cause-efect graph) Ki m th cú pháp 26 13
  14. Ki m th giá tr biên Cơ s l i thư ng xu t hi n g n các giá tr biên c a mi n dũ li u T p trung phân tích các giá tr biên c a mi n d li u ñ xây d ng d li u ki m th Nguyên t c: ki m th các d li u vào g m giá tr nh nh t giá tr g n k l n hơn giá tr nh nh t giá tr bình thư ng giá tr g n k nh hơn giá tr l n nh t giá tr l n nh t 27 Ki m th giá tr biên 28 14
  15. 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 • 2 giá tr biên • 4 giá tr = giá tr biên ± sai s nh nh t N u giá tr vào thu c danh sách các giá tr , ch n • ph n t th nh t, ph n t th hai, ph n t k cu i và ph n t cu i N u d li u vào là ñ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 và m t s các s giá tr không h p l T v n d ng kh năng và th c t ñ ch n các 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ó là ñ dài ba c nh m t tam giác. N u là ñ dài ba c nh c a m t tam giác, thì ki m tra xem ñó là tam giác thư ng, cân, ñ u cũng như ki m tra ñó là tam giác nh n, vuông hay tù. 30 15
  16. Ki m th giá tr biên Ví d (2) D li u th 1, 1, 2 Không là tam giác 0, 0, 0 Ch m t ñi m 4, 0, 3 M t c nh b ng không 1, 2, 3.00001 G n là m t tam giác 0.001, 0.001, 0.001 Tam giác r t nh 99999, 99999, 99999 Tam giác r t l n 3.00001, 3, 3 Tam giác g n ñ u 2.99999, 3, 4 Tam giác g n cân 3, 4, 5.00001 Tam giác giác g n vuông 3, 4, 5, 6 B n giá tr 3 Ch m t giá tr D li u vào r ng -3, -3, 5 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 các l p các d li u có quan h v i nhau m i l p dùng ñ ki m th m t ch c năng, g i là l p tương ñương 32 16
  17. Ki m th l p tương ñương Ba bư c ñ i v i m i d li u vào, xác ñ nh các 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 các d li u th b i tích ð -các ñ t i ra b d li u ki m th 33 Ki m th l p tương ñương Nguyên t c phân ho ch các l p tương ñương N u d li u vào thu c m t kho ng, xây d ng • 1 l p các giá tr l n hơn • 1 l p các giá tr nh hơn • n l p các giá tr h p l N u d li u là t p h p các giá tr , xây d ng • 1 l p v i t p r ng • 1 l p quá nhi u các giá tr • nl ph pl N u d li u vào là ñi u ki n ràng bu c, xây d ng • 1 l p v i ràng bu c ñư c th a mãn • 1 l p v i ràng bu c không ñư c th a mãn 34 17
  18. Ki m th l p tương ñương Ví d Bài toán tam giác Nh n Vuông Tù Thư ng 6,5,3 5,6,10 3,4,5 Cân 6,1,6 7,4,4 √2,2,√2 ð u 4,4,4 không th không th Không là tam giác -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 và ñi m c a sinh viên trong m t năm h c. T p này 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 ) và ñi m c a 5 môn h c (t 0 ñ n 10). M c ñích chương trình: • tính di m trung bình m i sinh viên • tính ñi 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 trên 5) Xây d ng d li u th cho chương trình trên b i ki m th giá tr biên 36 18
  19. Bài t p Ki m th l p tương ñương Vi t chương trình d ch, trong ñó có câu l nh FOR, ñ c t câu l nh FOR như sau: “L nh FOR ch ch p nh n m t tham s duy nh t là bi n ñ m. Tên bi n không ñư c s d ng quá hai ký t khác r ng. Sau ký hi u = là c n dư i và c n trên c a bi n ñ m. Các c n trên và c n dư i là các s nguyên dương và ñư 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 khi mã hóa/l p trình Thư ng phát hi n các l i l p trình Khó th c hi n Chi phí cao 38 19
  20. Các k thu t ki m th h p tr ng Ki m th d a trên ñ th lu ng ñi u khi n Ki m th d a trên ñ th lu ng d li u Ki m th ñ t bi n (mutation testing) 39 ð th lu ng ñi u khi n ð th lu ng ñi u khi n (Control Flow Graph - ðTLðK) là ñ 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 các r nhánh m t ñ nh vào và m t ñ nh ra ñư c thêm vào ñ bi u di n ñi m vào và ra c a chương trình L trình (path) trong ðTLðK xu t phát t ñ nh vào ñi qua các ñ nh và cung trong ñ th và k t thúc t i ñ nh ra 40 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2