Giáo trình Kiểm thử phần mềm (Phần 1) - Phạm Ngọc Hùng

Chương 1 Tổng quan về kiểm thử Kiểm thử nhằm đánh giá chất lượng hoặc tính chấp nhận được của sản phẩm. Kiểm thử cũng nhằm phát hiện lỗi hoặc bất cứ vấn đề gì về sản phẩm. Chúng ta cần kiểm thử vì biết rằng con người luôn có thể mắc sai lầm. Điều này đặc biệt đúng trong lĩnh vực phát triển phần mềm và các hệ thống điều khiển bởi phần mềm. Chương này nhằm phác họa một bức tranh tổng thể về kiểm thử phần mềm. Các chương còn lại sẽ nằm trong khuôn khổ của bức tranh này và ở mức chi tiết hơn. 1.1 Các thuật ngữ và định nghĩa cơ bản về kiểm thử Kỹ nghệ kiểm thử đã phát triển và tiến hoá hàng mấy chục năm nên các thuật ngữ trong các tài liệu khác nhau thường không thống nhất và thiếu tương thích. Các thuật ngữ được trình bày trong cuốn sách này dựa vào các thuật ngữ chuẩn được phát triển bởi IEEE (Viện Kỹ nghệ điện và điện tử) với việc chọn lọc cẩn thận các thuật ngữ tiếng Việt tương ứng. Lỗi (Error): Lỗi là những vấn đề mà con người mắc phải trong quá trình phát triển các sản phẩm phần mềm. Trong thực tế, con người luôn có thể phạm lỗi. Khi lập trình viên phạm lỗi trong lập trình, ta gọi các lỗi đó là bug (con bọ). Lỗi có thể phát tán. Chẳng hạn, một lỗi về xác định yêu cầu 12 CHƯƠNG 1. TỔNG QUAN VỀ KIỂM THỬ có thể dẫn đến sai lầm về thiết kế và càng sai khi lập trình theo thiết kế này. Lỗi là nguyên nhân dẫn đến sai. Sai (Fault): Sai là kết quả của lỗi, hay nói khác đi, lỗi sẽ dẫn đến sai. Cũng có thể nói sai là một biểu diễn của lỗi dưới dạng một biểu thức, chẳng hạn chương trình, văn bản, sơ đồ dòng dữ liệu, biểu đồ lớp,. Sai lầm có thể khó bị phát hiện. Khi nhà thiết kế mắc lỗi bỏ sót trong quá trình thiết kế, sai kết quả từ lỗi đó là thiếu mất cái gì đó mà lẽ ra cần phải có. Sai về nhiệm vụ xuất hiện khi vào sai thông tin, còn sai về bỏ quên xuất hiện khi không vào đủ thông tin. Loại sai thứ hai khó phát hiện và khó sửa hơn loại sai thứ nhất. Thất bại (Failure): Thất bại xuất hiện khi một lỗi được thực thi. Có hai điều cần lưu ý ở đây. Một là thất bại chỉ xuất hiện dưới dạng có thể chạy được mà thông thường là mã nguồn. Hai là các thất bại chỉ liên kết với các lỗi về nhiệm vụ. Còn các thất bại tương ứng với các lỗi về bỏ quên thì xử lý thế nào? Những cái lỗi không bao giờ được tiến hành, hoặc không được tiến hành trong khoảng thời gian dài cần được xử lý thế nào? Virus Michaelangelo là một ví dụ về lỗi loại này. Nó chỉ được tiến hành vào ngày sinh của Michaelangelo, tức ngày 6/3 mà thôi. Việc khảo sát có thể ngăn chặn nhiều thất bại bằng cách tìm ra các lỗi thuộc cả hai loại.

