Kiểm thử phần mềm và xây dựng hệ thống hỗ trợ quản lý
Trang 1L i u tiên, chúng em xin chân thành cám n th y Lâm Quang V , th y
tài này
óng góp nh ng kinh nghi m, ý ki n quý báu cho chúng em
Chúng em xin g i l i cám n t t c các quý th y cô ã gi ng d y, cung c pcho chúng em v n ki n th c quý báu su t nh ng n m h c v a qua
tài lu n v n t t nghi p này
Tp H Chí Minh, 07/2004Nhóm sinh viên th c hi n
V Ng c Sen – Nguy n Th Quyên
Trang 2Sau cu c kh ng ho ng trong ngành công ngh thông tin vào u nh ng n m
Trang 31.1 T m quan tr ng c a vi c qu n lý ti n trình ki m th 1
1.2 Khái quát vai trò qu n lý ki m th 1
1.3 M c tiêu tài 2
Ch ng 2 ng quan v ki m th ph n m m 4
2.1 Ki m th ph n m m là gì? 4
2.2 M c ích c a vi c ki m th ph n m m 4
2.3 Các giai n ki m th ph n m m 5
2.3.1 Giai n 1: Phác h a môi tr ng c a ph n m m 6
2.3.2 Giai n 2: Tìm các k ch b n ki m th 9
2.3.3 Giai n 3: Th c thi và ánh giá k ch b n ki m th 11
2.3.4 Giai n 4: ánh giá ti n trình ki m th 12
2.4 Ki m th trong các giai n phát tri n ph n m m 13
2.4.1 Ki m th trong giai n c t yêu c u 14
2.4.2 Ki m th trong giai n thi t k 15
2.4.3 Ki m th trong giai n l p trình .16
2.5 Ng i ki m th .16
2.6 Lu ng thông tin ki m th 18
2.7 Phân bi t các khái ni m 19
2.7.1 Phân bi t QC và QA 19
2.7.2 Phân bi t Error, Fault, Failure 20
2.8 Ch t l ng ph n m m và vi c m b o ch t l ng ph n m m 22
2.8.1 Các nhân t ch t l ng c a ph n m m 22
2.8.2 o ch t l ng ph n m m 24
2.8.3 Vai trò c a vi c qu n lý ch t l ng ph n m m 26
2.8.4 T i sao c n qu n lý ch t l ng ? 30
Ch ng 3 Các lo i ki m th ph n m m 31
3.1 Ki m th h p en 31
3.2 Ki m th h p tr ng 33
3.3 Nh ng nét khác nhau c b n gi a ki m th h p en và h p tr ng 34
3.4 Ki m th cho h th ng th i gian th c 35
3.5 Các lo i ki m th h p en 36
3.5.1 Oracles testing 36
3.5.2 Domain testing 37
3.5.3 Function testing 39
3.5.4 Combination testing 40
3.5.5 Regression testing 47
3.5.6 Risk based testing 50
3.5.7 Senario testing 55
3.5.8 Specification based testing 58
3.5.9 User testing 62
3.5.10 Stress testing 63
3.5.11 Integration Testing 64
Trang 43.6 Các lo i ki m th h p tr ng 70
Unit testing 70
Ch ng 4 Các công c h tr 72
4.1 Công c h tr qu n lý ki m th 72
4.1.1 Nh n xét chung 72
4.1.2 TestLink 73
4.1.3 Qatraq 75
4.1.4 RTH 77
4.1.5 Mantis Bugtracking 77
4.2 Công c ki m th ph n m m t ng 78
4.2.1 TestComplete 78
4.2.2 Winrunner 80
4.3 Công c ki m th web t ng 81
4.3.1 Gi i thi u 81
4.3.2 Proxy Sniffer 82
4.3.3 Công c Webserver Stress 84
4.3.4 Apche Jmeter 85
4.3.5 Wapt 86
4.4 Công c ki m th Unit [6] 88
4.4.1 PHP Unit Testing 88
4.4.2 Cunit testing [7] 98
4.4.3 JUnit Testing [8] 100
Ch ng 5 Phát tri n công c qu n lý ki m th 108
5.1 Gi i thi u công c RTH 108
5.2 Lý do ch n công c RTH 114
5.3 Phát tri n công c RTH 114
5.4 M t vài giao di n 117
Ch ng 6 Th nghi m 118
6.1 Th nghi m v i các lo i test 118
6.1.1 Oracles 118
6.1.2 Domain testing 120
6.1.3 Function testing 121
6.1.4 Combination testing 123
6.1.5 Regressiont testing 125
6.1.6 Risk-based testing 128
6.1.7 Scenario testing 130
6.1.8 User testing 134
6.1.9 Stress testing 135
6.1.10 Exploratory testing 135
6.2 Th nghi m công c RTH 140
6.2.1 T o d án 140
6.2.2 Thêm Requirement vào Project 140
6.2.3 Thêm m t release 141
6.2.4 Thêm Build vào Release 141
6.2.5 Thêm TestSet vào Build 141
Trang 56.3 Th nghi m công c RTH k t h p v i WinRunner 144
Ch ng 7 ng k t và H ng phát tri n 145
7.1 T ánh giá 145
7.1.1 Nh ng k t qu t c 145
7.1.2 Nh ng m t còn h n ch 146
7.2 H ng phát tri n c a ch ng trình 146
DANH SÁCH B NG ng 2-1 Các tr ng h p ki m th ph các nhánh và các câu l nh 6
ng 2-2 So sánh nh ngh a c a QC và QA 19
ng 2-3 Nh ng m khác nhau gi a QC và QA 20
ng 2-4 Ví d so sánh error, fault, failure 20
ng 2-5 Các nhân t và o ch t l ng [1] 25
ng 3-1 B ng k t h p giá tr các bi n 40
ng 3-2 B ng k t h p giá tr các bi n v i cách ti p c n th 1 41
ng 3-3 B ng k t h p giá tr các bi n v i cách ti p c n K t h p y 41
ng 3-4 B ng k t h p giá tr các bi n v i cách ti p c n K t h p t ng ôi 42
CÔNG TH C Công th c 2-1 Công th c o ch t l ng ph n m m [1] 23
Trang 6Hình 2-3 Ki n th c c n có c a ng i ki m th 17
Hình 2-4 Mô hình lu ng thông tin ki m th [1] 18
Hình 2-5 Mô hình mô ph ng các b c QC c b n [9] 19
Hình 2-6 Mô hình mô ph ng các b c QA c b n [9] 19
Hình 2-7 Mô hình các nhân t ch t l ng c a McCall [1] 22
Hình 2-8 Mô hình các ho t ng trong CM [10] 27
Hình 2-9 T ng quan v CM [10] 28
Hình 3-1 Ki m th h p en [11] 31
Hình 3-2 Ki m th h p tr ng [11] 33
Hình 3-3 Font trong Word và Word Pad 37
Hình 3-4 Chu trình ki m th d a trên r i ro 51
Hình 4-1 Mô hình use case c a công c qu n lý ki mth TestLink 73
Hình 4-2 Quá trình ghi l i d li u – công c Proxy Sniffer 82
Hình 4-3 Qui trình th c thi load test – Công c Proxy Sniffer 83
Hình 4-4 Công c Wapt 86
Hình 4-5 Giao di n h a ng i dùng – JUnit testing 107
Hình 5-1 Giao di n TreeView tr c quan h n 117
Hình 5-2 Màn hình t o Template Testcase 117
Hình 6-1 Th nghi m th c t v i Oracles testing 119
Hình 6-2 Th nghi m th c t v i Domain testing 121
Hình 6-3 Th nghi m th c t 1 v i Function testing 122
Hình 6-4 Th nghi m th c t v i Function testing 123
Hình 6-5 Th nghi m th c t v i Combination testing 124
Hình 6-6 WinAmp phiên b n 2 79 & phiên b n 5.03 125
Hình 6-7 C p nh t thông tin v bài hát trong Winamp 126
Hình 6-8 L i trong Winamp v5.03 v i Regression testing 127
Hình 6-9 Th nghi m th c t v i Risk-based testing 129
Hình 6-10 Th nghi m th c t v i Scenario testing 130
Hình 6-11 Th nghi m th c t v i User testing 134
Hình 6-12 Giao di n ng d ng Paint 136
Hình 6-13 Màn hình t o d án c a RTH 140
Hình 6-14 Màn hình t o yêu c u c a RTH 140
Hình 6-15 Màn hình t o release c a RTH 141
Hình 6-16 Màn hình thêm build c a RTH 141
Hình 6-17 Màn hình thêm TestSet c a RTH 141
Hình 6-18 Màn hình thêm test c a RTH 142
Hình 6-19 Màn hình thêm t ng b c test c a RTH 142
Hình 6-20 Màn hình thêm TestRun c a RTH 143
Hình 6-21 Màn hình thêm l i Defect c a RTH 143
Hình 6-22 Giao di n công c ki m th ph n m m t ng WinRunner 144
Trang 7APIs Software Interfaces: Giao di n ph n m m.
m m
Trang 8Ch ng 1 u
1.1 T m quan tr ng c a vi c qu n lý ti n trình ki m th
n, không còn gi i h n m c tiêu th a mãn yêu c u khách hàng M t s n ph m
thi u trong công ngh ph n m m
1.2 Khái quát vai trò qu n lý ki m th
Trang 9Do ó chúng ta có th nói r ng m t d án mu n thành công không th không có
Trang 11nh ng l i này?
2.2 M c ích c a vi c ki m th ph n m m
Theo Deutsch[1]:
có l i là r t l n L i có th x y ra ngay lúc kh i u c a ti n trình, hay trong các giai o n thi t k và phát tri n sau này
Trang 12Nh ng m c ích trên ng c v i quan m thông th ng là “ki m th thànhcông là ki m th không tìm ra l i nào” N u ki m th không phát hi n ra l i thì ta
s ngh r ng c u hình ki m th này ch a úng và l i v n còn ti m n trong ph n
xác nh l i có th g p r t nhi u l n chi phí tìm l i trong quá trình phát tri n V y
ki m th thành công là ki m th tìm ra l i
không có khi m khuy t, nó ch có th ch ng minh r ng khi m khuy t ph n m m hi n
h u.”
2.3 Các giai n ki m th ph n m m
4 giai o n trong quá trình ki m th :
Trang 13Sau ây là o n mã ngu n cho ch ng trình trên:
Trang 14Nhìn vào b ng trên, chúng ta c n ki m th 8 tr ng h p V i m i câu l nh
False Th c t , chúng ta s tìm c 2x-1 cách( x là s i u ki n trong câu l nh)
2.3.1.1 Gi i thi u chung
Ngoài vi c ki m th mã ngu n c a ph n m m, ta còn ph i ki m nh ng giá tr
Có bao nhiêu giá tr th i gian trong m t ngày?
giá tr h p l , còn giá tr không h p l (ví d : 29 gi ) c ng ph i c ki m tra
Sau ó, ta ph i ki m th :
2006 là d li u h p l , còn ngày 31 tháng 2 n m 2006 là không h p l vìtháng 2 ch có 30 ngày
Nh ng thi t b nh p bao g m: chu t, s ki n bàn phím, Nh ng nhà ki m th stìm cách thao tác trên các thi t b này nh m làm cho ph n m m bi u hi n l i
Trang 152 Giao di n ph n m m, APIs8: ph n m m s d ng m t h i u hành, c s
d li u t bên ngoài Nh ng nhà phát tri n ph n m m ph i vi t r t nhi u o n mã
th làm cho các giao th c h p l và không h p l c th c hi n H t o ra cáccách k t h p khác nhau c a nh ng câu l nh và d li u, trong nh d ng gói tinchu n
li u u vào t i các giá tr biên ho c xung quanh nh ng giá tr biên Ví d , vi c
8
Software Interfaces
Trang 16ki m th giá tr c c ti u, c c i ho c b ng 0 trong yêu c u nh p m t s nguyên c a
c a các giá tr
pháp, nh ng công c , t lý thuy t v ngôn ng
2.3.2 Giai o n 2: Tìm các k ch b n ki m th
Vi c phân chia nh ng mô hình và giá tr s t o ra vô s k ch b n ki m th
M i k ch b n s có th i gian và chi phí c n thi t Ch ch n m t s k ch b n tiêu bi u dùng trong k ho ch phát tri n ph n m m V y cách ch n l a nào là t t nh t? 17
g ng:
chu n ki m th mi n nh p
Trang 172.3.2.1 Tiêu chu n 9 ki m th ng i 10 th c thi
có th có c a nó
Trang 182.3.3 Giai o n 3: Th c thi và ánh giá k ch b n ki m th
Th c thi k ch b n ki m th : k t lu n k t qu ki m th là úng hay sai,
ánh giá k ch b n ki m th : lúc b t u thì d nh ng r t khó th c hi n.ánh giá ph i d a trên k t qu th c thi c a ph n m m, k t qu th c thi k ch b n
mu n xem có sai khác không S so sánh này r t khó V lý thuy t s so sánh c ahai giá tr tu ý thì không th tìm ra l i gi i Ví d : ng d ng trình so n th o: n u
xu t ra “Tô sáng t sai l i chính t ” Làm th nào chúng ta có th xác nh r ng t t
2.3.3.1 Ki m th h i quy 12
tri n s t o ra phiên b n m i c a ph n m m Vi c ki m th ti n hành v i t t c các
h p nh t Câu h i t ra: khi ta ã ti n hành ki m th phiên b n n-1, thì v i phiên
Trang 19Vì nh ng tr ng h p này r t có th x y ra, nên khi ki m th phiên b n n, ta
ph i th c thi l i các b ki m th t phiên b n n-1, r i m i ti n hành các b ki m th
2.3.3.2 Các m i quan tâm liên quan 13
: mô ph ng l i và tái th c thi k ch b n ki m th
Trang 20• Có ph i tôi ch t p trung vào d li u bên trong kh i t o và s d ng?
Trang 222 m b o r ng b n c t yêu c u áng tin c y, có th duy trì c, kh thi
3 Xem l i danh sách các mô un và ch c n ng t ng quát c a m i mô un
4 Phát hi n các thi t k không úng theo yêu c u, sau ó s a ch a l i theoyêu c u
8 Xác nh n tính h p l c a các giao di n nh p xu t
2.4.2.2 Ki m tra thi t k chi ti t
M c ích c a vi c ki m tra thi t k chi ti t:
Trang 23ra, h ph i có kh n ng nh y bén trong vi c phát hi n nh ng l i ph c t p Nói
Trang 24Hình 2-2 Ng i ki mth
Hình 2-3 Ki n th c c n có c a ng i ki m th
n ph mChuyên môn
Ki n th c v thu t
Trang 252.6 Lu ng thông tin ki m th
Hình 2-4 Mô hình lu ng thông tin ki m th [1]
Trang 27• Error: sai, l i Nó là cái gì ó sai trong chính ph n m m.
• Fault: l i, khi m khuy t Nó là th hi n c a m t error
• Failure: không th c hi n c, th t b i Nó là cái gì ó sai trong cách gi iquy t19c a ph n m m Failure do m t ho c nhi u faults gây nên
Các nguyên nhân gây ra fault:
Trang 28• B n phác th o l p trình23 có th có l i
• L p trình có th có l i
M c ích c a vi c ki m th là phát hi n ra các faults và ng n ng a các failuresCác nguyên nhân gây ra Failure:
Trang 3114 Tính an toàn: kh n ng ki m soát hay b o v ch ng trình và d li u.
Trang 32M i liên h gi a các nhân t ch t l ng ph n m m và các o c thi t k
li t kê trong b ng d i ây:
úng
n
Tin y
Hi u qu
Toàn n
o trì
m o
Ki m th
Kh chuy n
Tái
ng
Liên tác
Dùng c
Trang 332.8.3 Vai trò c a vi c qu n lý ch t l ng ph n m m
m m
1 Standards32: là m t y u t m u ch t trong SQS Các chu n là n n t ng
qua các cu c h p xét duy t, m c ích c a các cu c h p này nh m phát
khi m khuy t trong s n ph m
3 Testing34: M c ích c a vi c ki m th là tìm các l i và ki m tra l i xem
ph n m m ch y úng hay sai h n là xem ph n m m có th a yêu c u
m c tiêu th a mãn yêu c u thì ch phí th i gian
Trang 344 Defect analysing35: H u h t các t ch c dùng thu t ng ch t l ng ng
Trang 35nh danh m i th hi n c a s n ph m, m i h s tài li u m i, t ng
này ngày càng quan tr ng h n trong vi c tích h p các module vào
yêu c u, b n thi t k , ki m th , mã ngu n, v.v
Trang 366 Security40: Các d li u và trung tâm l u tr d li u ph i c b o m an
u tr d li u thì r t d b h h i ho c b phá h y hoàn toàn Các r i ro
c ng nh trung tâm l u tr d li u là m t u c n thi t
hi n úng các công vi c, các thao tác
b nh ng ki n th c ó cho nhân viên c a mình
trò quan tr ng Qu n lý nh ng công vi c nh nh t xung quanh vi c pháttri n ph n m m nh liên h mua b n quy n các ph n m m h tr , các
ng
m m ó và cho c h th ng K ho ch qu n lý d án nên có ph n mô t
Trang 38Trong ki m th h p en ta s không ý n bên trong c a h th ng, mà
ch t p trung vào m i quan h gi a d li u vào và thông tin c a ra.
Hình 3-1 Ki m th h p en [11]
c quan sát t bên ngoài
Ki m th h p en t p trung vào nh ng yêu c u mang tính ch c n ng c a
Trang 39Ki m th h p en c g ng tìm l i trong các lo i sau ây:
Vi c t h p các d li u c bi t có tác ng gì lên s v n hành c a h th ng?
Trang 403.2 Ki m th h p tr ng
trong th t c nào không? …
Trang 41• L i gõ sai: Trong khi l p trình, có th gõ sai t bàn phím (ví d d u + thì
Trang 42Là k thu t ki m th d a vào b n miêu
t - báo cáo k thu t bên trong h th ng
ho c các thành ph n c a ph n m m
3.4 Ki m th cho h th ng th i gian th c
tr ng thái khác thì k t qu cho ra l i có th d n t i l i
Ch ng h n, ph n m m th i gian th c ki m soát m t máy photocopy, v icùng l nh ng ng c a thao tác viên s không có l i gì khi máy ang sao chép (tr ngthái “sao”) nh ng n u máy ang tr ng thái “k t gi y” thì l i gây ra l i
t ng nhi m v Vi c ki m th này phát hi n ra l i v logic và ch c n ng
nh ng s không phát hi n ra l i v th i gian hay hành vi
v i các s ki n bên ngoài.Vi c phân tích này làm c s cho vi c thi t k
Trang 43ng ng, các s ki n (ng t, tín hi u u khi n, d li u) c phân
lo i cho vi c ki m th
Trang 44Hình 3-3 Font trong Word và Word Pad
Trang 45d ng tính t ng có úng không V y hãy tính xem ta s có bao nhiêu testcase?
99 giá tr t 1 à 99
1 giá tr 0
99 giá tr t -99 à -1
à Có 199 giá tr v i m i bi n T ng c ng là có 199*199= 39601 testcases.Sau ó b n s ki m th giá tr nh p vào t 100 tr lên, d i -99, hay không là s
Th t kh ng khi p n u ta ph i ki m h t nh ng testcases này! Nh ng hãy nghxem, khi b n ã ki m th 5 + 9 thì có c n ki m thêm 5+4 hay 9+6 … không? i unày không c n thi t Và b n s phân các testcase này thành các nhóm (mi n):
tiêu bi u nh t)
• Mi n g m 2 s mà >99 ho c <-99 (chi n l c ki m giá tr tiêu bi u nh t)
Trang 46• Mi n g m 2 s có giá tr là -99, 99, -100, 100 (chi n l c ki m nh ng giá
Ki m tra dài các c nh v i giá tr b ng 0 (a=0, b=0; c=0), hay giá tr âm,
u i m: H u d ng cho t t c các m c ích: ánh giá tin c y, ánh giá kh
nhi u nh t
Khuy t m: K thu t Domain testing quá n gi n, không áp ng c nh ng