i cám n
L i
u tiên, chúng em xin chân thành cám n th y Lâm Quang V , th y
Ph m Minh Tu n ã t n tâm h
ng d n chúng em, giúp
chúng em hoàn thành
tài này.
Chúng em c ng xin cám n các th y cô, cán b gi ng viên tr
ã nhi t tình
ó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 p
cho chúng em v n ki n th c quý báu su t nh ng n m h c v a qua.
Chúng em cám n khoa Công ngh thông tin tr
nhiên ã t o
u ki n cho chúng em th c hi n
ng
i h c Khoa h c T
tài này.
Chúng tôi c ng xin cám n các b n ã nhi t tình giúp
ng ph i nh ng khó kh n,
khi chúng tôi
ng viên chúng tôi trong su t quá trình th c hi n
tài lu n v n t t nghi p này.
M c dù chúng em ã c g ng r t nhi u
hoàn thành t t lu n v n, nh ng
ch c ch n không tránh kh i nh ng thi u sót, chúng em r t mong
và t n tình giúp
c s c m thông
c a quý th y cô.
Tp. H Chí Minh, 07/2004
Nhóm sinh viên th c hi n
V Ng c Sen – Nguy n Th Quyên
im
u
Sau cu c kh ng ho ng trong ngành công ngh thông tin vào
2000,
u nh ng n m
n nay, công ngh s n xu t ph n m m trên th gi i và nh t là
ang ti n nh ng b
c ti n m nh m h n. V
Vi t Nam
t qua cu c kh ng ho ng này, ngoài
nh ng kinh nghi m trong kinh doanh, các công ty tin h c Vi t Nam nh n th c
r ng quy trình s n xu t ph n m m c a chính công ty h c n
tiêu
u tiên là nâng cao ch t l
m m. Và t
c
c nâng c p v i m c
ng, t ng tính chuyên nghi p trong s n xu t ph n
ó ti n trình ki m th ph n m m tr thành ti n trình vô cùng quan
tr ng trong quy trình s n xu t ph n m m.
Trong m t quy trình s n xu t ph n m m, ngoài vi c thành l p các chu n
coding, phân công s p x p các công vi c cho các thành viên trong t ch c, qu n lý
các tài li u nh các b n
c t yêu c u, b n phân tích thi t k ch
ng trình, ch
ng
trình ngu n,… thì m t y u t c ng r t quan tr ng là h tr qu n lý ti n trình ki m
th bao g m h tr qu n lý các tr
ng h p ki m th , các b n báo cáo ki m th , các
l i…
Chúng em ã th c hi n
tài “Tìm hi u v ki m th ph n m m và Xây d ng
h th ng h tr qu n lý ti n trình ki m th ” nh m hi u rõ ti n trình ki m th , các
lo i ki m th , cách ki m th , vi c qu n lý ki m th , nh ng m c tiêu, thu n l i mà
ti n trình này em l i.
Lu n v n c a chúng em
c trình bày v i b y ch
ng chính, bao g m:
-
Ch
ng 1 M
u
-
Ch
ng 2 T ng quan v ki m th ph n m m
-
Ch
ng 3 Các lo i ki m th ph n m m
-
Ch
ng 4 Các công c h tr
-
Ch
ng 5 Phát tri n công c qu n lý ti n trình ki m th
-
Ch
ng 6 Th nghi m
-
Ch
ng 7 T ng k t và h
-
Ph l c
ng phát tri n
CL C
Ch
ng 1
u ...................................................................................................... 1
1.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
Ch
ng 2
tài....................................................................................................................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
2.3.1 Giai
2.3.2 Giai
2.3.3 Giai
2.3.4 Giai
n ki m th ph n m m....................................................................................5
n 1: Phác h a môi tr ng c a ph n m m........................................................................6
n 2: Tìm các k ch b n ki m th . .....................................................................................9
n 3: Th c thi và ánh giá k ch b n ki m th .................................................................11
n 4: ánh giá ti n trình ki m th ..................................................................................12
2.4 Ki m th trong các giai
2.4.1 Ki m th trong giai
2.4.2 Ki m th trong giai
2.4.3 Ki m th trong giai
2.5 Ng
i ki m th
n phát tri n ph n m m .......................................................13
n c t yêu c u....................................................................................14
n thi t k ..............................................................................................15
n l p trình ...........................................................................................16
...............................................................................................................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
3.5.12 Acceptance Testing ................................................................................................................64
3.5.13 Beta Testing ...........................................................................................................................65
3.5.14 Exploratory testing .................................................................................................................66
3.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
6.2.6 Thêm Test vào TestSet ...........................................................................................................142
6.2.7 Thêm các b c cho Test .........................................................................................................142
6.2.8 C p nh t k t qu test (T o TestRun) .......................................................................................143
6.2.9 Thêm l i Defects ....................................................................................................................143
6.3 Th nghi m công c RTH k t h p v i WinRunner......................................................144
Ch
ng 7
7.1 T
ng k t và H
ng phát tri n ............................................................... 145
á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
DANH SÁCH HÌNH
Hình 2-1 Ng i l p trình ................................................................................................. 16
Hình 2-2 Ng i ki mth ................................................................................................. 17
Hì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
Thu t ng / T vi t t t / Khái ni m
APIs
Software Interfaces: Giao di n ph n m m.
BVA
Phân tích giá tr bi n.
CSDL
s d li u.
F
false: Là giá tr sai (0)
GUI
Graphics User Interface: Giao di n
h a ng
i
dùng.
QA
Quality Assurance: B ph n b o
Quality
Ch t l
s mong
m ch t l
ng
ng: Vi c th a mãn m t s n ph m theo úng
i c a khách hàng, d a vào nh ng yêu c u
cho s n ph m.
Software
Ph n m m: Là nh ng ch
ng trình, nh ng th t c
c g n li n v i các tài li u mô t và các d li u có
liên quan
SQS
n tác v c a m t h th ng máy tính.
Software Quality System: H th ng ch t l
m m
T
true: Là giá tr
úng (1)
ng ph n
Ch
ng 1 - M
u
Ch
ng 1
u
1.1 T m quan tr ng c a vi c qu n lý ti n trình ki m th
Th a mãn nhu c u c a ng
Vì v y,
m b o ch t l
ng ph n m m là m t ph n không th thi u trong quá trình
s n xu t ph n m m. Và v n
n n a, quan
n, không còn gi i h n
ph n m m ch t l
i dùng là vi c r t quan tr ng khi t o ra s n ph m.
qu n lý ch t l
m hi n
i v vi c
c
t ra.
m b o ch t l
ng ngày càng ph c t p
m c tiêu th a mãn yêu c u khách hàng. M t s n ph m
ng cao ph i k t h p nhi u nhân t ch t l
ng2). Có th chia các nhân t ch t l
•
ng
ng1 (thu c tính ch t
ng thành ba lo i:
Nh ng nhân t có th tìm th y trong
c t yêu c u, ví d nh tính linh
ng.
•
Nh ng nhân t mà ph n m m có th
•
Nh ng nhân t mà ng
áp ng, ví d nh tính hi u d ng.
i l p trình s chú tr ng nh ng ng
i dùng thì
không, ó là tính tái s d ng.
m t s n ph m
t
c nh ng nhân t ch t l
vi c d dàng. Vì v y, vi c qu n lý ch t l
ng này không ph i là m t
ng ph n m m là m t công vi c không th
thi u trong công ngh ph n m m.
1.2 Khái quát vai trò qu n lý ki m th
Thu ban
u c a ngành công nghi p máy tính nói chung và công ngh ph n
m m nói riêng, vi c phát tri n ph n m m
không h có m t k ho ch nào tr
ph m vi nh nên b n thân ng
th a mãn yêu c u ng
nhi u ng
c xem là m t ti n trình “vi t và s a”3,
c ti n trình này. Yêu c u c a ng
i vi t ph n m m có th t nh
i dùng còn
c và t ki m tra
i dùng. Nh ng hi n nay quy mô ph n m m r t l n, c n
i làm vi c chung; do ó ki m th ph n m m tr thành ti n trình quy t
nh s thành công c a d án.
1
Nhân t ch t l ng: quality factors
Thu c tính ch t l ng: quality attributes
3
Vi t và s a: code and fix
2
Trang 1
Ch
ng 1 - M
u
N u ta t qu n lý ti n trình ki m th thì không
ng tr
n gi n chút nào. Vì v i s
ng h p ki m th r t l n, ta c n:
• Qu n lý nh ng tr
tr
ng h p ki m th nào ã
ng h p ki m th nào ch a
c th c hi n và nh ng
c th c hi n.
• Còn ph i qu n lý k t qu ki m th
c u c a ph n m m. K t qu này s
th y
c kh n ng áp ng yêu
c thay
i và ph i
c c p nh t
l i sau m i phiên b n c a s n ph m.
• Yêu c u ng
Do ó các tr
c thay
s
i dùng s còn
i trong su t quá trình phát tri n.
ng h p ki m th liên quan
i theo. M t s tr
c c p nh t l i và
th
c thay
n nh ng yêu c u này c ng
ng h p ki m th s
c t o m i, m t s
c coi là phiên b n m i c a tr
ng h p ki m
ó.
T t c nh ng thông tin này
u ph i
c ghi nh n l i.
Do ó 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ó
m t ch
ng trình qu n lý ti n trình ki m th .
1.3 M c tiêu
tài
Tìm hi u chi ti t v ti n trình ki m th ph n m m:
•
nh ngh a ki m th
• T m quan tr ng
• M c ích, vai trò c a ti n trình ki m th
• Các giai o n trong ti n trình ki m th
• Ki m th trong các giai
n phát tri n ph n m m
• Các chu n trong ki m th
• Tìm hi u rõ v các lo i ki m th và ti n hành ki m th th c t
iv i
t ng lo i ki m th .
Tìm hi u v m t s công c h tr qu n lý ti n trình ki m th nh RTH,
TestLink, Qatraq,…
Trang 2
Ch
ng 1 - M
u
Tìm hi u v m t s công c ki m th t
+ Ki m th ph n m m t
+ Ki m th web t
ng:
ng: WinRunner
ng: Proxy sniffer
và ti n hành ki m th th c t v i các công c này.
ng d ng nh ng ki n th c ó
phát tri n h th ng h tr qu n lý:
• Các yêu c u
• Ti n trình ki m th
• Ghi4 l i
• Cho phép t o các tr
ng h p ki m th m u5
• G i Emai thông báo l i cho nhà l p trình ngay khi có l i xu t hi n
• K t h p ki m th t
ng: winrunner_ công c ki m th t
m m, proxy sniffer_ công c ki m th t
4
5
Ghi: report
Tr ng h p ki m th m u: Template testcase
Trang 3
ng web.
ng ph n
Ch
ng 2 - T ng quan v ki m th ph n m m
Ch
ng 2 T ng quan v ki m th ph n m m
2.1 Ki m th ph n m m là gì?
Ki m th ph n m m là m t ph n c a ti n trình phát tri n ph n m m. Nó là
ti n trình ánh giá m t h th ng ho c thành ph n c a h th ng b ng tay ho c t
ng, nh m xác
nh l i s tho mãn các yêu c u ph n m m.
Ki m th là ti n trình
ti n trình n ng
th c thi các ch
ng, sáng t o và
ng trình v i d
nh tìm ki m l i. ây là
y th thách trí tu .
Các phát bi u sai:
•
Ki m th là ti n trình ch ng minh ch
ng trình không b l i.
•
Ki m th là ti n trình xác minh, tin t
ng r ng ch
c nh ng gì ã
cd
ng trình ã làm
nh.
M t test thành công: là làm bi u hi n ra m t l i.
Vi c ng
i dùng g i thông báo “ph n m m có l i” là i u mà các nhà phát
tri n ph n m m không mu n. Khi ó, ch c ch n h s t h i: Làm th nào
quy t nh ng l i này? Và s m t r t nhi u th i gian
gi i
ki m tra c n th n hàng tr m,
hàng ngàn bi n, câu l nh. Vì v y cách hi u qu nh t là làm th nào
phòng tránh
nh ng l i này?
2.2 M c ích c a vi c ki m th ph n m m
Theo Deutsch[1]:
“Phát tri n h th ng ph n m m g m r t nhi u ho t
có l i là r t l n. L i có th x y ra ngay lúc kh i
ng s n xu t, và nguy
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
Ki m th ph n m m nh m
m b o ch t l
ng ph n m m.
Theo Glen Myers[1]::
Ki m th là ti n trình th c thi ch
ng trình
• M t tr
ng h p có xác xu t cao
ng h p ki m th là tr
bi u hi n.
• Ki m th thành công khi phát hi n l i.
Trang 4
tìm ra l i.
tìm ra l i ch a
Ch
ng 2 - T ng quan v ki m th ph n m m
Nh ng m c ích trên ng
c v i quan
m thông th
ng là “ki m th thành
cô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
m m. N u nh ng l i này
xác
c phát hi n b i ng
i dùng thì chi phí cho vi c b o trì,
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.
Chúng ta c n ph i nh r ng: “Ki m th không th ch ng minh
c vi c
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 :
1. Phác h a môi tr
tr
ng c a ph n m m: Tìm xem có kho ng bao nhiêu
ng h p c n ki m th , là nh ng tr
ng h p nào.
2. Tìm k ch b n ki m th .
3. Th c thi và ánh giá k ch b n ki m th .
4. o l
ng s ti n b c a ph n m m sau khi ã
hi u rõ v 4 giai o n này ta xét m t ví d
li u
c ki m th .
n gi n v c
ng trình có hai d
u vào sau:
Th i gian hi n t i: 9:28:32
Th i gian nh p: ……………..
Ngày hi n t i: 24 Aug 2006
Ngày nh p: ………………
N
i dùng giao ti p v i ph n m m b ng cách nh p các d li u
thi t, và ph n m m s cung c p d li u
u ra. V i ví d này, ng
u vào { th i gian, ngày tháng, phím Tab, phím Alt-F4}, h
nh
ch y ch
Ng
b nh có
i dùng cung c p
i u hành s c p b
ng trình hi n th th i gian và ngày tháng hi n hành.
i ki m th s ki m tra t ng d li u
th c hi n ch
u vào, xem nó có h p l không,
ng trình không, hay h th ng khoá ch c n ng chính.
Nh ng nhà ki m th ph i ki m tra t t c tr
ng
u vào c n
i dùng làm ph n m m bi u hi n l i.
Trang 5
ng h p có th x y ra. H suy ngh cách
Ch
ng 2 - T ng quan v ki m th ph n m m
Sau ây là o n mã ngu n cho ch
ng trình trên:
2.3.1 Giai o n 1: Phác h a môi tr ng c a ph n m m
B ng d i ây là b ng li t kê các tr ng h p ki m th ph các nhánh và các
câu l nh c a
n mã l nh trên.
Possible While
Case1
If1
Case 2
If 2
Case 3
If 3
1
F
-
-
-
-
-
-
2
T
T
T
-
-
-
-
3
T
T
F
-
-
-
-
4
T
F
-
T
T
-
-
5
T
F
-
T
F
-
-
6
T
F
-
F
-
T
T
7
T
F
-
F
-
T
F
8
T
F
-
F
-
F
-
ng 2-1 Các tr
ng h p ki m th ph các nhánh và các câu l nh
Trang 6
Ch
ng 2 - T ng quan v ki m th ph n m m
Nhìn vào b ng trên, chúng ta c n ki m th 8 tr
ch có m t cách
ng h p. V i m i câu l nh
nh giá k t qu True, có nhi u h n 2 cách
False. Th c t , chúng ta s tìm
x
c 2 -1 cách( x là s
nh giá k t qu
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
t môi tr
ng liên quan v i ph n m m.
Có bao nhiêu giá tr th i gian trong m t ngày?
Tr l i: 24ti ng*60phút*60giây = 86400 giá tr nh p khác nhau. ó là nh ng
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 :
• D li u h p l c a ngày, ví d ngày 20.
• D li u không h p l c a ngày, ví d ngày 32.
• S k t h p gi a th i gian và ngày tháng. Ví d : ngày 20 tháng 2 n m
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.
Trên th c t , ta không th ki m h t m i giá tr , mà ch tìm nh ng d li u
vào tiêu bi u, chúng s
các d li u
c dùng trong su t quá trình ki m th . i u quan tr ng là
u vào có bao ph h t m i tr
Nhi m v c a ng
u
ng h p c n ki m không.
i ki m th là xác
nh s
nh h
ng c a môi tr
ng lên
ph n m m. H ph i tìm hi u giao di n ph n m m và li t kê d li u nh p
iv i
m i giao di n. ó là nhi m v c b n c a nhà ki m th và nó có th r t khó.
Có 4 giao di n thông th
1. Giao di n ng
truy n
ng:
i dùng6: Bao g m các thao tác thông th
t v i ph n m m. Hay dùng nh t là giao di n
ng
h a ng
con ng
i dùng GUI7.
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 s
tì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.
6
7
Human Interface
Graphics User Interface
Trang 7
i
Ch
ng 2 - T ng quan v ki m th ph n m m
2. Giao di n ph n m m, APIs8: ph n m m s d ng m t h
d li u. Khó kh n c a ng
i ki m th là ph i ki m t t c nh ng gì mà d ch v cung
c p, c nh ng ch c n ng mà ng
i dùng mong
nhà phát tri n ph n m m mu n h
n các thông báo t h
báo l i c ng c n ph i
i u hành, c s
i và không mong
i u hành l u t p tin. H th
i u hành r ng thi t b l u tr
ã
i.Ví d : các
ng không chú ý
y. Th m chí các thông
c ki m tra.
3. Giao di n h th ng t p tin t n t i b t c khi nào ph n m m
c ho c vi t
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ã
ki m tra l i
phát hi n ra l i n u ph n m m ch a d li u và
4. Giao di n giao ti p: cho phép truy c p tr c ti p
và yêu c u m t giao th c giao ti p.
nh d ng riêng.
n nh ng thi t b v t lý
ki m th nh ng ph n m m này, ng
th làm cho các giao th c h p l và không h p l
i ki m
c th c hi n. H t o ra các
cá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 tin
chu n.
K ti p, ng
ngoài ph m vi
i ki m th ph i ngh xem các thao tác nào c a ng
i dùng n m
u khi n c a ph n m m. Ví d :
• Khi s d ng h
i u hành, ng
i dùng xoá m t t p tin mà ng
khác ang m . Ph n m m s x lý nh th nào trong tr
• M t thi t b kh i
i dùng
ng h p này?
ng l i khi ang th c hi n vi c giao ti p. Ph n m m s
ph n ng l i nh th nào?
2.3.1.2 S cân nh c, suy xét
Khi g p giao di n ph c t p, ng
i ki m th có hai khó kh n:
• H ph i tìm c n th n nh ng d li u
• Ph i xác
Ng
li u
8
u vào.
nh trình t nh p nh th nào.
i ki m th th
ng dùng k thu t “chia c t giá tr biên”
tìm t ng d
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
Software Interfaces
Trang 8
Ch
ng 2 - T ng quan v ki m th ph n m m
ki m th giá tr c c ti u, c c
ph n m m. Nh ng giá tr
M tv n
i ho c b ng 0 trong yêu c u nh p m t s nguyên c a
gi a các biên có vai trò nh nhau.
ph c t p là vi c ch n nh ng giá tr
bi n có kh n ng nh h
ng l n nhau. Ng
ng th i cho ti n trình a
i ki m th ph i hi u t t c
nh h
ng
c a các giá tr .
V i ph n m m yêu c u nh p chu i, ng
H xem
u vào v t lý và các s ki n tr u t
c a m t ngôn ng chu n và
i ki m th s nh p chu i
ng nh các ký t trong b ng alphabet
nh ngh a mô hình c a ngôn ng
s trình bày, mô t làm th nào d li u nh p và các s ki n
nh ng t và nh ng câu có cú pháp h p l . Mô hình giúp ng
tr
ó. Mô hình là m t
c ph i h p
t o
i ki m th t p h p các
ng h p ki m th có th có. H u h t nh ng mô hình thông th
bi u
ki m.
ng là
th ho c
tr ng thái. Nh ng mô hình ph bi n khác bao g m nh ng bi u th c và ng
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
có là s nguyên t t h n 34? M t bao nhiêu th i gian
th y tr
m t tên t p tin
c tìm
c khi nh n vào nút nh n Open?
Nh ng câu h i này ã
g n li n v i m c
c nghiên c u và tr l i. Câu tr l i hay nh t là nó
bao ph c a mã ngu n và mi n nh p. Nh ng nhà ki m th c
g ng:
• Bao ph h t các câu l nh (th c thi m i dòng mã ngu n ít nh t m t l n).
ây là tiêu chu n (ph
• Bao ph h t d li u
ng pháp) ki m th
ng i th c thi.
u vào (áp d ng m i s ki n
c
chu n ki m th mi n nh p.
ây là nh ng tiêu chu n
h ki m h t m i m t c a ph n m m.
Trang 9
a ra), là tiêu
Ch
ng 2 - T ng quan v ki m th ph n m m
2.3.2.1 Tiêu chu n9 ki m th
ng i10 th c thi
Tiêu chu n ki m th d li u t p trung vào vi c:
nh p nào
th
ng i nào ho c mi n
c th c thi, hi m khi c hai. Tiêu chu n tìm ki m
ng t p trung vào nh ng
ng có các c u trúc
ng i th c thi
u khi n. Ví d :
• Tìm ki m m t t p ki m th mà m i câu l nh
• Tìm ki m t p ki m th mà m i c u trúc nhánh
c th c thi ít nh t 1 l n.
c ánh giá v i giá tr
có th có c a nó.
Th c t , l i kh i
ur t
c quan tâm. Trong ph
c c ý chèn vào trong mã ngu n. Sau ó ng
ng pháp này, m t s l i
i ki m th s thi t k k ch b n
tìm nh ng l i này. Vi c tìm ki m các l i c ý s giúp ng
i ki m th tìm ra nh ng
l i th c s .
2.3.2.2 Tiêu chu n ki m th mi n nh p11
Tiêu chu n ki m tra mi n nh p t m c
Tìm t p các tr
n ph c t p:
ng h p ki m th mà:
• Ch a t t c d li u
• M i
n gi n
u vào v t lý.
u khi n giao di n (window, menu, button,…)
u
c thao tác.
• Có tính ch t th ng kê cho toàn b mi n nh p.
• Các
ng i
u
c th c thi.
Các nhà nghiên c u v ki m th
b ki m th
i di n cho t t c
ã nghiên c u các thu t toán
ng i có th
ch n nh ng
c th c thi và t t c mi n nh p có
th có. H u h t h cho r ng: c n th n tr ng khi k t h p nhi u tiêu chu n
th và ánh giá ch t l
chu n, v ph
ng s n ph m. Ng
ng pháp mà h ch n
i ki m th nên có ki n th c v tiêu
tìm, t o ra các tr
hi u gi i h n c a các tiêu chu n này,
tránh tr
không ph i do ph n m m b l i, mà do các tr
9
Tiêu chu n: Ph ng pháp
ng i: T ng nhánh c a mã ngu n
11
Mi n nh p: D li u u vào
10
Trang 10
ki m
ng h p ki m th . H ph i
ng h p có thông báo l i nh ng
ng h p ki m th không úng.
Ch
ng 2 - T ng quan v ki m th ph n m m
2.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,
n
i ki m th chuy n nó thành hình th c có th th c thi
l i các thao tác c a ng
g ng t
i dùng d a trên k ch b n ki m th
c b ng cách th c hi n
ó. Các nhà ki m th c
ng hoá k ch b n ki m th .
á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
ki m th , k t qu mong mu n theo b n
n u b l ch là sai. Ng
ct .B n
c t ph i
c
m b o úng,
i ki m th s so sánh k t qu th c thi và k t qu mong
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 a
hai 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
c các tr
ng h p sai l i chính t
ã
nh r ng t t
c dò tìm?
2.3.3.1 Ki m th h i quy12
Khi ti n trình ki m th k t thúc, các l i ã
c phát hi n, thì các nhà phát
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
phiên b n m i nh t c a ph n m m cho
h p nh t. Câu h i
n khi xác
nh
c m t phiên b n thích
t ra: khi ta ã ti n hành ki m th phiên b n n-1, thì v i phiên
b n n, ta ph i ki m th nh th nào? Ki m m i h t? Hay ch ki m l i nh ng b
ki m th c c a phiên b n n-1?
M t vài tr
ng h p sau khi s a ch a l i:
• Ch s a ch a nh ng v n
ã
c thông báo.
• Vi c s a ch a th t b i.
• S a ch a l i nh ng l i làm ng ng m t vài th khác mà tr
c ó ang làm
vi c
• Không nh ng l i không
c s a ch a mà còn làm ng ng tr m t vài th
khác n a.
12
Ki m th h i quy: Regression testing
Trang 11
Ch
ng 2 - T ng quan v ki m th ph n m m
Vì 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
m i. Phiên b n m i th
ng kèm theo các ch c n ng m i, nên ki m th h i quy s
m t th i gian trong vi c ki m nh ng
n mã l p trình m i. Các ki m th viên và
phát tri n viên làm vi c cùng nhau
nh ng ki m th h i quy
làm gi m t i a các b ki m th và xác
c u tiên. M t h n ch khác
nh ng ki m th này có th làm thay
nh
i v i ki m th h i quy là
i tiêu chu n c a d li u lúc
u.
2.3.3.2 Các m i quan tâm liên quan13
Theo lý thuy t, ng
mã
ph
i thi t k s vi t o n mã và t ki m tra. N u nh
c vi t khó ki m th thì nó nên
c vi t l i
d ki m h n.
o n
ng t , các
ng pháp ki m th c ng nên d th c hi n, n u nó có th dùng trong ki m th t
ng thì t t h n.
Khi th c thi và ánh giá các b ki m th , n u có l i thì ng
mô ph ng l i các thao tác và nh ng bi u hi n l i. B i vì các l i
ng
i ki m th nh ng l i
c s a b i ng
i ki m th nên
c phát hi n b i
i phát tri n. Vi c này s n y sinh 2 v n
: mô ph ng l i và tái th c thi k ch b n ki m th .
• Mô ph ng l i: l i x y ra nh th nào? Các bi u hi n c a nó.
• Tái th c thi k ch b n: g m nh ng thao tác nào? Tr ng thái c a h
hành và ph n m m, ví d
ng d ng khách-ch .
2.3.4 Giai o n 4: ánh giá ti n trình ki m th
Ta ánh giá ti n trình ki m th d a trên
này
c tính b ng vi c
ta dùng
u
m m t cái gì ó, ví d :
14
o v k t qu ki m th .
ms
ng d li u
u vào mà
ki m th , s l n g i th c thi ng d ng, t l mã ngu n ã ki m soát,
s l n k t thúc ng d ng thành công, s l i tìm th y, …
ki m tra tính toàn v n c u trúc, ng
i ki m có th tr l i các câu h i:
• Tôi ã ki m tra nh ng l i l p trình ph bi n ch a?
• Tôi ã s d ng toàn b mã ngu n ch a?
13
14
Các m i quan tâm liên quan: related concerns
ánh giá ti n trình ki m th ph n m m: Measuring Testing Progress
Trang 12
o
m
Ch
ng 2 - T ng quan v ki m th ph n m m
• Có ph i tôi ch t p trung vào d li u bên trong
• Tôi ã tìm ra t t c l i kh i
ki m tra tính toàn v n ch c n ng, ng
kh i t o và s d ng?
u ch a?
i ki m th nên tr l i nh ng câu sau:
• Tôi ã ngh h t các cách mà ph n m m có th b l i và ch n nh ng cách
ki m tra
th hi n nó ch a?
• Có ph i tôi ã áp d ng t t c nh ng d li u
u vào?
• Có ph i tôi ã hoàn t t vi c kh o sát không gian tr ng thái c a ph n
m m?
• Có ph i tôi ã ch y h t t t c nh ng ph
ng án mà tôi ngh r ng ng
i
dùng có th s th c thi?
2.4 Ki m th trong các giai
n phát tri n ph n m m
Chu trình ki m th :
1. Phân tích yêu c u: Quá trình ki m th nên
cb t
u t giai o n yêu
c u c a ph n m m
2. Phân tích thi t k : Trong su t giai
vi c v i nhóm phát tri n
n thi t k , nhóm ki m th nên làm
hi u rõ cách thi t k nh m ki m th d dàng và s m
n.
3. Lên k ho ch ki m th .
4. Trình bày ki m th : Th t c ki m th , k ch b n ki m th , nh ng tr
h p ki m th , nh ng t p l nh ki m th
ng
s d ng trong quá trình ki m th ph n
m m.
5. Ti n hành ki m th : Nh ng nhà ki m th ti n hành th c thi các tr
h p ki m th theo b n k ho ch ã l p ra và thông báo t t c nh ng l i tìm
ng
c
cho nhóm phát tri n.
6. Thông báo k t qu ki m th : Khi quá trình ki m th thành công, ng
i
ki m th thông báo k t qu nh các ng d ng qu n lý ti n trình ki m th , và tìm
cách thông báo chi ti t v l i.
Trang 13
- Xem thêm -