pdf152 trang | Chia sẻ: thuyduongbt11 | Ngày: 10/06/2022 | Lượt xem: 505 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Kiểm thử phần mềm (Phần 1) - Phạm Ngọc Hùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GIO TRœNH KIšM THÛ PH†N M—M Ph¤m Ngåc Hòng, Tr÷ìng Anh Ho ng v  °ng V«n H÷ng Th¡ng 1 n«m 2014 ii Möc löc 1 Têng quan v· kiºm thû 1 1.1 C¡c thuªt ngú v  ành ngh¾a cì b£n v· kiºm thû . . . . . . . . 1 1.2 Ca kiºm thû . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Mæ t£ b i to¡n kiºm thû qua biºu ç Venn . . . . . . . . . . . 7 1.4 Vi»c x¡c ành c¡c ca kiºm thû . . . . . . . . . . . . . . . . . . 10 1.4.1 Kiºm thû h m . . . . . . . . . . . . . . . . . . . . . . . 10 1.4.2 Kiºm thû c§u tróc . . . . . . . . . . . . . . . . . . . . 12 1.4.3 Tranh luªn v· kiºm thû h m so vîi kiºm thû c§u tróc . 13 1.5 Ph¥n lo¤i c¡c léi v  sai . . . . . . . . . . . . . . . . . . . . . . 14 1.6 C¡c mùc kiºm thû . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2 Mët sè v½ dö 21 2.1 B i to¡n tam gi¡c . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.1 Ph¡t biºu b i to¡n . . . . . . . . . . . . . . . . . . . . 22 2.1.2 Nhªn x²t . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.1.3 C i °t truy·n thèng . . . . . . . . . . . . . . . . . . . 22 2.1.4 C i °t câ c§u tróc . . . . . . . . . . . . . . . . . . . . 25 2.2 H m NextDate (ng y k¸ ti¸p) . . . . . . . . . . . . . . . . . . 26 iii iv MÖC LÖC 2.2.1 Ph¡t biºu b i to¡n . . . . . . . . . . . . . . . . . . . . 28 2.2.2 Nhªn x²t . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.3 C i °t . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3 H» thèng rót ti·n tü ëng ìn gi£n . . . . . . . . . . . . . . . 30 2.3.1 Ph¡t biºu b i to¡n . . . . . . . . . . . . . . . . . . . . 31 2.3.2 Nhªn x²t . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.4 Bë i·u khiºn g¤t n÷îc æ tæ . . . . . . . . . . . . . . . . . . . 34 2.5 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3 Cì sð to¡n håc ríi r¤c cho vi»c kiºm thû 37 3.1 Lþ thuy¸t tªp hñp . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.1.1 Ph¦n tû cõa tªp hñp . . . . . . . . . . . . . . . . . . . 38 3.1.2 ành ngh¾a tªp hñp . . . . . . . . . . . . . . . . . . . . 38 3.1.3 Tªp hñp réng . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.4 Biºu ç Venn . . . . . . . . . . . . . . . . . . . . . . . 40 3.1.5 C¡c ph²p to¡n v· tªp hñp . . . . . . . . . . . . . . . . 41 3.1.6 Quan h» giúa c¡c tªp hñp . . . . . . . . . . . . . . . . 43 3.1.7 Ph¥n ho¤ch tªp hñp . . . . . . . . . . . . . . . . . . . 43 3.1.8 C¡c çng nh§t thùc v· tªp hñp . . . . . . . . . . . . . 45 3.2 H m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2.1 Mi·n x¡c ành v  mi·n gi¡ trà . . . . . . . . . . . . . . 46 3.2.2 C¡c lo¤i h m . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.3 H m hñp . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.3 Quan h» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3.1 Quan h» giúa c¡c tªp hñp . . . . . . . . . . . . . . . . 49 3.3.2 Quan h» tr¶n mët tªp hñp . . . . . . . . . . . . . . . . 51 3.4 Lægic m»nh · . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 MÖC LÖC v 3.4.1 C¡c ph²p to¡n lægic . . . . . . . . . . . . . . . . . . . . 53 3.4.2 Biºu thùc lægic . . . . . . . . . . . . . . . . . . . . . . 53 3.4.3 T÷ìng ÷ìng lægic . . . . . . . . . . . . . . . . . . . . 54 3.5 Lþ thuy¸t x¡c su§t . . . . . . . . . . . . . . . . . . . . . . . . 55 3.6 Lþ thuy¸t ç thà . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.6.1 ç thà . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.6.1.1 Bªc cõa ¿nh . . . . . . . . . . . . . . . . . . 58 3.6.1.2 Ma trªn tîi . . . . . . . . . . . . . . . . . . . 59 3.6.1.3 Ma trªn li·n k· . . . . . . . . . . . . . . . . . 59 3.6.1.4 ÷íng i trong ç thà . . . . . . . . . . . . . 60 3.6.1.5 T½nh li¶n thæng . . . . . . . . . . . . . . . . . 61 3.6.1.6 Rót gån ç thà . . . . . . . . . . . . . . . . . 61 3.6.1.7 Ch¿ sè chu tr¼nh . . . . . . . . . . . . . . . . 62 3.6.2 ç thà câ h÷îng . . . . . . . . . . . . . . . . . . . . . . 63 3.6.2.1 Bªc v o v  bªc ra . . . . . . . . . . . . . . . . 64 3.6.2.2 Lo¤i cõa ¿nh . . . . . . . . . . . . . . . . . . 65 3.6.2.3 Ma trªn li·n k· cõa ç thà câ h÷îng . . . . . 65 3.6.2.4 ÷íng i v  tüa ÷íng i . . . . . . . . . . . 66 3.6.2.5 Ma trªn ¤t ÷ñc . . . . . . . . . . . . . . . . 67 3.6.2.6 T½nh N -li¶n thæng . . . . . . . . . . . . . . . 68 3.6.2.7 Th nh ph¦n li¶n thæng m¤nh . . . . . . . . . 69 3.6.3 C¡c lo¤i ç thà dòng cho kiºm thû . . . . . . . . . . . . 70 3.6.3.1 M¡y húu h¤n tr¤ng th¡i . . . . . . . . . . . . 71 3.6.3.2 M¤ng Petri . . . . . . . . . . . . . . . . . . . 73 3.7 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4 Kh£o s¡t °c t£ v  m¢ nguçn 79 vi MÖC LÖC 4.1 Kh£o s¡t °c t£ . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.1.1 Ti¸n h nh duy»t °c t£ mùc cao . . . . . . . . . . . . . 80 4.1.1.1 H¢y l  kh¡ch h ng cõa s£n ph©m . . . . . . . 80 4.1.1.2 H¢y nghi¶n cùu c¡c chu©n v  h÷îng d¨n hi»n h nh . . . . . . . . . . . . . . . . . . . . . . . 81 4.1.1.3 H¢y xem x²t v  kiºm thû c¡c ph¦n m·m t÷ìng tü . . . . . . . . . . . . . . . . . . . . . . . . 82 4.1.2 C¡c kÿ thuªt kiºm thû °c t£ ð mùc th§p . . . . . . . 82 4.1.2.1 Danh s¡ch c¡c h¤ng möc c¦n th©m ành v· c¡c thuëc t½nh cõa °c t£ . . . . . . . . . . . 83 4.1.2.2 Danh s¡ch c¡c h¤ng möc c¦n th©m ành v· c¡c thuªt ngú cõa °c t£ . . . . . . . . . . . . 84 4.2 Kh£o s¡t m¢ nguçn . . . . . . . . . . . . . . . . . . . . . . . . 85 4.2.1 Kh£o s¡t thi¸t k¸ v  m¢ nguçn hay l  vi»c kiºm thû hëp tr­ng t¾nh . . . . . . . . . . . . . . . . . . . . . . . 85 4.2.2 Ph£n bi»n h¼nh thùc . . . . . . . . . . . . . . . . . . . 86 4.2.3 Ph£n bi»n ch²o . . . . . . . . . . . . . . . . . . . . . . 87 4.2.4 Thæng qua . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.2.5 Thanh tra . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.6 C¡c chu©n v  h÷îng d¨n trong lªp tr¼nh . . . . . . . . 89 4.2.7 Danh s¡ch c¡c h¤ng möc chung cho vi»c kh£o s¡t m¢ nguçn . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.3 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5 Kiºm thû h m 97 5.1 Têng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.1.1 Sü phùc t¤p cõa kiºm thû h m . . . . . . . . . . . . . 99 5.1.2 Ph÷ìng ph¡p h» thèng . . . . . . . . . . . . . . . . . . 101 5.1.3 Lüa chån ph÷ìng ph¡p phò hñp . . . . . . . . . . . . . 106 MÖC LÖC vii 5.2 Kiºm thû gi¡ trà bi¶n . . . . . . . . . . . . . . . . . . . . . . . 108 5.2.1 Gi¡ trà bi¶n . . . . . . . . . . . . . . . . . . . . . . . . 108 5.2.2 Mët sè d¤ng kiºm thû gi¡ trà bi¶n . . . . . . . . . . . . 111 5.2.2.1 Kiºm thû gi¡ trà bi¶n m¤nh . . . . . . . . . . 111 5.2.2.2 Kiºm thû gi¡ trà bi¶n tê hñp . . . . . . . . . . 112 5.2.2.3 Kiºm thû c¡c gi¡ trà °c bi»t . . . . . . . . . 113 5.2.3 V½ dö minh håa . . . . . . . . . . . . . . . . . . . . . . 114 5.2.3.1 Kiºm thû gi¡ trà bi¶n cho Triangle . . . . . . 114 5.2.3.2 Kiºm thû gi¡ trà bi¶n cho NextDate . . . . . . 115 5.2.4 Kinh nghi»m ¡p döng . . . . . . . . . . . . . . . . . . . 115 5.3 Kiºm thû lîp t÷ìng ÷ìng . . . . . . . . . . . . . . . . . . . . 117 5.3.1 Lîp t÷ìng ÷ìng . . . . . . . . . . . . . . . . . . . . . 117 5.3.2 Ph¥n lo¤i kiºm thû lîp t÷ìng ÷ìng . . . . . . . . . . 118 5.3.2.1 Kiºm thû lîp t÷ìng ÷ìng y¸u . . . . . . . . 118 5.3.2.2 Kiºm thû lîp t÷ìng ÷ìng m¤nh . . . . . . . 119 5.3.2.3 Kiºm thû lîp t÷ìng ÷ìng ìn gi£n . . . . . 120 5.3.3 V½ dö minh håa . . . . . . . . . . . . . . . . . . . . . . 121 5.3.3.1 Kiºm thû lîp t÷ìng ÷ìng cho Triangle . . . 121 5.3.3.2 Kiºm thû lîp t÷ìng ÷ìng cho NextDate . . . 122 5.3.3.3 Kiºm thû t÷ìng ÷ìng y¸u cho NextDate . . 123 5.3.3.4 Kiºm thû t÷ìng ÷ìng m¤nh cho NextDate . 123 5.3.4 Kinh nghi»m ¡p döng . . . . . . . . . . . . . . . . . . . 124 5.4 Kiºm thû b¬ng b£ng quy¸t ành . . . . . . . . . . . . . . . . . 126 5.4.1 B£ng quy¸t ành . . . . . . . . . . . . . . . . . . . . . 126 5.4.2 V½ dö minh håa . . . . . . . . . . . . . . . . . . . . . . 128 5.4.3 Kinh nghi»m ¡p döng . . . . . . . . . . . . . . . . . . . 130 5.5 Kiºm thû tê hñp . . . . . . . . . . . . . . . . . . . . . . . . . 132 viii MÖC LÖC 5.5.1 Kiºm thû æi mët . . . . . . . . . . . . . . . . . . . . . 132 5.5.2 Ma trªn trüc giao . . . . . . . . . . . . . . . . . . . . . 133 5.5.3 Kinh nghi»m ¡p döng . . . . . . . . . . . . . . . . . . . 134 5.6 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 6 Kiºm thû dáng i·u khiºn 137 6.1 Kiºm thû hëp tr­ng . . . . . . . . . . . . . . . . . . . . . . . . 137 6.2 ç thà dáng i·u khiºn . . . . . . . . . . . . . . . . . . . . . . 138 6.3 C¡c ë o kiºm thû . . . . . . . . . . . . . . . . . . . . . . . . 139 6.4 Kiºm thû düa tr¶n ë o . . . . . . . . . . . . . . . . . . . . . 142 6.4.1 Kiºm thû cho ë o C1 . . . . . . . . . . . . . . . . . . 143 6.4.2 Kiºm thû cho ë o C2 . . . . . . . . . . . . . . . . . . 144 6.4.3 Kiºm thû cho ë o C3 . . . . . . . . . . . . . . . . . . 145 6.4.4 Kiºm thû váng l°p . . . . . . . . . . . . . . . . . . . . 147 6.5 Têng k¸t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.6 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 7 Kiºm thû dáng dú li»u 159 7.1 Kiºm thû düa tr¶n g¡n v  sû döng gi¡ trà bi¸n . . . . . . . . . 160 7.1.1 Þ t÷ðng . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7.1.2 C¡c v§n · phê bi¸n v· dáng dú li»u . . . . . . . . . . 160 7.1.3 Têng quan v· kiºm thû dáng dú li»u ëng . . . . . . . 164 7.1.4 ç thà dáng dú li»u . . . . . . . . . . . . . . . . . . . . 166 7.1.5 C¡c kh¡i ni»m v· dáng dú li»u . . . . . . . . . . . . . . 169 7.1.6 C¡c ë o cho kiºm thû dáng dú li»u . . . . . . . . . . 172 7.1.7 Sinh c¡c ca kiºm thû . . . . . . . . . . . . . . . . . . . 176 7.2 Kiºm thû düa tr¶n l¡t c­t . . . . . . . . . . . . . . . . . . . . 178 MÖC LÖC ix 7.2.1 Þ t÷ðng v· kiºm thû düa tr¶n l¡t c­t . . . . . . . . . . 179 7.2.2 V½ dö ¡p döng . . . . . . . . . . . . . . . . . . . . . . . 182 7.2.3 Mët sè l÷u þ vîi kiºm thû düa tr¶n l¡t c­t . . . . . . . 188 7.3 Têng k¸t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 7.4 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 8 Kiºm thû düa tr¶n mæ h¼nh 197 8.1 Kh¡i ni»m v· kiºm thû düa tr¶n mæ h¼nh . . . . . . . . . . . . 197 8.2 C¡c ph÷ìng ph¡p °c t£ mæ h¼nh . . . . . . . . . . . . . . . . 198 8.2.1 M¡y húu h¤n tr¤ng th¡i . . . . . . . . . . . . . . . . . 198 8.2.2 Ætæmat ìn ành húu h¤n tr¤ng th¡i . . . . . . . . . . 200 8.2.3 Biºu ç tr¤ng th¡i . . . . . . . . . . . . . . . . . . . . 201 8.2.4 M¡y tr¤ng th¡i UML . . . . . . . . . . . . . . . . . . . 201 8.2.5 C¡c ph÷ìng ph¡p °c t£ kh¡c . . . . . . . . . . . . . . 203 8.3 Sinh c¡c ca kiºm thû tø mæ h¼nh . . . . . . . . . . . . . . . . 203 8.4 Sinh ¦u ra mong muèn cho c¡c ca kiºm thû . . . . . . . . . . 205 8.5 Thüc hi»n c¡c ca kiºm thû . . . . . . . . . . . . . . . . . . . . 205 8.6 V½ dö minh håa . . . . . . . . . . . . . . . . . . . . . . . . . . 206 8.6.1 °c t£ h» thèng . . . . . . . . . . . . . . . . . . . . . . 206 8.6.2 Sinh c¡c ca kiºm thû . . . . . . . . . . . . . . . . . . . 208 8.6.3 Thüc hi»n c¡c ca kiºm thû . . . . . . . . . . . . . . . . 209 8.7 Thuªn lñi v  khâ kh«n cõa kiºm thû düa tr¶n mæ h¼nh . . . . 210 8.8 Mët sè cæng cö kiºm thû düa tr¶n mæ h¼nh . . . . . . . . . . . 212 8.8.1 AGEDIS . . . . . . . . . . . . . . . . . . . . . . . . . . 212 8.8.2 Spec Explorer . . . . . . . . . . . . . . . . . . . . . . . 213 8.8.3 Conformiq Qtronic . . . . . . . . . . . . . . . . . . . . 214 8.8.4 JCrasher . . . . . . . . . . . . . . . . . . . . . . . . . . 214 x MÖC LÖC 8.8.5 Selenium . . . . . . . . . . . . . . . . . . . . . . . . . . 215 8.8.6 SoapUI . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 8.8.7 W3af . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 8.9 Têng k¸t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 8.10 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9 Kiºm thû tü ëng v  cæng cö hé trñ 219 9.1 Têng quan v· kiºm thû tü ëng . . . . . . . . . . . . . . . . . 219 9.2 Ki¸n tróc cõa mët bë cæng cö kiºm thû tü ëng . . . . . . . . 221 9.3 Mët sè cæng cö kiºm thû tü ëng . . . . . . . . . . . . . . . . 223 9.3.1 CFT4CUnit . . . . . . . . . . . . . . . . . . . . . . . . 223 9.3.2 JDFT . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 9.3.3 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.3.4 QuickTest Professional . . . . . . . . . . . . . . . . . . 227 9.3.5 Apache JMeter . . . . . . . . . . . . . . . . . . . . . . 228 9.3.6 Load Runner . . . . . . . . . . . . . . . . . . . . . . . 228 9.4 Têng k¸t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.5 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 10 Kiºm thû t½ch hñp 231 10.1 Giîi thi»u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 10.2 C¡c lo¤i giao di»n v  léi giao di»n . . . . . . . . . . . . . . . . 232 10.3 T½ch hñp düa tr¶n c§u tróc mæ-un . . . . . . . . . . . . . . . 234 10.3.1 T½ch hñp tø tr¶n xuèng . . . . . . . . . . . . . . . . . . 235 10.3.2 T½ch hñp tø d÷îi l¶n . . . . . . . . . . . . . . . . . . . 236 10.3.3 T½ch hñp b¡nh kµp . . . . . . . . . . . . . . . . . . . . 237 10.4 T½ch hñp düa tr¶n ç thà gåi h m . . . . . . . . . . . . . . . . 238 10.4.1 T½ch hñp æi mët . . . . . . . . . . . . . . . . . . . . . 238 MÖC LÖC xi 10.4.2 T½ch hñp l¡ng gi·ng . . . . . . . . . . . . . . . . . . . . 239 10.5 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 11 Kiºm thû h» thèng, ch§p nhªn v  hçi quy 241 11.1 Têng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 11.2 Kiºm thû h» thèng . . . . . . . . . . . . . . . . . . . . . . . . 243 11.2.1 Kiºm thû t½nh d¹ dòng . . . . . . . . . . . . . . . . . . 246 11.2.2 Kiºm thû giao di»n ng÷íi dòng . . . . . . . . . . . . . 250 11.2.3 Kiºm thû hi»u n«ng . . . . . . . . . . . . . . . . . . . 250 11.2.3.1 Kh¡i ni»m . . . . . . . . . . . . . . . . . . . . 250 11.2.3.2 Kiºm thû hi»u n«ng li¶n quan . . . . . . . . . 251 11.3 Kiºm thû ch§p nhªn . . . . . . . . . . . . . . . . . . . . . . . 253 11.4 Kiºm thû hçi quy . . . . . . . . . . . . . . . . . . . . . . . . . 255 11.4.1 Têng quan . . . . . . . . . . . . . . . . . . . . . . . . . 255 11.4.2 Kÿ thuªt kiºm thû hçi quy . . . . . . . . . . . . . . . . 256 11.5 B i tªp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 xii MÖC LÖC Líi nâi ¦u Chóng ta ¢ v  ang chùng ki¸n sü t«ng tr÷ðng ¡ng kinh ng¤c cõa ng nh cæng nghi»p ph¦n m·m trong v i thªp k qua. N¸u nh÷ tr÷îc ¥y ph¦n m·m m¡y t½nh ch¿ ÷ñc sû döng º t½nh to¡n khoa håc kÿ thuªt v  xû lþ dú li»u th¼ ng y nay nâ ¢ ÷ñc ùng döng v o måi m°t cõa cõa íi sèng h ng ng y cõa con ng÷íi, tø c¡c ùng döng nhä º i·u khiºn c¡c thi¸t bà dòng trong gia ¼nh nh÷ c¡c thi¸t bà nghe nh¼n, i»n tho¤i, m¡y gi°t, lá vi sâng, nçi cìm i»n, ¸n c¡c ùng döng lîn hìn nh÷ trñ gióp i·u khiºn c¡c ph÷ìng ti»n v  h» thèng giao thæng, tr£ ti·n cho c¡c ho¡ ìn, qu£n lþ v  thanh to¡n v· t i ch½nh, v¥n v¥n. V¼ th¸ con ng÷íi ng y c ng phö thuëc ch°t ch³ v o c¡c s£n ph©m ph¦n m·m v  do vªy ái häi v· ch§t l÷ñng cõa c¡c s£n ph©m ph¦n m·m ng y c ng cao, tùc l  c¡c ph¦n m·m ph£i ÷ñc s£n xu§t vîi gi¡ th nh h¤, d¹ dòng, an to n v  tin cªy ÷ñc. Kiºm thû câ ph÷ìng ph¡p l  mët ho¤t ëng khæng thº thi¸u trong quy tr¼nh s£n xu§t ph¦n m·m º £m b£o c¡c y¸u tè ch§t l÷ñng n¶u tr¶n cõa c¡c s£n ph©m ph¦n m·m. Theo thèng k¶ th¼ vi»c kiºm thû ti¶u tèn kho£ng 50% thíi gian v  hìn 50% gi¡ th nh cõa c¡c dü ¡n ph¡t triºn ph¦n m·m. T«ng n«ng su§t kiºm thû l  mët nhu c¦u thi¸t y¸u º t«ng ch§t l÷ñng ph¦n m·m. V¼ th¸ nghi¶n cùu º ph¡t triºn c¡c kÿ thuªt, cæng cö kiºm thû húu hi»u v   o t¤o ëi ngô kiºm thû câ kÿ n«ng v  kinh nghi»m l  c¡c âng gâp thi¸t thüc nh§t º t«ng c÷íng ch§t l÷ñng cõa c¡c s£n ph©m ph¦n m·m. Tø y¶u c¦u thüc t¸ n y, ng y nay r§t nhi·u tr÷íng ¤i håc trong n÷îc v  quèc t¸ ¢ ÷a mæn Kiºm thû v  £m b£o ch§t l÷ñng Ph¦n m·m th nh mët mæn gi¡o döc chuy¶n ng nh cõa cæng ngh» ph¦n m·m ð c£ bªc ¤i håc v  cao håc. Chóng tæi th§y r¬ng c¡c håc vi¶n cao håc v  sinh vi¶n c¦n ÷ñc  o t¤o b i b£n v· cì sð cõa kiºm thû ph¦n m·m, bao gçm c£ c¡c ki¸n thùc h n l¥m cì b£n l¨n c¡c kÿ thuªt thüc h nh trong ng nh cæng nghi»p ph¦n m·m º câ thº ¡p ùng cæng vi»c cõa c£ nghi¶n cùu vi¶n l¨n kiºm thû vi¶n. Chóng tæi vi¸t cuèn gi¡o tr¼nh n y xiii xiv MÖC LÖC khæng ngo i möc ½ch nh¬m ¡p ùng y¶u c¦u thi¸t y¸u â. Cuèn gi¡o tr¼nh n y s³ cung c§p cho sinh vi¶n, håc vi¶n cao håc v  gi£ng vi¶n nhúng ch§t li»u cì b£n bao phõ nhúng n²t ch½nh v· nhúng ph¡t triºn lþ thuy¸t cì sð cõa vi»c kiºm thû ph¦n m·m v  c¡c thüc h nh kiºm thû chung trong ng nh cæng nghi»p ph¦n m·m. V¼ c¡c kh¡i ni»m v· ch§t l÷ñng ph¦n m·m l  qu¡ rëng, chóng tæi ch¿ ành giîi thi»u nhúng n²t chung nh§t v  c¡i nh¼n tçng thº v· kiºm thû v  £m b£o ch§t l÷ñng ph¦n m·m m  thæi. Thüc ra th¼ ph¦n m·m câ r§t nhi·u lo¤i kh¡c nhau, vîi nhi·u mi·n ùng döng kh¡c nhau. Ð méi lo¤i v  méi mi·n ùng döng ri¶ng bi»t l¤i câ c¡c °c thò ri¶ng v  c¦n ÷ñc bê trñ bði c¡c kÿ thuªt kiºm thû ri¶ng cho chóng. Chóng tæi khæng câ tham vång i v o c¡c chi ti¸t nh÷ vªy m  ch¿ giîi thi»u lþ thuy¸t v  thüc h nh kiºm thû chung v  cì b£n nh§t nh¬m trang bà cho sinh vi¶n nhúng kÿ n«ng cì b£n º câ thº hiºu v  tü ph¡t triºn c¡c kÿ thuªt kiºm thû th½ch hñp cho c¡c h» thèng phùc t¤p v  chuy¶n döng hìn trong thüc ti¹n sau n y. Gi¡o tr¼nh n y ÷ñc vi¸t düa v o kinh nghi»m gi£ng d¤y mæn kiºm thû v  £m b£o ch§t l÷ñng ph¦n m·m cõa chóng tæi trong v i n«m n«m qua t¤i Khoa Cæng ngh» Thæng tin, Tr÷íng ¤i håc Cæng ngh», ¤i håc Quèc gia H  Nëi v  h ng chöc n«m kinh nghi»m cõa chóng tæi trong thüc t¸ ph¡t triºn ph¦n m·m. º vi¸t gi¡o tr¼nh n y, chóng tæi ¢ tham kh£o nhi·u cuèn s¡ch ÷ñc dòng phê bi¸n tr¶n th¸ giîi v· kiºm thû v  £m b£o ch§t l÷ñng ph¦n m·m. Chóng tæi công sû döng th¶m c¡c t i li»u nghi¶n cùu g¦n ¥y º cªp nhªt c¡c ph÷ìng ph¡p v  k¸t qu£ nghi¶n cùu hi»n nay v· l¾nh vüc n y nh÷ ÷ñc n¶u trong ph¦n t i li»u tham kh£o ð cuèi cuèn t i li»u n y. C¡c chõ · ch½nh ÷ñc tr¼nh b y trong cuèn t i li»u n y bao gçm:  Cì sð to¡n håc cho kiºm thû ph¦n m·m  C¡c kh¡i ni»m cì b£n v· kiºm thû ph¦n m·m  C¡c ph÷ìng ph¡p ph¥n t½ch v  kh£o s¡t °c t£ v  m¢ nguçn  C¡c ph÷ìng ph¡p kiºm thû h m (hay cán gåi l  kiºm thû chùc n«ng)  C¡c ph÷ìng ph¡p kiºm thû hëp tr­ng hay kiºm thû c§u tróc  C¡c ph÷ìng ph¡p v  quy tr¼nh kiºm thû ìn và, kiºm thû t½ch hñp, kiºm thû h» thèng, kiºm thû ch§p nhªn v  kiºm thû hçi quy  C¡c ph÷ìng ph¡p kiºm thû düa tr¶n mæ h¼nh, kiºm thû tü ëng v  c¡c cæng cö hé trñ MÖC LÖC xv º ho n th nh cuèn gi¡o tr¼nh n y, chóng tæi ¢ nhªn ÷ñc sü gióp ï tªn t¼nh, þ ki¸n âng gâp qu½ b¡u v  sü v  ëng vi¶n ch¥n th nh tø c¡c çng nghi»p, c¡c nghi¶n cùu sinh, håc vi¶n cao håc v  sinh vi¶n Khoa Cæng ngh» Thæng tin cõa Tr÷íng ¤i håc Cæng ngh», ¤i håc Quèc gia H  Nëi. Nhi·u çng nghi»p v  sinh vi¶n ¢ d nh thíi gian åc c©n thªn, kiºm thû ¸n tøng chi ti¸t nh¬m gióp chóng tæi n¥ng cao ch§t l÷ñng cõa cuèn gi¡o tr¼nh n y, °c bi»t l  PGS. TS. Nguy¹n Vi»t H , PGS. TS. Tr÷ìng Ninh Thuªn, TS. Tr¦n Thà Minh Ch¥u (Tr÷íng ¤i håc Cæng ngh») v  PGS. TS. °ng V«n ùc (Vi»n Cæng ngh» Thæng tin, Vi»n h m l¥m Khoa håc Vi»t Nam). Chóng tæi xin ch¥n th nh c£m ìn c¡c çng nghi»p, c¡c b¤n nghi¶n cùu sinh, håc vi¶n cao håc v  sinh vi¶n v¼ nhúng âng gâp to lîn â. M°c dò chóng tæi ¢ r§t né lüc nh÷ng v¼ thíi gian v  tr¼nh ë cán h¤n ch¸, cuèn t i li»u n y khæng tr¡nh khäi c¡c thi¸u sât. Chóng tæi r§t mong cuèn gi¡o tr¼nh s³ ÷ñc b¤n åc ân nhªn, thæng c£m v  gâp þ. Chóng tæi xin t