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.
152 trang |
Chia sẻ: thuyduongbt11 | Ngày: 10/06/2022 | Lượt xem: 536 | Lượt tải: 0
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
GIO TRNH
KIM THÛ PHN MM
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 trng 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 trng . . . . . . . . . . . . . . . . . . . . . . . . 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 ct . . . . . . . . . . . . . . . . . . . . 178
MÖC LÖC ix
7.2.1 Þ t÷ðng v· kiºm thû düa tr¶n l¡t ct . . . . . . . . . . 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 ct . . . . . . . 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 trng 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