Luan Van - 0212251-0212256
description
Transcript of Luan Van - 0212251-0212256
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 ng i h c Khoa h c T
nhiên ã t o u ki n cho chúng em th c hi n tài này.
Chúng tôi c ng xin cám n các b n ã nhi t tình giúp khi chúng tôi
ng ph i nh ng khó kh n, 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 c s c m thông
và t n tình giúp 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
i m u
Sau cu c kh ng ho ng trong ngành công ngh thông tin vào u nh ng n m
2000, n nay, công ngh s n xu t ph n m m trên th gi i và nh t là Vi t Nam
ang ti n nh ng b c ti n m nh m h n. V 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 c
r ng quy trình s n xu t ph n m m c a chính công ty h c n c nâng c p v i m c
tiêu u tiên là nâng cao ch t l ng, t ng tính chuyên nghi p trong s n xu t ph n
m m. Và t ó 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 ng phát tri n
- Ph l c
C L C
Ch ng 1 u ...................................................................................................... 11.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............................................................ 42.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....................................................................................52.3.1 Giai n 1: Phác h a môi tr ng c a ph n m m........................................................................62.3.2 Giai n 2: Tìm các k ch b n ki m th . .....................................................................................92.3.3 Giai n 3: Th c thi và ánh giá k ch b n ki m th .................................................................112.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 .......................................................132.4.1 Ki m th trong giai n c t yêu c u....................................................................................142.4.2 Ki m th trong giai n thi t k ..............................................................................................152.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 ...................................................................................................192.7.1 Phân bi t QC và QA.................................................................................................................192.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......................................222.8.1 Các nhân t ch t l ng c a ph n m m ......................................................................................222.8.2 o ch t l ng ph n m m .....................................................................................................242.8.3 Vai trò c a vi c qu n lý ch t l ng ph n m m ..........................................................................262.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................................................................... 313.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 ...............................................................................................363.5.1 Oracles testing..........................................................................................................................363.5.2 Domain testing .........................................................................................................................373.5.3 Function testing........................................................................................................................393.5.4 Combination testing .................................................................................................................403.5.5 Regression testing ....................................................................................................................473.5.6 Risk based testing.....................................................................................................................503.5.7 Senario testing..........................................................................................................................553.5.8 Specification based testing........................................................................................................583.5.9 User testing ..............................................................................................................................623.5.10 Stress testing ..........................................................................................................................633.5.11 Integration Testing .................................................................................................................64
3.5.12 Acceptance Testing ................................................................................................................643.5.13 Beta Testing ...........................................................................................................................653.5.14 Exploratory testing .................................................................................................................66
3.6 Các lo i ki m th h p tr ng ............................................................................................70Unit testing.......................................................................................................................................70
Ch ng 4 Các công c h tr .................................................................................. 724.1 Công c h tr qu n lý ki m th .....................................................................................72
4.1.1 Nh n xét chung ........................................................................................................................724.1.2 TestLink...................................................................................................................................734.1.3 Qatraq......................................................................................................................................754.1.4 RTH.........................................................................................................................................774.1.5 Mantis Bugtracking ..................................................................................................................77
4.2 Công c ki m th ph n m m t ng .............................................................................784.2.1 TestComplete ...........................................................................................................................784.2.2 Winrunner................................................................................................................................80
4.3 Công c ki m th web t ng........................................................................................814.3.1 Gi i thi u.................................................................................................................................814.3.2 Proxy Sniffer ............................................................................................................................824.3.3 Công c Webserver Stress ........................................................................................................844.3.4 Apche Jmeter ...........................................................................................................................854.3.5 Wapt ........................................................................................................................................86
4.4 Công c ki m th Unit [6] ...............................................................................................884.4.1 PHP Unit Testing .....................................................................................................................884.4.2 Cunit testing [7].......................................................................................................................984.4.3 JUnit Testing [8] ....................................................................................................................100
Ch ng 5 Phát tri n công c qu n lý ki m th ..................................................... 1085.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........................................................................................... 1186.1 Th nghi m v i các lo i test ..........................................................................................118
6.1.1 Oracles...................................................................................................................................1186.1.2 Domain testing .......................................................................................................................1206.1.3 Function testing......................................................................................................................1216.1.4 Combination testing ...............................................................................................................1236.1.5 Regressiont testing .................................................................................................................1256.1.6 Risk-based testing ..................................................................................................................1286.1.7 Scenario testing......................................................................................................................1306.1.8 User testing ............................................................................................................................1346.1.9 Stress testing ..........................................................................................................................1356.1.10 Exploratory testing ...............................................................................................................135
6.2 Th nghi m công c RTH..............................................................................................1406.2.1 T o d án ...............................................................................................................................1406.2.2 Thêm Requirement vào Project ...............................................................................................1406.2.3 Thêm m t release ...................................................................................................................1416.2.4 Thêm Build vào Release .........................................................................................................1416.2.5 Thêm TestSet vào Build .........................................................................................................141
6.2.6 Thêm Test vào TestSet ...........................................................................................................1426.2.7 Thêm các b c cho Test .........................................................................................................1426.2.8 C p nh t k t qu test (T o TestRun) .......................................................................................1436.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 ng k t và H ng phát tri n ............................................................... 1457.1 T ánh giá ....................................................................................................................145
7.1.1 Nh ng k t qu t c..........................................................................................................1457.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 .................................... 6ng 2-2 So sánh nh ngh a c a QC và QA ................................................................... 19ng 2-3 Nh ng m khác nhau gi a QC và QA ........................................................... 20ng 2-4 Ví d so sánh error, fault, failure ...................................................................... 20ng 2-5 Các nhân t và o ch t l ng [1] ................................................................ 25ng 3-1 B ng k t h p giá tr các bi n ............................................................................ 40ng 3-2 B ng k t h p giá tr các bi n v i cách ti p c n th 1 ........................................ 41ng 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 ........................ 41ng 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 ................................................................................................. 16Hình 2-2 Ng i ki mth ................................................................................................. 17Hình 2-3 Ki n th c c n có c a ng i ki m th ................................................................ 17Hình 2-4 Mô hình lu ng thông tin ki m th [1] ............................................................... 18Hình 2-5 Mô hình mô ph ng các b c QC c b n [9]..................................................... 19Hình 2-6 Mô hình mô ph ng các b c QA c b n [9] .................................................... 19Hình 2-7 Mô hình các nhân t ch t l ng c a McCall [1]............................................... 22Hình 2-8 Mô hình các ho t ng trong CM [10] ............................................................. 27Hình 2-9 T ng quan v CM [10]..................................................................................... 28Hình 3-1 Ki m th h p en [11].................................................................................... 31Hình 3-2 Ki m th h p tr ng [11] .................................................................................. 33Hình 3-3 Font trong Word và Word Pad .......................................................................... 37Hình 3-4 Chu trình ki m th d a trên r i ro..................................................................... 51Hình 4-1 Mô hình use case c a công c qu n lý ki mth TestLink.................................. 73Hình 4-2 Quá trình ghi l i d li u – công c Proxy Sniffer .............................................. 82Hình 4-3 Qui trình th c thi load test – Công c Proxy Sniffer.......................................... 83Hình 4-4 Công c Wapt................................................................................................... 86Hình 4-5 Giao di n h a ng i dùng – JUnit testing................................................... 107Hình 5-1 Giao di n TreeView tr c quan h n ................................................................. 117Hình 5-2 Màn hình t o Template Testcase..................................................................... 117Hình 6-1 Th nghi m th c t v i Oracles testing........................................................... 119Hình 6-2 Th nghi m th c t v i Domain testing .......................................................... 121Hình 6-3 Th nghi m th c t 1 v i Function testing ...................................................... 122Hình 6-4 Th nghi m th c t v i Function testing......................................................... 123Hình 6-5 Th nghi m th c t v i Combination testing .................................................. 124Hình 6-6 WinAmp phiên b n 2. 79 & phiên b n 5.03 .................................................... 125Hình 6-7 C p nh t thông tin v bài hát trong Winamp. .................................................. 126Hình 6-8 L i trong Winamp v5.03 v i Regression testing ............................................. 127Hình 6-9 Th nghi m th c t v i Risk-based testing ..................................................... 129Hình 6-10 Th nghi m th c t v i Scenario testing ...................................................... 130Hình 6-11 Th nghi m th c t v i User testing ............................................................. 134Hình 6-12 Giao di n ng d ng Paint.............................................................................. 136Hình 6-13 Màn hình t o d án c a RTH........................................................................ 140Hình 6-14 Màn hình t o yêu c u c a RTH..................................................................... 140Hình 6-15 Màn hình t o release c a RTH...................................................................... 141Hình 6-16 Màn hình thêm build c a RTH...................................................................... 141Hình 6-17 Màn hình thêm TestSet c a RTH.................................................................. 141Hình 6-18 Màn hình thêm test c a RTH ........................................................................ 142Hình 6-19 Màn hình thêm t ng b c test c a RTH........................................................ 142Hình 6-20 Màn hình thêm TestRun c a RTH................................................................. 143Hình 6-21 Màn hình thêm l i Defect c a RTH .............................................................. 143Hì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 m ch t l ng
Quality Ch t l ng: Vi c th a mãn m t s n ph m theo úng
s mong 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 n tác v c a m t h th ng máy tính.
SQS Software Quality System: H th ng ch t l ng ph n
m m
T true: Là giá tr úng (1)
Ch ng 1 - M u
Trang 1
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 i dùng là vi c r t quan tr ng khi t o ra s n ph m.
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 qu n lý ch t l ng c t ra.
n n a, quan m hi n i v vi c m b o ch t l ng ngày càng ph c t p
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
ph n m m ch t l ng cao ph i k t h p nhi u nhân t ch t l ng1 (thu c tính ch t
ng2). Có th chia các nhân t ch t l 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 áp ng, ví d nh tính hi u d ng.
• Nh ng nhân t mà 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 ng này không ph i là m t
vi c d dàng. Vì v y, vi c qu n lý ch t l 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 c xem là m t ti n trình “vi t và s a”3,
không h có m t k ho ch nào tr c ti n trình này. Yêu c u c a ng i dùng còn
ph m vi nh nên b n thân ng i vi t ph n m m có th t nh c và t ki m tra
th a mãn yêu c u ng i dùng. Nh ng hi n nay quy mô ph n m m r t l n, c n
nhi u ng 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 factors2 Thu c tính ch t l ng: quality attributes3 Vi t và s a: code and fix
Ch ng 1 - M u
Trang 2
N u ta t qu n lý ti n trình ki m th thì không n gi n chút nào. Vì v i s
ng tr ng h p ki m th r t l n, ta c n:
• Qu n lý nh ng tr ng h p ki m th nào ã c th c hi n và nh ng
tr ng h p ki m th nào ch a c th c hi n.
• Còn ph i qu n lý k t qu ki m th th y c kh n ng áp ng yêu
c u c a ph n m m. K t qu này s 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 i dùng s còn c thay i trong su t quá trình phát tri n.
Do ó các tr ng h p ki m th liên quan n nh ng yêu c u này c ng
c thay i theo. M t s tr ng h p ki m th s c t o m i, m t s
s c c p nh t l i và c coi là phiên b n m i c a tr ng h p ki m
th ó.
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 i v 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,…
Ch ng 1 - M u
Trang 3
Tìm hi u v m t s công c ki m th t ng:
+ Ki m th ph n m m t ng: WinRunner
+ Ki m th web t 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 ng ph n
m m, proxy sniffer_ công c ki m th t ng web.
4 Ghi: report5 Tr ng h p ki m th m u: Template testcase
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 4
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 th c thi các ch ng trình v i d nh tìm ki m l i. ây là
ti n trình n ng ng, sáng t o và 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 ng trình ã làm
c nh ng gì ã c d 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 gi i
quy t nh ng l i này? Và s m t r t nhi u th i gian 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 ng s n xu t, và nguy
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
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 tìm ra l i.
• M t tr ng h p ki m th là tr ng h p có xác xu t cao tìm ra l i ch a
bi u hi n.
• Ki m th thành công khi phát hi n l i.
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 5
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 c phát hi n b i ng i dùng thì chi phí cho vi c b o trì,
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.
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 ng c a ph n m m: Tìm xem có kho ng bao nhiêu
tr 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 ã c ki m th .
hi u rõ v 4 giai o n này ta xét m t ví d n gi n v c ng trình có hai d
li u u vào sau:
Th i gian hi n t i: 9:28:32
Ngày hi n t i: 24 Aug 2006
Th i gian nh p: ……………..
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 u vào c n
thi t, và ph n m m s cung c p d li u u ra. V i ví d này, ng i dùng cung c p
u vào { th i gian, ngày tháng, phím Tab, phím Alt-F4}, h i u hành s c p b
nh ch y ch ng trình hi n th th i gian và ngày tháng hi n hành.
Ng i ki m th s ki m tra t ng d li u u vào, xem nó có h p l không,
b nh có th c hi n ch 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 h p có th x y ra. H suy ngh cách
ng i dùng làm ph n m m bi u hi n l i.
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 6
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 mB 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
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 7
Nhì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
ch có m t cách nh giá k t qu True, có nhi u h n 2 cách nh giá k t qu
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
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 u
vào tiêu bi u, chúng s c dùng trong su t quá trình ki m th . i u quan tr ng là
các d li u u vào có bao ph h t m i tr ng h p c n ki m không.
Nhi m v c a 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 i v 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 ng:
1. Giao di n ng i dùng6: Bao g m các thao tác thông th ng con ng i
truy n t v i ph n m m. Hay dùng nh t là giao di n h a 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 Human Interface7 Graphics User Interface
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 8
2. 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. 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 i và không mong i.Ví d : các
nhà phát tri n ph n m m mu n h i u hành l u t p tin. H th ng không chú ý
n các thông báo t h i u hành r ng thi t b l u tr ã y. Th m chí các thông
báo l i c ng c n ph i 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à nh d ng riêng.
4. Giao di n giao ti p: cho phép truy c p tr c ti p n nh ng thi t b v t lý
và yêu c u m t giao th c giao ti p. ki m th nh ng ph n m m này, ng i ki 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á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 i ki m th ph i ngh xem các thao tác nào c a ng i dùng n m
ngoài ph m vi 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 i dùng
khác ang m . Ph n m m s x lý nh th nào trong tr ng h p này?
• M t thi t b kh i 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 u vào.
• Ph i xác nh trình t nh p nh th nào.
Ng i ki m th th ng dùng k thu t “chia c t giá tr biên” tìm t ng d
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
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 9
ki 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
ph n m m. Nh ng giá tr gi a các biên có vai trò nh nhau.
M t v n ph c t p là vi c ch n nh ng giá tr ng th i cho ti n trình a
bi n có kh n ng nh h ng l n nhau. Ng 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 i ki m th s nh p chu i ki m.
H xem u vào v t lý và các s ki n tr u t ng nh các ký t trong b ng alphabet
c a m t ngôn ng chu n và nh ngh a mô hình c a ngôn ng ó. Mô hình là m t
s trình bày, mô t làm th nào d li u nh p và các s ki n c ph i h p t o
nh ng t và nh ng câu có cú pháp h p l . Mô hình giúp ng i ki m th t p h p các
tr ng h p ki m th có th có. H u h t nh ng mô hình thông th ng là th ho c
bi u 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 m t tên t p tin c tìm
th y tr c khi nh n vào nút nh n Open?
Nh ng câu h i này ã c nghiên c u và tr l i. Câu tr l i hay nh t là nó
g n li n v i m c 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 ng pháp) ki m th ng i th c thi.
• Bao ph h t d li u u vào (áp d ng m i s ki n c a ra), là tiêu
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.
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 10
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: ng i nào ho c mi n
nh p nào c th c thi, hi m khi c hai. Tiêu chu n tìm ki m ng i th c thi
th ng t p trung vào nh ng ng có các c u trúc u khi n. Ví d :
• Tìm ki m m t t p ki m th mà m i câu l nh c th c thi ít nh t 1 l n.
• Tìm ki m t p ki m th mà m i c u trúc nhánh c ánh giá v i giá tr
có th có c a nó.
Th c t , l i kh i u r t c quan tâm. Trong ph ng pháp này, m t s l i
c c ý chèn vào trong mã ngu n. Sau ó ng 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 n gi n n ph c t p:
Tìm t p các tr ng h p ki m th mà:
• Ch a t t c d li u u vào v t lý.
• M i 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 ã nghiên c u các thu t toán ch n nh ng
b ki m th i di n cho t t c ng i có th 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 ki m
th và ánh giá ch t l ng s n ph m. Ng i ki m th nên có ki n th c v tiêu
chu n, v ph ng pháp mà h ch n tìm, t o ra các tr ng h p ki m th . H ph i
hi u gi i h n c a các tiêu chu n này, tránh tr ng h p có thông báo l i nh ng
không ph i do ph n m m b l i, mà do các tr ng h p ki m th không úng.
9 Tiêu chu n: Ph ng pháp10 ng i: T ng nhánh c a mã ngu n11 Mi n nh p: D li u u vào
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 11
2.3.3 Giai o n 3: Th c thi và ánh giá k ch b n ki m thTh 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 c b ng cách th c hi n
l i các thao tác c a ng i dùng d a trên k ch b n ki m th ó. Các nhà ki m th c
g ng t 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 c t . B n c t ph i c m b o úng,
n u b l ch là sai. 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 nh r ng t t
c các tr ng h p sai l i chính 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 n khi xác nh c m t phiên b n thích
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
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
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 12
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 làm gi m t i a các b ki m th và xác nh
nh ng ki m th h i quy c u tiên. M t h n ch khác i v i ki m th h i quy là
nh ng ki m th này có th làm thay 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 i thi t k s vi t o n mã và t ki m tra. N u nh o n
mã c vi t khó ki m th thì nó nên c vi t l i d ki m h n. ng t , các
ph 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 i ki m th nên
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 c phát hi n b i
ng i ki m th nh ng l i c s a b i ng 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 u
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 14
Ta ánh giá ti n trình ki m th d a trên o v k t qu ki m th . o
này c tính b ng vi c m m t cái gì ó, ví d : m s ng d li u u vào mà
ta dùng ki m th , s l n g i th c thi ng d ng, t l mã ngu n ã ki m soát, m
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 Các m i quan tâm liên quan: related concerns14 ánh giá ti n trình ki m th ph n m m: Measuring Testing Progress
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 13
• 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?
• Tôi ã tìm ra t t c l i kh i u ch a?
ki m tra tính toàn v n ch c n ng, ng 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 c b 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 n thi t k , nhóm ki m th nên làm
vi c v i nhóm phát tri n 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 ng
h p ki m th , nh ng t p l nh ki m th 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 ng
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 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.
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 14
Không ph i t t c l i ho c khuy t m u ph i c s a ch a b i nhóm
phát tri n ph n m m. M t s khuy t m có th do c u hình ki m th ch a phù
h p v i môi tr ng ph n m m. M t s l i khác có th i s a phiên b n m i
c a ph n m m, ho c nh ng thi u sót có th c ng i dùng ch p nh n. Nhóm phát
tri n có th b qua nh ng l i mà h cho r ng nó nh h ng không áng k n
ch ng trình.
2.4.1 Ki m th trong giai n c t yêu c u15
2.4.1.1 Ki m th yêu c u h th ng
M c ích c a ki m th yêu c u h th ng là:
1. m b o c u hình ph n c ng, h u hành phù h p v i ph n m m c n
ki m th .
2. Ch c ch n r ng m i ch c n ng h th ng ph n m m u th c thi t t.
3. m b o các c u hình trong h th ng ph n m m u c nh n ra.
4. Ki m ch ng s chính xác c a c u trúc h th ng ph n m m.
5. m b o r ng s lu ng các yêu c u và nh ng thu c tính c a yêu c u theo
úng lý thuy t.
6. m b o r ng nh ng yêu c u có th th c hi n c.
2.4.1.2 Ki m th yêu c u ph n m m
Ki m th yêu c u ph n m m là ki m tra chi ti t các yêu c u t ng ng v i
nh ng module c a ph n m m. M c ích:
1. Xác nh n ã hoàn thành và c t chính xác các y u t sau:
• Nh ng ch c n ng c a ph n m m
• Nh p xu t
• Tr ng thái và ph ng th c
• áp ng nh ng yêu c u th i gian
• Giao di n
15 Test in requirement
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 15
2. m b o r ng b n c t yêu c u áng tin c y, có th duy trì c, kh thi
và chính xác.
3. m b o kh n ng làm úng các yêu c u m c cao nh t.
4. Xác nh n r ng nh ng yêu c u ã cho vi c thi t k ph n m m.
5. Xác nh n nh ng yêu c u là thích h p và có th ki m tra c.
2.4.2 Ki m th trong giai o n thi t k 16
2.4.2.1 Ki m th thi t k ki n trúc
M c ích c a vi c ki m tra thi t k ki n trúc s là:
1. m b o vi c thi t k phù h p v i c t yêu c u.
2. m b o t t c các giao di n c thi t k m t cách úng n.
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 theo
yêu c u.
5. Xác nh n c u trúc c a các thành ph n ã phù h p v i c t yêu c u.
6. Xác nh các thành ph n có th dùng l i c.
7. m b o r ng thi t k bám sát v i c t yê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:
1. m b o r ng thi t phù h p v i c t yêu c u.
2. Xác nh n tính h p l c a t t c thu t toán logic, c u trúc d li u, và các
l nh c s d ng trong ph m vi m i mo un.
3. Quy t nh vi c thi t k chi ti t i v i m i mô un c ch p nh n hay
c n c thi t k l i?
4. m b o vi c thi t k bám sát v i b n c t yêu c u.
5. m b o r ng t t c các thi t k u tuân theo các qui nh và các chu n
ã c ra.
16 test in design
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 16
2.4.3 Ki m th trong giai n l p trình 17
M c ích:
1. m b o r ng mã ngu n phù h p v i c t yêu c u ã c phê duy t.
2. Xác nh n m c chính xác và tính hoàn t t c a vi c l p.
3. Xác nh n r ng t t c các chi ti t thi t k ã c l p trình.
4. m b o r ng vi c l p trình theo sát c t yêu c u.
5. m b o r ng t t c nh ng gì c l p trình u c mô t theo b n thi t
k chi ti t.
2.5 Ng i ki m th 18
chu n b k ho ch và th c hi n ki m th , ng i ki m th ph i tìm hi u v
ph n m m, ngh ra nh ng nghi p v , d li u u vào và cách ph i h p chúng. u
quan tr ng là ph i có k thu t gi i và k ho ch phù h p.
Ng i ki m th không ch c n k n ng phát tri n ph n m m t t mà còn ph i
hi u r t k v các ngôn ng thông d ng, nguyên lý th và các thu t toán. Ngoài
ra, 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
chung, ng i l p trình c n có ki n th c sâu v chuyên môn, còn ng i ki m th
ph i có ki n th c r ng.
Hình 2-1 Ng i l p trình
17 SOURCE CODE INSPECTION18 tester
n ph m
Chyên môn
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 17
Hì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 m
Chuyên môn
Ki n th c v thu t
c t
n ph m
Ah! n !
n
Tin t c ca ra
Thông tin vn
giao ti p
ánh gián
Ki n th c mi n
Kinh nghi m
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 18
2.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]
u vào c cung c p cho ti n trình ki m th :
• C u hình ph n m m g m: B n c t yêu c u ph n m m, b n c t thi t
k và mã ngu n c a ch ng trình.
• C u hình ki m th g m: K ho ch và th t c ki m th , công c ki m th ,
tr ng h p ki m th và k t qu d ki n.
T t c các k t qu ki m th u c ánh giá b ng cách so sánh v i k t qu
d ki n, n u có sai khác thì ó có th là l i.
Các k t qu ki m th s xác nh ch t l ng và tin c y c a ph n m m.
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 19
2.7 Phân bi t các khái ni m
2.7.1 Phân bi t QC và QA
2.7.1.1 nh ngh a
QC: Quanlity control -i u khi n ch t l ng
QA: Quality assurance -b o m ch t l ng
Các ho t ng và các k thu t h th ng
c dùng phát huy nh ng b n yêu
c u.
T t c ho t ng có tính k ho ch và
tính h th ng ó c th c thi cung
c p y s tin c y mà m t th c th
entity s phát huy nh ng b n yêu c u.
Ki m th các ho t ng m t cách t ng
quát b o m chúng úng v i các
b n c t .
Giám sát các trách nhi m
ng 2-2 So sánh nh ngh a c a QC và QA
2.7.1.2 Nh ng b c c b n
Nh ng b c QC c b n:
Hình 2-5 Mô hình mô ph ng các b c QC c b n [9]
Nh ng b c QA c b n:
Hình 2-6 Mô hình mô ph ng các b c QA c b n [9]
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 20
2.7.1.3 Nh ng m khác nhauQC QA
S n ph m Ti n trình
Tác ng l i sau Tác ng tr c
Tìm l i Ng n ch n l i
ng 2-3 Nh ng m khác nhau gi a QC và QA
2.7.2 Phân bi t Error, Fault, Failure
2.7.2.1 nh ngh a
• 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 i
quy t19 c a ph n m m. Failure do m t ho c nhi u faults gây nên.
Ví d :
B n c t yêu c u:
Cho nh p i,
Xu t ra màn hình giá
tr 2*(i^3)
Ph n m m:
i=input(STDIN);
i=double(i);
i=power(i,3);àerror
output(STDOUT,i);
Xu t ra màn hình:
Nh p: 6
Nhân ôi giá tr nh p..
L y m 3 c a k t qu trênàfault
output: 1728à Failure+fault
K t qu úng ph i là 432
ng 2-4 Ví d so sánh error, fault, failure
2.7.2.2 Nguyên nhânCác nguyên nhân gây ra error:
• B n l p trình có th có l i
Các nguyên nhân gây ra fault:
• Yêu c u không úng ho c còn thi u sót
• B n c t 20 không úng ho c ch a y
• B n phác th o h th ng21 có th có l i22
19 Cách gi i quy t: behaviour20 B n c t : specification
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 21
• 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 failures
Các nguyên nhân gây ra Failure:
• Các yêu c u – các yêu c u không úng ho c không rõ ràng
• B n c t – d ch sai thi t k
• B n phác th o – B n c t không úng, không rõ ràng
• S b sung – Gi i thích sai khi thi t k , các tài li u không úng, ng
ngh a c a ngôn ng l p trình c hi u sai
• Ki m th – th t c ki m th không hoàn t t, s a ch a l i làm phát sinh
nh ng l i m i
• Tính b o trì – các tài li u không úng, s a ch a l i làm phát sinh nh ng
l i m i, thay i yêu c u
2.7.2.3 Các lo i fault
• L i thu t toán24
• L i khi dùng ngôn ng
• L i chính xác và c tính25
• L i tài li u
• L i quá t i26
• L i s c ch a và gi i h n27
• L i hi u su t28
• L i b o trì29
• L i ph n c ng và h th ng ph n m m
21 B n phác th o h th ng: system design22 L i: fault23 B n phác th o l p trình: program design24 L i thu t toán: Algorithmic faults25 L i chính xác và c tính: Computation and precision faults26 L i quá t i: Stress or overload faults27 L i s c ch a và gi i h n: Capacity or boundary faults28 L i hi u su t: Throughput or performance faults29 L i b o trì: Recovery faults
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 22
2.8 Ch t l ng ph n m m và vi c m b o ch t l ng ph n m m
2.8.1 Các nhân t ch t l ng c a ph n m mCác nhân t nh h ng n ch t l ng ph n m m có th c phân lo i thành 2
nhóm chính:
• Các nhân t có th o c: T l l i, n v th i gian, …
• Các nhân t ch có th o c m t cách gián ti p: Tính tái s d ng, tính
b o trì,…
Trong m i tr ng h p u ph i có o, và m c nào ó so sánh.
McCall và ng nghi p ã ngh m t cách phân lo i v các nhân t nh h ng t i
ch t l ng ph n m m, các nhân t này c h i t trong 3 khía c nh c a ph n
m m:
• Các c tr ng v n hành c a nó.
• Kh n ng thích ng v i các thay i.
• Tính thích nghi c a ph n m m v i môi tr ng m i.
Hình 2-7 Mô hình các nhân t ch t l ng c a McCall [1]
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 23
1. Tính úng n: Ph m vi mà trong ó ch ng trình th a mãn b n c t và
th a mãn các m c ích công vi c c a khách hàng.
2. Tính tin c y: Ph m vi mà ch ng trình c trông i th c hi n ch c
ng d ki n v i chính xác c yêu c u.
3. Tính hi u qu : Kh i l ng tài nguyên tính toán mà ch ng trình c n t i
th c hi n ch c n ng.
4. Tính toàn v n: Kh n ng ki m soát s thâm nh p vào ph n m m hay d
li u c a ng i dùng.
5. Tính s d ng c: Có th c s d ng nh m ph c v cho m c ích c a
ng i dùng.
6. Tính b o trì: Ph n m m có kh n ng s a ch a hay nâng c p sau khi ã
hoàn thành.
7. Tính m m d o: Kh n ng có th thay i m t ch ng trình ang v n
hành.
8. Tính ki m th c: Ph n m m có th ti n hành ki m th m b o
r ng nó th c hi n úng ch c n ng quy nh.
9. Tính kh chuy n: Kh n ng có th chuy n ph n m m t môi tr ng này
sang môi tr ng khác.
10.Tính tái s d ng: M t ch ng trình hay m t b ph n c a ch ng trình có
th c dùng l i trong các ng d ng khác.
11.Tính liên tác: Kh n ng g n h th ng này v i h th ng khác.
McCall a ra m t công th c o ch t l ng c a ph n m m:
Công th c 2-1 Công th c o ch t l ng ph n m m [1]
Trong ó: Fq: Nhân t ch t l ng ph n m m.
Ci: H s h i qui
Mi: o tác ng lên nhân t ch t l ng.
Tuy nhiên o do McCall nh ngh a ch o c m t cách ch quan.
Fq = c1*m1 + c2 * m2 + +Cn *mn
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 24
2.8.2 o ch t l ng ph n m m
McCall ã a ra các o ch t l ng ph n m m nh sau:
1. Ki m toán c: Có th ki m tra d dàng vi c tuân th các chu n.
2. chính xác
3. Tính y : M c áp ng y các yêu c u ã c t ra.
4. Tính súc tích: g n c a ch ng trình.
5. Tính nh t quán: Tính nh t quán trong toàn b ch ng trình.
6. Ph bi n d li u: Vi c dùng các c u trúc và ki u d li u chu n trong ch ng
trình.
7. Dung sai: Nh ng nh h ng khi ch ng trình b l i có th ch p nh n c.
8. Hi u qu th c hi n: Hi u n ng khi ch y ch ng trình.
9. Tính m r ng c: M c mà theo ó các thi t k ki n trúc, d li u hay
ch c n ng có th m r ng c.
10.Tính t ng quát
11. c l p ph n c ng: M c tách bi t c a ph n m m i v i ph n c ng.
12.Tính mô un: Tính c l p c a các thành ph n.
13.Tính v n hành: Tính d v n hành c a ch ng trình.
14.Tính an toàn: kh n ng ki m soát hay b o v ch ng trình và d li u.
15.Tính s u li u: Kh n ng áp ng y các thông tin trong quá trình phát
tri n ph n m m.
16.Tính n gi n: M c ng i dùng có th hi u c ch ng trình m t cách
d dàng.
17.Tính c l p h th ng ph n m m: M c mà theo ó ch ng trình c c
l p v i các tính n ng và các ràng bu c v i các môi tr ng khác.
18.Tính hu n luy n: M c mà ch ng trình tr giúp ng i dùng th c hi n các
thao tác.
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 25
M 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:úngn
Tiny
Hi uqu
Toànn
otrì
mo
Ki mth
Khchuy n
Tái
ng
Liêntác
Dùngc
Ki mtoán
c
X X
Chínhxác
X
Tínhy
X
Súctích
X X X
Ch tch
X X X
Nh tquán
X X X X
Phbi n
li u
X
Dungsai
X
Hi uqu
X
ng X
ngquát
X X X X
cp
ph nng
X X
Tínhmô un
X X X X X X X
Tínhn
hành
X X
Antoàn
X
uli u
X X X X X
ngi n
X X X X
cp h
th ng
X X
Hu nluy n
X
ng 2-5 Các nhân t và o ch t l ng [1]
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 26
2.8.3 Vai trò c a vi c qu n lý ch t l ng ph n m m
H th ng qu n lý ch t l ng SQA30 hay SQS31 có hai m c tiêu chính:
• a vào vi c qu n lý ch t l ng ngay t khi b t tay vào xây d ng ph n
m m
• m b o ch t l ng c a ph n m m trong su t quá trình phát tri n.
t c hai m c tiêu trên, SQS òi h i s k t h p c a 10 y u t :
1. Standards32: là m t y u t m u ch t trong SQS. Các chu n là n n t ng
ánh giá các ho t ng. H n n a, chúng cung c p nh ng ph ng th c
thông th ng mà theo ó cùng m t công vi c s c hoàn thành theo
cùng m t cách m i khi nó c th c hi n. Khi áp d ng các chu n s giúp
cho vi c ánh giá s phát tri n c ng u.
2. Reviewing33: Là m t ho t ng r t quan tr ng trong ki m soát ch t
ng. M t khi b n c t hay m t thi t k c t o ra thì m i b n này
ph i c th m nh v ch t l ng. Vi c th m nh c th c hi n thô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
hi n ra các v n v ch t l ng. Trong nhi u tình hu ng, các cu c h p
xét duy t t ra hi u qu c ng n vi c ki m th phát hi n ra nh ng
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 có th a yêu c u c a ng i dùng a ra hay không. Trong m t
s tr ng h p, công vi c ki m th l i chú tr ng vào vi c ki m tra 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
ng i dùng hay không. i u này h i i ch ch h ng v i m c ích c a
vi c ki m th ch ng ph n m m. N u công vi c ki m th không d a trên
m c tiêu th a mãn yêu c u thì ch phí th i gian.
30 SQA: Software Quality Assurance31 SQS: Software Quality System32 Standards: Các chu n33 Reviewing: Vi c xem xét th m nh l i34 Testing: ki m th
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 27
4. Defect analysing35: H u h t các t ch c dùng thu t ng ch t l ng ng
ý không có ho c có ít l i. M t s khác cho r ng ch t l ng c a ph n
m m là vi c ph n m m th a mong i c a ng i dùng hay khách hàng.
ây, c hai quan ni m ó u úng. B t c lúc nào, khi ph n m m không
th hi n c nh mong i c a ng i dùng, lúc ó xem nh ó là m t
l i. ây có th là tr ng h p l i trong code, thi u yêu c u ng i dùng
hay ch là thi u m t hàm,... Khi phát hi n ra m t l i, công vi c c n th c
hi n ó là s a l i cho úng. Vi c phân tích l i c th c hi n trên t t c
các l i nh m kh c ph c các thi u sót hi n t i và gi m thi u s l ng l i
trong t ng lai.
5. Configuration management - CM36: CM m b o t i b t k th i m
nào, tình tr ng c a ph n m m u c xác nh rõ và có th tái c u trúc
l i. CM bao g m ba y u t c b n: nh danh c u hình (configuration
identification CID), ki m soát c u hình (configuration control CC) và
di n gi i c u hình (configuration accounting CA).
Hình 2-8 Mô hình các ho t ng trong CM [10]
• CID37 cung c p m t ph ng pháp nh m nh n d ng các c tr ng và
tính duy nh t c a m i th hi n (ví d : phiên b n, b n phát hành) trong
m t s n ph m ph n m m. B ng cách s d ng m t chu n t tên
35 Defect analysing: Phân tích khuy t m36 CM: Qu n tr c u hình37 CID: configuration identification: nh danh c u hình
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 28
nh danh m i th hi n c a s n ph m, m i h s tài li u m i, t ng
ph n m i c hoàn t t, m i ph n v a c xây d ng.
• CC38 là m t y u t nh m m b o b t k s thay i nào c a m t th
hi n u c ki m soát và ghi nh n l i. CC bao g m các ho t ng
thay i trong b ng ki m soát (control board CCB), ví d : xem xét và
ki m soát nh ng thay i trong các tài li u và mã ngu n.
• CA39 gi vai trò theo v t tình tr ng c a các th hi n s n ph m. u
này ngày càng quan tr ng h n trong vi c tích h p các module vào
nh ng h th ng hay các h th ng con. CA theo v t các thay i c a
yêu c u, b n thi t k , ki m th , mã ngu n, v.v...
Hình 2-9 T ng quan v CM [10]
38 CC: configuration control: ki m soát c u hình39 CA: configuration accounting: di n gi i c u hình
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 29
6. Security40: Các d li u và trung tâm l u tr d li u ph i c b o m an
toàn. M t h th ng qu n lý ch t l ng t t nh ng n u không có trung tâm
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
nh b tràn d li u, b hacker, viruses… Vì v y, m b o an toàn d li u
c ng nh trung tâm l u tr d li u là m t u c n thi t.
7. Education41: H ng d n cho các thành viên phát tri n d án và ng i
dùng hi u rõ v ph n m m khi ph n m m hoàn thành thì h s th c
hi n úng các công vi c, các thao tác.
M t u r t quan tr ng trong vi c m b o ch t l ng ph n m m là
thành viên s n xu t ph i c ào t o có th s d ng nhi u công c
phát tri n khi c yêu c u. Vai trò c a ng i m b o ch t l ng ph n
m m là xem xét nh ng ki n th c nào s c n n trong t ng lai và trang
b nh ng ki n th c ó cho nhân viên c a mình.
8. Vendor management42: Khi ph n m m hoàn thành, phát hành óng vai
trò quan tr ng. Qu n lý nh ng công vi c nh nh t xung quanh vi c phát
tri n ph n m m nh liên h mua b n quy n các ph n m m h tr , các
ph n m m ch ng virus… c ng là m t y u t trong vi c m b o ch t
ng.
9. Safety43: M i án u b t bu c ph i m b o an toàn cho chính ph n
m m ó và cho c h th ng. K ho ch qu n lý d án nên có ph n mô t
các gi i pháp b o m an toàn.
10.Risk management- Qu n lý r i ro: B t k m t án nào c ng ch a ng
nhi u lo i r i ro, có lo i r i ro n gi n nh ng c ng có nh ng r i ro có
th làm phá s n hoàn toàn án. Do ó, r i ro và nh ng gi i pháp phòng
tránh r i ro ó là m t ph n c n thi t trong k ho ch qu n lý d án.
40 Security: B o m t41 Education: ào t o, h ng d n42 Vendor management: Nhà cung c p43 Safety: An toàn
Ch ng 2 - T ng quan v ki m th ph n m m
Trang 30
2.8.4 T i sao c n qu n lý ch t l ng ?Vì nh ng lý do sau:
• Th a mãn yêu c u c t ra t phía khách hàng.
• S thành công c a m t d án ph thu c vào m t h th ng qu n lý yêu
c u hi u qu .
• Các l i xu t phát t c t hay nh m l n yêu c u là nh ng l i th ng
xuyên nh t và gây t n kém nh t trong các lo i l i phát sinh trong quá
trình th c hi n ph n m m
• B ng m t ít k n ng trong qu n lý nh ng ta có th gi m áng k các l i
yêu c u và vì v y ch t l ng ph n m m c ng c c i thi n.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 31
Ch ng 3 Các lo i ki m th ph n m m
B t k ph n m m nào c ng u có th ki m th theo m t trong hai cách
• Ki m th h p en44
• Và Ki m th h p tr ng45
ch ng này, ta s tìm hi u chi ti t v th nào là ki m th h p en và ki m th
h p tr ng, s khác bi t gi a chúng, các lo i trong ki m th h p en và trong ki m
th h p tr ng.
3.1 Ki m th h p en
Trong 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]
Ki m th h p en còn c g i là ki m th ch c n ng hay ki m th t bên
ngoài. Trong ki m th h p en, i t ng ki m th c quan sát nh là m t h p
en. Thông tin v nguyên b n ch ng trình và c u trúc bên trong không c n thi t;
nhi u thông tin c làm ng m t cách c ý. Cách ch y c a các i t ng ki m th
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
ph n m m
44 H p en: Blackbox45 H p tr ng: Whitebox, Glassbox, Structure box
Ch ng 3 - Các lo i ki m th ph n m m
Trang 32
Ti n hành ki m th h p en ng i k s ph n m m s tìm ra nh ng u
ki n c n thi t i v i d li u u vào, ây chính là i u ki n m t ch ng trình
ch y úng.
Chúng ta s tìm hi u xem ch ng trình ho t ng trong b i c nh nh th nào
bi t c nhu c u và ph n ng c a ng i s d ng, ph n c ng, ph n m m và
nh ng ch ng trình giao ti p v i nó:
• Tìm ra l i t i các c p c a v n b n chính, mô t ho t ng, và trong các
k ch b n khách hàng.
• Vi c a ra k ho ch ki m th d a trên b n c t yêu c u.
• D a trên v n ‘M t h th ng s làm nh ng gì?’.
• a ra nh ng k ch b n có tính gi thuy t và ti n hành ki m th nó, ó
c ng chính là nh ng k ch b n có th x y ra trong th c t .
• T p trung vào giao di n bên ngoài c a ph n m m c n ki m.
Ki m th h p en c g ng tìm l i trong các lo i sau ây:
• Các ch c n ng không úng hay b b sót.
• Nh ng l i giao di n.
• Nh ng l i trong c u trúc d li u hay truy c p d li u bên ngoài.
• Nh ng l i th c thi.
• Các l i kh i u và k t thúc.
Các phép ki m th c thi t k tr l i các câu h i:
• Tính h p l ch c n ng c ki m th nh th nào?
• T p u vào nào s t o ra nh ng tr ng h p ki m th t t?
• H th ng có nh y c m v i t p giá tr u vào nào ó không?
• Biên gi i c a l p d li u ã c cô l p s nh th nào?
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?
Ch ng 3 - Các lo i ki m th ph n m m
Trang 33
3.2 Ki m th h p tr ng
Là m t ph ng pháp ki m th d a vào các hàm46, các th t c47 trong mã
ngu n48. Ki m xem hàm tr v giá tr có úng không? Có l i trong hàm hay
trong th t c nào không? …
Hình 3-2 Ki m th h p tr ng [11]
M t s c m c a ki m th h p tr ng:
• Tìm ra l i nh ng dòng code và giao di n.
• D a trên v n “M t h th ng ho t ng nh th nào?”
• Ph i ph thu c b n c t chi ti t v h th ng ó.
• Nh ng tr ng h p ki m th này s c phát tri n b i nh ng nhà phát
tri n viên.
• C n nh ng phát tri n viên, k s có kinh nghi m.
B ng vi c dùng các ph ng pháp ki m th h p tr ng ng i k s ph n m m có th
suy d n ra các tr ng h p ki m th mà:
• m b o r ng m i con ng c l p bên trong m t mô un u c
th c hi n qua ít nh t m t l n.
• Th c thi t t c các quy t nh trên nhánh úng và sai.
• Th c thi t t c các chu trình c a chúng và bên trong các hàm.
• Th c thi các c u trúc d li u nh m b o m chúng h p l .
46 Hàm: function47 Th t c: procedure48 Mã ngu n: n code
Ch ng 3 - Các lo i ki m th ph n m m
Trang 34
Thoáng nhìn ban u d ng nh là vi c ki m th h p en s d n t i ch ng
trình úng n 100%. Nh ng nh Beizer ã nói: L i ti m n trong các ngõ
ngách và t p h p t i biên [1] , vi c ki m th h p tr ng có kh n ng d phát hi n ra
chúng h n. N u b qua ki m th h p tr ng chúng ta có th s b qua các l i sau:
• Nh ng gi thi t c a chúng ta v lu ng u khi n và d li u có kh n ng
không úng, d n n vi c t o ra các l i thi t k mà ch có th phát hi n ra
khi ti n hành ki m th .
• L i gõ sai: Trong khi l p trình, có th gõ sai t bàn phím (ví d d u + thì
gõ nh m thành d u - ). Nhi u l i ã c ki m tra cú pháp phát hi n
nh ng m t s l i khác s không b phát hi n cho n khi vi c ki m th
b t u.
• Vi c ki m th h p en dù có k l ng n âu v n có th b qua nh ng
l i ã nêu trên.
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
Ki m th h p en Ki m th h p tr ng
Ki m th h p en có xu h ng c áp
d ng trong các giai n sau khi các
ch c n ng ã g n hoàn t t.
Ki m th h p tr ng c ti n hành s m
trong quá trình ki m th
N i ki m th không c n ph i truy
c p vào source code c a ph n m m.
o n code c xem là m t h p en
l n big black box và nh ng ng i
ki m th không c n bi t h p ó ch a gì.
H ch c n hi u rõ c n cung c p thông
tin gì cho h p này và nó cho ra k t qu
gì. D a vào b n yêu c u, ng i ki m
T p trung vào n i dung source code.
Nh ng ng i ki m th h p tr ng
(th ng là nh ng ng i vi t code) bi t
o n code g m nh ng gì và vi t các
tr ng h p ki m th 49 ki m tra các
hàm v i nh ng tham s c th .
49 test cases
Ch ng 3 - Các lo i ki m th ph n m m
Trang 35
th bi t nh ng gì mà h p en này s
áp ng và ki m th ch c ch n r ng
nó áp ng úng.
Không chú tr ng n k thu t bên trong
h th ng ho c các thành ph n, mà ch
t p trung vào các u ra - nh ng cái c n
có, ch n nh ng u vào h p lý và
cách th c hi n các u ki n có u
ra nh mong mu n.
Là 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
Nh ng nhà thi t k testcase không ch xem xét các tr ng h p ki m th h p
en, h p tr ng mà còn ph i xem xét n y u t th i gian th c. Trong nhi u tình
hu ng, d li u ki m th c cung c p khi h th ng th i gian th c ang trong
tr ng thái này thì cho k t qu úng, nh ng v n v i cùng b d li u y n u trong
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 i
cù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 ng
thá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.
Các ph ng pháp thi t k tr ng h p ki m th cho h th ng th i gian th c
còn h n ch vì nó r t khó mô ph ng trong th c t . Tuy nhiên có th xu t m t
chi n l c g m 4 b c sau:
1. Ki m th nhi m v : Ki m th t ng nhi m v m t cách c l p, t c là các
ki m th h p en và h p tr ng c thi t k ki m th c l p i v 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.
2. Ki m th hành vi: Mô ph ng l i hành vi c a h th ng th i gian th c i
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
các tr ng h p ki m th . Dùng m t k thu t t ng t nh phân ho ch
Ch ng 3 - Các lo i ki m th ph n m m
Trang 36
ng 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 .
Ch ng h n i v i máy photocopy có th là ng t c a ng i dùng (nh t
l i s m), ng t c gi i (k t gi y), ng t h th ng (h t m c) và các l i
h ng hóc khác ( ng nhi t quá nóng). M i s ki n ng t này u c ki m
th riêng bi t phát hi n l i hay vi c s lý liên quan n các s ki n
này.
3. Ki m th liên nhi m v : Sau khi l i trong t ng nhiêm v và trong t ng
hành vi c a h th ng ã c cô l p, ti p n chúng ta s ki m th khi
các nhi m v này liên l c v i nhau phát hi n l i ng b .
4. Ki m th h th ng: Ph n m m và ph n c ng c tích h p và m t ph m
vi y v h th ng c ti n hành ki m th phát hi n ra các l i t i
giao di n ph n m m / ph n c ng.
3.5 Các lo i ki m th h p en
3.5.1 Oracles testing50
Ý t ng: Ch n m t ng d ng làm v t m u so sánh v i ng d ng c n
ki m th .
Tóm t t: Oracles là ph ng ti n giúp chúng ta nh n ra ch ng trình có v n
hay không có v n ch không ph i ánh giá ch ng trình úng hay sai. t o
các test lo i Oracles, ta so sánh ho t ng c a ch ng trình v i ho t ng c a ng
d ng m u.
Ví d : Ki m th Oracles i v i WordPad, chúng ta ch n Word làm v t
m u. Chúng ta s ti n hành so sánh ho t ng c a WordPad và Word.
50 Oracles testing: ki m th so sánh v i các v t m u
Ch ng 3 - Các lo i ki m th ph n m m
Trang 37
Hình 3-3 Font trong Word và Word Pad
B n có th so sánh v :
• M i kích th c font
• M i ký t trong m i font.
• M i ph ng th c v s thay i kích th c font.
• M i ph n t giao di n k t h p v i nh ng ch c n ng v kích th c font.
• Nh ng s tác ng gi a kích th c font và nh ng n i dung khác c a m t
tài li u.
• Nh ng s tác ng gi a kích th c font và các th h a.
• Vi c in và hi n th lên màn hình.
3.5.2 Domain testing51
Ý t ng: “Divide the data, and conquer”: chia nh d li u ki m th .
Tóm t t:M t mi n (domain) là m t nhóm d li u ki m th .
Cách t o domain test:
• Xác nh t ng mi n c a d li u nh p và xu t.
51 Domain testing: ki m th theo mi n
Ch ng 3 - Các lo i ki m th ph n m m
Trang 38
• Phân tích các gi i h n và các thu c tính c a t ng mi n.
• a ra nh ng b k t h p các mi n ki m th .
• Ch n chi n l c ki m th . Ví d :
• Ki m th m i khía c nh.
• Ki m th các giá tr biên.
• Ki m th các giá tr tiêu bi u nh t.
Vi c xác nh các mi n c a d li u s ph thu c vào ng d ng, hãy xem ví
d hi u rõ h n.
Ta s phân các test vào t ng nhóm nh (domain- mi n), sau ó ch th c thi
m t test i di n nh t c a t ng nhóm ó.
Multiple Variables testing: là nh ng test c t o ra t vi c k t h p m t s các test
i di n.
Ví d :Ví d 1:
Xét ng d ng tính t ng 2 s do ng i dùng nh p vào, m i s ch g m 1 ho c
2 ch s (ví d s 5, s 89, s -54).
Khi ki m th , ta s nh p vào 2 s b t k có giá tr t -99 à 99 xem ng
d 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 ngh
xem, khi b n ã ki m th 5 + 9 thì có c n ki m thêm 5+4 hay 9+6 … không? i u
nà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):
• M t mi n g m 2 s th a u ki n t -99 à 99 (chi n l c ki m giá tr
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).
Ch ng 3 - Các lo i ki m th ph n m m
Trang 39
• Mi n g m 2 s có giá tr là -99, 99, -100, 100 (chi n l c ki m nh ng giá
tr biên), hay ký t c bi t, kho ng tr ng(chi n l c ki m m i khía c nh)
…
Và sau ó b n ch c n ki m th m t testcase i di n cho m i mi n.
Ví d 2:ng d ng nh p vào dài 3 c nh a, b, c c a tam giác, ta s có các mi n
ki m th domain sau:
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,
hay t ng 2 c nh b ng c nh th 3, hay t ng 2 c nh nh h n dài c nh th 3, không
là s nguyên, dài quá l n,…
u i m: H u d ng cho t t c các m c ích: ánh giá tin c y, ánh giá kh
ng,… nên Domain testing là k thu t ki m th ph n m m th ng c s d ng
nhi u nh t.
Khuy t m: K thu t Domain testing quá n gi n, không áp ng c nh ng
bi n i , dao ng quá ph c t p.à Risk-based testing
3.5.3 Function testing52
• Ý t ng: Ki m riêng t ng ch c n ng th t k .
• Ch c n ng là vi c gì ó mà ng d ng có th làm c.
• Cách t o function test:
• Xác nh t ng ch c n ng và các ch c n ng con.
• Tìm hi u cách th c hi n các ch c n ng này.
• Ki m th t ng ch c n ng, m i l n ch ki m th duy nh t m t ch c
ng.
• M t s cách xác nh ch c n ng:
• T b n c t ho c t nh ng phác h a h ng d n s d ng.
• T giao di n ng i dùng.
• T vi c th các l nh dòng l nh.
52 Function testing: ki m th ch c n ng
Ch ng 3 - Các lo i ki m th ph n m m
Trang 40
• Tìm ki m ch ng trình ho c nh ng t p tin ngu n
Ví d : Trong ph n m m Qu n lý nhà sách:
V i nghi p v “Nh p sách , ta ki m tra tính úng n c a ch c n ng nh p
vào “ngày nh p sách ( d li u nh p vào là ki u ngày). ây là m t function test,
chúng ta g i ó là testcase1.
Vào m t l n khác, nghi p v Xu t sách ta s ki m th tính úng n
c a ch c n ng nh p “ngày xu t sách , chúng ta g i ó là testcase2.
S d ng k thu t ki m th ch c n ng, chúng ta s ki m riêng t ng ch c
ng, v y n u c testcase1 và testcase2 trên u úng, thì li u ta có tin t ng r ng
chúng ã hoàn toàn úng không?, và b n s ngh gì khi ngày nh p sách l i l n
n ngày xu t sách ?
u i m: H u ích trong vi c ánh giá kh n ng làm vi c, ánh giá ch c n ng.
Khuy t m: Nó b qua s tác ng, nh h ng gi a các ch c n ng, nên không
áng tin c y l m. (Scenario testing s xét v n này).
3.5.4 Combination testing53
Ý t ng: K t h p nhi u bi n ki m th . M i test là s k t h p t ng giá tr
c a các bi n.
Bi u k t h p:
Bi n 1 Bi n 2 Bi n 3 Bi n 4 Bi n 5
Test 1 Giá tr 11 Giá tr 12 Giá tr 13 Giá tr 14 Giá tr 15
Test 2 Giá tr 21 Giá tr 22 Giá tr 23 Giá tr 24 Giá tr 25
Test 3 Giá tr 31 Giá tr 32 Giá tr 33 Giá tr 34 Giá tr 35
Test 4 Giá tr 41 Giá tr 42 Giá tr 43 Giá tr 44 Giá tr 45
Test 5 Giá tr 51 Giá tr 52 Giá tr 53 Giá tr 54 Giá tr 55
Test 6 Giá tr 61 Giá tr 62 Giá tr 63 Giá tr 64 Giá tr 65
ng 3-1 B ng k t h p giá tr các bi n
3.5.4.1 Cách ti p c n 1Gi s có 3 bi n d ng s : V1, V2, V3.
53 Combination testing: ki m th k t h p
Ch ng 3 - Các lo i ki m th ph n m m
Trang 41
Ta phân tích t ng bi n trong các mi n con và các biên. Các tr ng h p có
th có i v i m i bi n trên:
• V1: Too-low (TL), lowest valid (LV), biggest valid (BV), too big (TB)
• V2: Too-low (TL), lowest valid (LV), biggest valid (BV), too big (TB)
• V3: Too-low (TL), lowest valid (LV), biggest valid (BV), too big (TB)s
Trong cách ti p c n 1, ta t o test b ng cách cho các bi n có cùng m t giá tr :
V1 V2 V3Test 1 TL TL TLTest 2 LV LV LVTest 3 BV BV BVTest 4 TB TB TBng 3-2 B ng k t h p giá tr các bi n v i cách ti p c n th 1
Khuy t m: không nh n ra các tr ng h p l i trên các giá tr khác (nh giá
tr null, không ph i là s ,…).
3.5.4.2 Cách ti p c n th 2Ta ki m th t t c các cách k t h p có th có c a nh ng bi n này. Có t t c :
4*4*4 = 64 tr ng h p ki m th . ây là m t ph n c a b ng các tr ng h p:
V1 V2 V3Test 1 TL TL TLTest 2 TL TL LVTest 3 TL TL BVTest 4 TL TL TBTest 5 TL LV TLTest 6 TL LV LVTest 7 TL LV BVTest 8 TL LV TBTest 9 TL BV TLTest 10 TL BV LV
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
Khuy t m: n u có nhi u bi n v i nhi u cách ch n l a thì s tr ng h p
ki m th s r t l n.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 42
3.5.4.3 Cách ti p c n th 3Chúng ta ki m th t t c các c p. Cách này r t h u ích n u hi u rõ m i quan
h gi a các bi n trong b n c t .
Too
lbar
sP/
T/B
Bro
wse
rY
/N
Mai
lY
/N
New
sY
/N
Star
t B/V
/E
Link
sD
/U
Follo
wed
N/E
Tng
các
cp
Toolbars3 l a ch n
------ 6 6 6 9 6 6 39
Browser2 l a ch n
------ ------ 4 4 6 4 4 22
Mail2 l a ch n
------ ------ ------ 4 6 4 4 18
News2 l a ch n
------ ------ ------ ------ 6 4 4 14
Start3 l a ch n
------ ------ ------ ------ ------ 6 6 12
Links2 l a ch n
------ ------ ------ ------ ------ ------ 4 4
Followed2 l a ch n
------ ------ ------ ------ ------ ------ ------ 109
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
Trong b ng trên n u ki m th k t h p t t c các giá tr c a các bi n thì s có:
3*2*2*2*3*2*2=288 testcases. Còn n u k t h p t ng c p thì ch có 109 tr ng
h p, có hi u qu h n 288 nh ng không áng k .
Ta ti p t c gi m các tr ng h p test nh ng ph i m b o các giá tr c a t t
c các bi n u c k t h p v i nhau ít nh t 1 l n.
Ví d v i cách ti p c n k t h p t ng c p: m t dialog tìm ki m n gi n:
Ta s có 3 giá tr u vào:
• Find what: m t bi n d ng chu i
• Match case: yes ho c no
• Direction: up ho c down
Ch ng 3 - Các lo i ki m th ph n m m
Trang 43
Find có 3 tr ng h p:
L M C (lower, mixed, capitals)
Match có 2 tr ng h p:
Y N (yes, no)
Direction có 2 tr ng h p:
U D (up, down)
Tóm l i: 1. K t h p y : có 12 tr ng h p ki m th (3x2x2 = 12)
L Y U M Y U C Y U
L Y D M Y D C Y D
L N U M N U C N U
L N D M N D C N D
2. K t h p t ng ôi: có 6 tr ng h p:
L Y U M Y D C Y U
L N D M N U C N D
Xây d ng b ng k t h p t t các tr ng h p test:
• Các c t là tên các bi n.
• N u c t 1 có V1 giá tr và bi n trong c t 2 có th có V2 giá tr thì s có
V1*V2 dòng.
• i n vào b ng, m i giá tr có th có trong c t 1 s c l p l i V2 l n và
gi a các giá tr l i 1 dòng
L YL N
M YM N
C YC N
Ch ng 3 - Các lo i ki m th ph n m m
Trang 44
• C t th 3 s ph i ch a t t c các giá tr c a bi n th 3.S p x p các giá tr
sao cho m i bi n c ng t o thành c p v i bi n th 1 và bi n th 2.
L Y U
L N D
M Y D
M N U
C Y U
C N D
• Gi s có thêm bi n th 4 có 2 giá tr : 0, 1
• u tiên ta k t h p v i các giá tr trong c t th 2
L Y U 0
L N D 1
M Y D 1
M N U 0
C Y U
C N D
• Ti p theo chúng ta s k t h p v i c t th 3: Nh n th y c p U 1, D 0
ch a c k t h p, vì v y chúng ta s n vào b ng nh sau:
L Y U 0
L N D 1
M Y D 1
Ch ng 3 - Các lo i ki m th ph n m m
Trang 45
M N U 0
C Y U 1
C N D 0
• Ti p t c thêm vào bi n th 5 có 2 giá tr G, H. Chúng ta s thêm l n l t
nh sau:
• K t h p v i c t 2:
L Y U 0 G
L N D 1 H
M Y D 1 H
M N U 0 G
C Y U 1
C N D 0
• K t h p v i c t 3: c p U-H và D-G ch a c k t h p. Chúng ta ti p
t c n vào b ng nh sau:
L Y U 0 G
L N D 1 H
M Y D 1 H
M N U 0 G
C Y U 1 H
C N D 0 G
Ch ng 3 - Các lo i ki m th ph n m m
Trang 46
• K t h p v i c t 4: c p 1-G, 0-H ch a c k t h p. Chúng ta th y
n u o c p GH và HG trong c t th 5 thì t t c các k t h p u c m b o:
L Y U 0 G
L N D 1 H
M Y D 1 G
M N U 0 H
C Y U 1 H
C N D 0 G
N u có thêm bi n th 6 v i 2 giá tr có th có: I, J.
• K t h p v i c t 2,3,4
L Y U 0 G I
L N D 1 H J
M Y D 1 G I
M N U 0 H J
C Y U 1 H J
C N D 0 G I
• K t h p v i c t 5: C p G-J và H-I ch a c k t h p vì v y chúng ta
s thêm vào nh sau:
L Y U 0 G I
L N D 1 H J
G J
M Y D 1 G I
Ch ng 3 - Các lo i ki m th ph n m m
Trang 47
M N U 0 H J
H I
C Y U 1 H J
C N D 0 G I
àK t qu : trong ví d trên chúng ta ã gi m t 3*2*2*2*2*2=96 testcases
xu ng còn 8 testcases.
3.5.5 Regression testing54
Ý t ng: L p l i ki m th sau khi có nh ng s thay i
Tóm t t: có 3 t m nhìn khác nhau:
• V th t c55: Ch y l i các test tr c khi có s thay i.
• nh h ng r i ro56: Làm bi u hi n các l i m i phát sinh do s thay i.
• H tr phân tích l i57: Giúp ng i l p trình phát hi n ra nh ng gì liên
quan n s thay i.
3.5.5.1 Ki m th h i quy th t c58
• Ch y l i các test tr c ó
• Cách th c th c hi n:
• Ki m th h i quy c th c hi n th công d a theo k ch b n.
• Ki m th h i quy c th c hi n m t cách t ng b ng giao di n
h a ng i dùng (GUI).
• Ki m th Smoke: th c hi n th công ho c t ng.
• Ti n ích:
• Các test ã có t tr c do ó không c n ph i thi t k ho c b sung
m i.
54 Regression testing: ki m th h i qui55 V th t c: Procedural56 nh h ng r i ro: Risk oriented57 Phân tích l i: Refactoring58 Ki m th h i qui th t c: Procedural regression testing
Ch ng 3 - Các lo i ki m th ph n m m
Trang 48
• Ng i ki m th ã quen v i các test này, nên th c thi d dàng h n
và các test ó s c th c thi c n th n h n.
• Vi c b sung ki m th t ng th ng nhanh và d dàng h n.
• Các b c th c thi trong ki m th h i quy t ng b ng giao di n h a
ng i dùng
• T o testcase
• Ch y nó và ki m tra k t qu t c.
• N u ch ng trình b l i thì thông báo l i và c g ng th l i m t
l n n a.
• N u test ó thành công thì l u l i k t qu .
• L n sau th c thi l i testcase này thì so sánh k t qu th c thi l i v i
các k t qu ã l u. N u chúng không kh p thì thông báo.
3.5.5.2 Ki m th h i qui nh h ng r i ro59
• Ki m th l i sau khi có nh ng thay i.
• 3 tr ng h p có th x y ra:
• L i không c s a ch a.
• L i c ã c s a ch a nay l i xu t hi n.
• S thay i làm cho m t vùng không làm vi c.
• Trong h ng ti p c n này chúng ta có th s d ng l i các test c ho c t o
nh ng test m i. Thông th ng chúng ta ki m l i m t vùng ho c ch c
ng v i s t ng d n v m c k t h p (k t h p ch c n ng này v i các
ch c n ng khác). M c ích chính c a k thu t này là ki m tra m t nh
ng c a s thay i ch không ph i là vi c ánh giá l i các test c .
• Ví d vài cách thông th ng ki m th m t ch ng trình:
• L p l i nhi u l n: M i test th c thi v i cùng m t ch c n ng nhi u
l n.
59 Ki m th h i qui nh h ng r i ro: Risk-oriented regression testing
Ch ng 3 - Các lo i ki m th ph n m m
Trang 49
• Làm nhi u s k t h p: Th nghi m v i nhi u s t ng tác gi a
các bi n.
• Th c hi n ph i h p các ch c n ng.
• Tìm ki m các l i c bi t b ng cách g i hàm d i d ng ki m th
• Ti n hành ki m th v i nhi u lo i test khác, ví d nh k ch b n.
Refactoring support: Change detectors ( thay i cách ki m th )
• Nhà l p trình t o ra các test và ch y chúng m i khi biên d ch mã ngu n.
• N u ki m th m t test suite m t h n 2 phút, nhà l p trình có th tách
các test ra thành 2 nhóm: M t nhóm ch y m i khi biên d ch và m t nhóm
ch y sau m t vài gi ho c ch y xuyên su t.
• M c tiêu c a các test là s d ng t t c ch c n ng trong ch ng trình. Vì
v y khi nhà l p trình thay i mã ngu n, h có th nhanh chóng th y
nh ng gì b thay i b ng cách thay i bi n truy n vào, m c d li u
ho c ch c n ng, ho c thay i m t cái gì ó.
• Trên th c t có s khác nhau r t l n gi a ki m th h i quy h p en c p
h th ng và ki m th h i quy h p tr ng c p n v .
• Trong ki m th n v , nhà l p trình t o ra các c thù test tr c
khi vi t code. Vi c ki m th t p trung vào ki m th mã ngu n.
• Trong tr ng h p ki m th n v _ unit testcase, khi ng i l p
trình có thay i mà nh h ng n ph n khác thì ngay l p t c h
s tìm, và n u phát hi n l i thì s s a luôn. Không có ng i ki m
th tìm l i. B i vì n u vi c này do ki m th viên th c hi n thì
sau khi ã ti n hành ki m th , n u có l i h s mô ph ng l i l i,
thông báo nó. Sau ó ng i qu n lý d án s c thông báo
quy t nh ch n l a m t i nghiên c u v l i và ng ý ti n
hành s a ch a l i. Ti p theo nhà l p trình ph i c thông báo l i,
kh c ph c các v n , s a ch a nó, l p tài li u v vi c s ch a,
sau ó ng i ki m th s ki m l i xác minh r ng l i ó ã th c
Ch ng 3 - Các lo i ki m th ph n m m
Trang 50
s c s a hay ch a. Công vi c ki m tra l i l i m t r t nhi u th i
gian, ch xét m t tr ng h p bình th ng ã d dàng m t 4 ti ng
trong khi ch m t vài phút s a ch a l i c p unit [3].
• Tr ng h p ki m th h p en th ng òi h i chi phí cao. B i vì
v i cùng ph m vi b l i v mã ngu n thì có th s r t ph c t p do
c n nhi u test c p h th ng. Ng i ki m th không hi u rõ v
mã ngu n vì h không th y tr c ti p. Trong khi ó ng i l p trình
s a l i do chính thay i c a h gây ra thì s d dàng h n vì h
th y ngay l p t c nh h ng c a s thay i, và bi t c ngay
test nào b l i. u này s giúp nhà l p trình ánh giá l i s thay
i có h p lý hay không.
3.5.6 Risk based testing60
• Ý t ng : “Imagine a problem, then look for it”: Ngh ra m t v n có
kh n ng l i, r i th c thi xem ch ng trình có b l i ó không.
• M t v n : Khi ng i ki m th ngh ra m t l i thì ó ch c g i là
“m t v n ”. Ch khi ch ng trình c th c thi và th t s b l i này thì
v n ó m i c g i là “l i”.
• R i ro: là m t v n có kh n ng là l i.
• Cách t o ra testcase d a trên r i ro:
• u tiên là xác nh m t r i ro mà ch ng trình có th có.
• Ti p theo t o ra các test mà có th phát hi n ra v n .
• t v n v i t t c các test.
• Lo i v n nào mà b n ngh t i và làm th nào test này tìm
c v n ó.
• Th c thi test i di n trong các test ó phát hi n l i.
• Trong ki m th d a trên r i ro ta ti n hành ki m nh ng vùng là i m
y u c a ch ng trình.
60 Risk based testing: ki m th d a trên r i ro
Ch ng 3 - Các lo i ki m th ph n m m
Trang 51
• ng t ng làm th nào s n ph m có th b l i, sau ó thi t k và s
d ng các test nh m phát hi n ra l i ó. Chúng ta phân tích nh ng u
này t 3 góc :
• Thu c tính ch t l ng: Nh ng thu c tính ch t l ng (kh n ng,
ti n ích, tin c y) làm ta lo l ng nh t, ho c i v i m i thu c
tính làm th nào bi u hi n s không th a áng trong s n ph m.
• B ph n ho c m t ph n c a s n ph m b l i: Nh ng ph n nào
c a s n ph m có th b l i và i v i m i ph n ó làm th nào
nó b l i?
• Làm th nào bi u hi n l i khi chúng ta s d ng s n ph m trong
th c t ? Do k t qu ch ng lên nhau quá nhi u, chúng ta có th
gom chúng l i và phân tích thu c tính ch t l ng c a nó.
• Nh ng l i ph bi n c a ch ng trình: Lo i l i nào là ph bi n,
và i v i m i lo i l i ó k thu t c th nào có th làm bi u hi n
ra lo i l i ó?
Hình 3-4 Chu trình ki m th d a trên r i ro
Ch ng 3 - Các lo i ki m th ph n m m
Trang 52
• Tiêu chu n ch t l ng
• Tiêu chu n ch t l ng là các lo i Oracles61 m c cao. S d ng
chúng ánh giá nh ng v n có trong s n ph m. Có r t nhi u
tiêu chu n ch t l ng nh ng th ng mâu thu n v i nhau.
• M i tiêu chu n ch t l ng là m t ph m trù r i ro nh “r i ro v
vi c không t ch t l ng”.
• L p danh sách l i:
– Xây d ng m t danh sách các ví d m u v m i lo i.
– Tìm ki m các l i t ng ng cho m i ví d m u ó.
• Các thành ph n c a m t s n ph m
• Structures62: M i th bao g m c s n ph m v t lý và s n ph m
logic:
- Database server
- Cache server
• Functions63: T t c nh ng gì s n ph m có th th c hi n c:
- Tính toán
- i u h ng.
- Qu n lý b nh .
- Cách trình bày l i.
• Data64: M i ti n trình c a s n ph m:
- Human error (retailer): l i c a ng i phát tri n.
- Human error (customer): l i c a ng i dùng.
• Operations65: S n ph m c s d ng nh th nào:
- Nâng c p hoàn thi n ch ng trình.
- Th t x lý
• Platforms66: T t c nh ng gì mà s n ph m ph thu c vào.
61 Oracles: v t m u. Xem l i ph n Oracles testing hi u rõ h n62 Structures: các ki n trúc63 Functions: các ch c n ng64 Data: d li65 Operations: các ho t ng
Ch ng 3 - Các lo i ki m th ph n m m
Trang 53
• Phân tích r i ro c a d án:
• Nh n d ng các r i ro khác nhau i v i án: Có th là nguyên
nhân d n n d án b l i, ho c chi phí quá cao, ho c là không làm
hài lòng khách hàng,…
• Phân tích chi phí k t h p v i m i r i ro.
• Phát tri n k ho ch và hành ng làm gi m b t r i ro có th
x y ra ho c nh h ng c a s thi t h i.
• Ti p t c ánh giá ho c ki m tra nh l ng c a nh ng r i ro (ho c
nh ng hành ng i v i vi c qu n lý chúng).
• Nh ng n i chúng ta có th tìm th y l i:
• Nh ng cái m i: Nh ng c tính m i có th gây ra l i.
• Công ngh m i:Nh ng khái ni m m i r t d gây ra nhi u s nh m
l n m i.
• Ki n th c: L i do không n m v ng ki n th c.
• S thay i: Nh ng thay i có th làm b l i ph n mã ngu n c .
• Thay i ch m tr : Nh ng gi i quy t v i vàng, không cân nh c k
c ng có th gây ra nh ng l i áng ti c.
• Nh ng ch ng trình nhàm chán: Th i gian kéo dài hàng tu n ho c
hàng tháng mà không em l i l i ích ho c xu t hi n các l i.
• Nhân viên: Do các ch t kích thích, hoàn c nh gia ình, 2 ng i l p
trình không nh t quán v i nhau…
• Vi c a vào tính n ng mà không có trong k ho ch có th tác
ng x u t i nh ng ph n mã ngu n khác.
• Nh ng thành ph n bên ngoài có th là nguyên nhân c a các v n
.
• Nh ng thao tác không c d oán tr c có th gây ra k t qu
x u.
66 Platforms: n n t ng
Ch ng 3 - Các lo i ki m th ph n m m
Trang 54
• h : Nh ng ph n mô t còn m h có th không úng ho c gây
ra nh ng xung t.
• Nh ng yêu c u mâu thu n v i nhau: S m h th ng n ch a s
mâu thu n, k t qu là yêu c u c áp ng thì yêu c u khác
không c áp ng.
• Không th t s hi u các yêu c u: S phát tri n d a trên các yêu c u
vì v y n u yêu c u c hi u không chính xác s gây ra l i v ch t
ng s n ph m.
• Các yêu c u ti n hóa: Con ng i nh n th c rõ nh ng gì mà h
mu n và s n ph m ph i th a mãn nh ng yêu c u ó, và i u này
c ký k t trong h p ng nh ng k t qu là s n ph m b l i.
• S ph c t p: Mã ngu n ph c t p d gây ra l i.
• Trong m i c tính m t s l i chúng ta có th ã bi t nh ng v n
còn m t s l i chúng ta v n ch a nh n bi t c.
• S ph thu c: Do s ph thu c l n nhau m t l i xu t hi n có th
s kéo theo nh ng l i khác.
• Các công c ki m th y u kém: Có nh ng l i v t ra ngoài ph m
vi nh n bi t c a các công c này vì th nó v n ti p t c t n t i.
• R i ro do m t l i không có kh n ng s a ch a.
3.5.6.1 Ví d : R i ro trong cài t s n ph m:
• T p tin c cài t không úng.
• Các t p tin t m th i không c xóa.
• Các t p tin c không c xóa tr c khi c p nh t.
• Cài t các t p tin không c n thi t.
• T p tin c cài t sai v trí.
• Các t p tin b ánh b i:
• T p tin c v n t n t i và không b thay th b ng t p tin m i.
• D li u ng i s d ng không c c p nh t trong quá trình nâng
c p s n ph m.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 55
• Gây nh h ng n ng d ng khác:
• T p tin dùng chung v i ng d ng khác b s a i.
• Xóa t p tin c a ng d ng khác.
3.5.7 Senario testing67
M t k ch b n thi t k t t có 5 c tr ng c b n:
1. Ki m th c d a trên m t k ch b n v vi c s d ng ch ng trình nh
th nào, thúc y các cách s d ng ph c t p.
2. Thông tin có tính ch t thúc y giúp stakeholder s a ch a m t ch ng
trình b l i trong test này.
3. Thông tin áng tin c y. Nó không ch x y ra trong th gi i th c;
stakeholder s tin r ng m t vài th t ng t nh v y có th s x y ra.
4. Thông tin bao g m nhi u ng i s d ng và nhi u môi tr ng ho c nhi u
t p h p d li u.
5. Nh ng k t qu ki m th d dàng ánh giá. u này r t quan tr ng i
v i t t c các test, nh t là i v i nh ng k ch b n b i vì chúng r t ph c
t p.
i sáu cách t o k ch b n t t:
1. Ghi l i l ch s c a các i t ng trong h th ng: i t ng c t o nh
th nào, nh ng gì ã x y ra v i nó, cách nó c s d ng và thay i nh
th nào, nó nh h ng hay t ng tác v i nh ng cái gì?, khi nào thì nó h t
hi u l c ho c b phá b ?,…
2. Danh sách nh ng ng i s d ng có th có, phân tích quy n l i và m c
ích c a h .
3. Suy ngh v cách s d ng có th có c a con ng i: Cách mà h mu n h
th ng h th ng th c hi n?
4. Danh sách các s ki n. H th ng x lý nó nh th nào?
5. Danh sách các s ki n c bi t. Nh ng s thích nghi mà h th ng t o ra
cho chúng?
67 Senario testing: ki m th k ch b n
Ch ng 3 - Các lo i ki m th ph n m m
Trang 56
6. Danh sách nh ng l i ích và th t các thao tác ki m tra chúng.
7. Xem xét cách gi i quy t i v i t ng tr ng h p riêng: m m t tài kho n
nhà b ng ho c g i m t message. T t c các b c th c hi n, d li u u
vào, d li u u ra, nh ng gì c hi n th ,…?
8. Ng i s d ng làm vi c v i gì v i nó: c, vi t, s a i,…
9. Ph ng v n ng i s d ng v nh ng so sánh chính v i h th ng c và
nh ng l i c a h th ng m i.
10.Theo sát ng i s d ng th y cách mà h làm và nh ng gì h làm?
11.Tìm hi u v nh ng h th ng t ng t nh h th ng mà b n ang th c
hi n ho c nh ng h th ng mà chúng ta c n c nh tranh.
12.Tìm hi u nh ng nh c m c a phiên b n c c i thi n chúng trong
phiên b n m i và i th c nh tranh v i nó.
13.T o m t giao d ch gi . S d ng nó gi ng nh th c t và ti n hành x lý
d li u c a nó.
14.C g ng l y d li u th c.T các ng d ng tr c ó ho c t nh ng ng
d ng mà nó c nh tranh.
15.Quan sát k t qu c a nh ng ng d ng c nh tranh v i nó. Cách t o ra
nh ng thông báo, i t ng và t t c nh ng gì trong h th ng c a b n?
16.Quan sát nh ng trình t : Th t các thao tác th c hi n m t công vi c X.
Lý do s d ng k ch b n ki m th ?
• H c s n ph m.
• K t n i ki m th v i nh ng d n ch ng yêu c u.
• Ph i bày ra nh ng l i.
• Kh o sát, th m dò cách s d ng c a ch ng trình.
• T o ra m t thông báo l i.
• a ra nh ng yêu c u - v n có liên quan v i th hi n bên ngoài, nó có
th bao g m vi c xem xét l i các yêu c u c (v i d li u m i) ho c
nh ng s th hi n mà ch a nh n ra c yêu c u liên quan n nó.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 57
Thi t k k ch b n ki m th c ng gi ng nh vi c phân tích yêu c u nh ng
không ph i là phân tích yêu c u. Thông tin g n nh là t ng t nhau nh ng s d ng
thì khác nhau:
• Phân tích yêu c u c g ng th a thu n v i khách hàng v h th ng c
xây d ng. Còn ng i ki m th khai thác s b t ng v nh ng v n
c d oán i v i h th ng.
• Ng i ki m th không c n s ký k t nào c và không c n tuân theo
nh ng g i ý v cách nên làm s d ng ch ng trình. Công vi c c a h
nh m làm ph i bày ra nh ng m i quan tâm i v i stakeholders.
• Ng i ki m th không ph i tuân theo nh ng trình t c ra b i vì h
là ng i làm hi n ra các k t qu sai, k t qu không áng tin c y.
• K ch b n làm vi c c a ki m th viên không c n th u áo, ch c n h u
ích.
Vi c xây d ng m t k ch b n c n d a trên kinh nghi m th c t .
Khai thác các khía c nh c a nó:
• Cho giá tr c a m i bi n v i giá tr biên.
• N u m t k ch b n bao g m m t quá trình tu n hoàn c a các y u t , hãy
l p l i nó nhi u l n.
• T o ra m t môi tr ng không t t nh m th thách n ng l c c a ch ng
trình (t ng ho c gi m b nh , phân gi i c a máy in, phân gi i
video,… )
T o k ch b n mang tính th c t và ph i h p t t c các y u t vào trong m t testcase.
Khuy t m trong ki m th k ch b n:
• Các cách ti p c n khác t t h n và ki m th d dàng h n, mã ngu n hay
thay i:
• M t k ch b n r t ph c t p, bao g m nhi u c tính. N u c tính
u b l i, ph n còn l i c a test không th ch y ti p c. Khi c
tính ó c s a ch a, l i xu t hi n m t c tính l i k ti p.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 58
• Ph i ti n hành ki m th m i c tính m t cách riêng bi t tr c khi
ki m th k ch b n, ph i bày m t cách hi u qu nh ng v n
ngay khi nó xu t hi n.
• Các ki m th k ch b n không c thi t k bao quát toàn b ch ng
trình.
• Vi c dùng l i các k ch b n có th không có hi u qu
• Các k ch b n làm bi u hi n ra l i trong coding b i vì chúng k t
h p nhi u c tính và nhi u d li u. Nh ng trong phiên b n m i
bao ph nhi u s k t h p s không hi u qu khi chúng ta s
d ng các test c .
• Ki m th h i quy v i các c tính ki m th c l p ho c ki m th
n v (unit testing) không có k ch b n.
3.5.8 Specification based testing68
• Ý t ng: Xác nh chính xác và hoàn ch nh c a t ng yêu c u.
• Ki m tra s n ph m v i m i ch c n ng trong b n c t yêu c u, …
Các thao tác thông th ng:
• Nh n d ng b n c t .
• Xem xét l i c t chi ti t k thu t v :
• Các yêu c u c a s n ph m.
• Tính t ng thích / tính hoàn thành y các yêu c u.
• chính xác.
• N i dung.
• H tr bên ngoài.
• Qu n lý tài li u (các phiên b n c t , tài li u so sánh ti n ích gi a 2
phiên b n,…).
• Tham gia vào các cu c h p v s n ph m ó.
• Ki m th m i yêu c u v s n ph m và thông báo l i.
68 Specification based testing: Ki m th d a trên b n c t
Ch ng 3 - Các lo i ki m th ph n m m
Trang 59
Chúng ta có th ti p c n b n c t t nhi u góc :
• Nó ang nói gì v s n ph m?
• Nh ng òi h i nào mà nó th c hi n?
• B n có thông tin hi u v các yêu c u?
• Thông tin nào còn thi u?
• òi h i nào là úng n?
• T t c stakeholder có hi u v các yêu c u theo cùng m t cách?
• B n c t c a s n ph m có c n thay i?
• B n c t c a s n ph m có th ki m th c?
Xem xét l i b n c t (reviewing a specification)
• c b n c t :
• B t u t gi nh r ng m i câu trong b n c t u có ý ngh a
chuy n t thông tin.
• ánh d u theo 3 m c: d án (Project), s n ph m (Product), ch t
ng (Quality).
• Ghi chú nh ng gì mà b n c t nói cho b n bi t v :
– D án: K t c u c a nó nh th nào, s p t th i gian nh th
nào,…
– S n ph m: Nó là cái gì và nó làm vi c nh th nào.
– Ch t l ng: Tiêu chu n ch t l ng nào b n dùng ánh giá
s n ph m.
• Khi b n ghi chú nh ng gì b n phát hi n ra, hãy s d ng các màu khác
nhau phân bi t gi a các ph n:
• Các ph n ch a có trong b n c t mà b n ngh r ng nó có liên
quan.
• Nh ng ph n trong b n c t ho c tài li u khác mà b n c n hi u
v b n c t .
• Nh ng th c m c b n ngh v s n ph m s làm vi c nh th nào, d
án s c ch y ra sao hay tiêu chu n ch t l ng c s d ng.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 60
• Nh ng i m b n c m th y không ng ý ho c lo l ng v s n ph m
ho c d án.
• Hãy chú ý n nh ng chi ti t trong b n c t . N u b n c t cung c p
m t ph n thông tin, b n không c n ghi l i nó mà ch c n ghi l i c m khi c n
b n có th tìm th y m t cách d dàng (ví d nh ghi l i s trang). B n ghi l i nh ng
tóm t t mà b n c c thành m t danh sách.
• Khi b n c nhi u, m t s câu h i d dàng c gi i thích nh ng m t s
khác thì không, khi ó b n có th h i nhân viên l p trình ho c ng i vi t b n c t .
Bây gi chúng ta s xem xét ví d :
• Gi nh r ng b n là m t thành viên c a nhóm ki m th s n ph m Star
Office. ây là m t vài chi ti t:
• Mã ngu n c vi t b i nhi u ng i nhi u n i.
• B n có th truy c p vào mã ngu n và có th tìm ki m thông tin l i
t nhi u ng i s d ng vì ây là m t ch ng trình mã ngu n m .
• ây là m t vài c p nh t quan trong i v i ch ng trình:
– Nhi u l i ã c s a ch a.
– Ch ng trình giúp c vi t các t p tin v n b n.
• Chia các nhân t thành 4 lo i:
• Các nhân t d án.
• Các thành ph n s n ph m.
• Tiêu chu n ch t l ng.
• Các r i ro.
• N u có th , làm vi c thành t ng c p.
• Chia ch 69 b n ang làm vi c thành các ch nh và làm vi c v i
chúng.
• Ghi chú c a ng i ki m th :
69 Ch : category
Ch ng 3 - Các lo i ki m th ph n m m
Trang 61
• Danh sách nh ng gì b n bi t v m i ch nh mà b n ang làm
vi c.
• Trong m t vài ch nh mà b n không bi t nhi u. Hãy ghi l i
nh ng gì b n bi t và nh ng câu h i v nh ng thông tin có liên
quan mà b n ch a bi t.
• B n nên ghi l i nh ng công vi c c n làm trong m t ngày ho c tô
màu vào nh ng công vi c ó và c g ng gi i quy t trong ngày ó.
• Sau khi làm xong, so sánh nh ng ghi chú c a b n v i ng i làm cùng
công vi c ó.
• Nh ng ghi chú này chính là nh ng thao tác nháp, nh ng thông tin v d
án, nó s h u ích nhi u h n nh ng gì mà b n mong i.
Ví d v ki m th m t yêu c u i v i s n ph m:
• Hãy t ng t ng có m t tr ng X
• Chúng ta có th ki m th cách s d ng riêng c a X.
• Chúng ta có th phân chia nh ng giá tr có th có c a X và ti n
hành test nh ng giá tr biên.
• Ho c có th test X v i nhi u k ch b n.
• Ma tr n ki m th : Thông tin test nên c ghi l i theo d ng ma tr n:
Var 1 Var 2 Var 3 Var 4 Var 5
Test 1 X X X
Test 2 X X
Test 3 X X X
Test 4 X X
Test 5 X X
Test 6 X X
Ch ng 3 - Các lo i ki m th ph n m m
Trang 62
• Các c t là các m c test khác nhau. M i test có th là m t ch c n ng, m t
bi n, m t d oán trong m t c t ho c tài li u các yêu c u, m t thi t b c n c
ki m th , …
• Các dòng là các testcase.
• Khi m t c tính thay i, b n có th nhanh chóng nh n ra nh ng test nào
c n ph i c phân tích l i.
• Ma tr n này không ch rõ các test mà nó ch n thu n mô t m t cách
phác h a thông tin v chúng.
3.5.9 User testing70
• Ý chính:
• Liên quan n nhi u ng i s d ng.
• c th nghi m ngoài i th c.
• Tóm t t:
• Nh n ra ph m vi s d ng c a m i ng i s d ng.
• Hi u c ng i s d ng có quy n thao tác và ng i s d ng
không c quy n thao tác.
• Tìm ki m nh ng ng i s d ng và cho phép h th c hi n vi c
ki m th ho c giúp chúng ta thi t k các test.
• Vi c cho phép ng i s d ng ki m th r t h u ích khi chúng ta
thu hút c nhi u ng i cùng th c hi n.
• M c ích chính:
• Nh n ra các l i có th xu t hi n do m t k t n công nào ó gây ra.
Víd : B s p trong toàn b h th ng máy móc/ h th ng ph n
m m
• Quy t nh ph m vi mà ng i s d ng s làm, h làm nó nh th
nào, và nh p vào nh ng gì.
• T o ra d li u ng i dùng th c t , ho c a d li u ng i s d ng
th c t vào ki m th .
70 User testing: ki m th ng i dùng
Ch ng 3 - Các lo i ki m th ph n m m
Trang 63
• Ngoài ra có th gi l p m t ng i s d ng.
• M c ích c a ki m th ng i s d ng ó là th ng kê s a
d ng v ng i s d ng và vai trò c a ng i s d ng.
• u i m:
• K t qu thi t k tin c y h n.
• Có th gi i thích nh ng v n khó hi u v s n ph m ho c làm h n
ch t l l i xu t hi n trong s d ng s n ph m
• Vi c ki m th ti n hành trong m t nhóm có th c ki m tra
b ng cách ghi l i (nh ghi l i b ng video), ch ng trình g l i, các
công c khác.
• Vi c ki m th ti n hành trong m t nhóm có th chú tr ng vào
nh ng vùng ho c nh ng thao tác mà b n ngh nó có th gây ra
nh ng tranh cãi ho c xu t hi n các v n .
• Khuy t m:
• M c bao ph không c m b o.
• Các tr ng h p test có th c thi t k không t t, khó có th dò
tìm các l i tinh vi.
• Nhân viên ki m th user không có k n ng gi ng nh nhân viên
ki m th nên các k t qu có th b h n n.
3.5.10 Stress testingKi m th Stress là m t trong nh ng lo i ki m th khó, m c ích c a nó là
làm cho ch ng trình b l i.
Ví d , chúng ta có th làm tràn m t ng d ng web b i d li u, s k t n i, và
còn nhi u n a cho n khi nó th c s b s p . S th t c a s s p có th là r t
bình th ng.
Tràn buffer71 là m t ví d n hình. u vào quá nhi u c s d ng làm
s p m t vài thành ph n c a ng d ng. K t n công có th l i d ng nh ng l i này
làm s p và ti p qu n ng d ng ho c máy tính.
71 Buffer: b m
Ch ng 3 - Các lo i ki m th ph n m m
Trang 64
M t s nh ngh a khác c a stress testing, mà chúng ta không s d ng trong
bài vi t này, ó là b t c th nghi m nào mà ánh ch ng trình v i nh ng mi n
gi i h n ho c nh ng giá tr khác bi t. Trong bài vi t này chúng ta coi ó là nh ng
th nghi m domain. Chúng không ra nguy hi m tr thành nh ng th nghi m
stress.
M t vài cách tác ng làm ch ng trình b stress:
• L i tràn buffer
• Nh p vào m t l ng l n d li u, ho c nhi u k t n i ho c nh ng dây
chuy n làm vi c dài.
• B nh h n ch , nh ng l i thi t b , virus, …
3.5.11 Integration Testing72
C n: b n thi t k mã ngu n m c th p n cao.
Integration testing là k thu t ki m th mà các components73 ph n m m,
components ph n c ng, ho c c hai c k t h p l i và c ki m th ánh giá
s t ng tác gi a chúng.
D ng ki m th này s d ng c hai k thu t Black box testing và White box
testing. Ng i ki m th (th ng là phát tri n viên) ki m tra xem nh ng n v mã
ngu n (classes, components) có làm vi c t t v i h th ng mã ngu n mà nó c
tích h p vào không? B i vì các components riêng l có th th c thi t t nh ng khi
chúng c k t h p l i thì ch a ch c s cho k t qu nh mong i. Ví d : d li u
không xu t hi n giao di n, nh ng câu messages s không hi n th úng lúc, hay là
giao di n s không hi n y . t o ra nh ng tr ng h p ki m th nh m ki m
th vi c tích h p, ng i ki m s xem tài li u thi t k t m c th p n cao.
3.5.12 Acceptance Testing74
Sau khi ã hoàn thành ki m th ch c n ng và ki m th h th ng s n ph m
c giao cho khách hàng và h s ch y th d a trên nh ng ch c n ng, m c ích
mà h c n. Acceptance testing là k thu t ki m th giúp quy t nh h th ng ó có
72 Integration testing: ki m th tích h p73 Component: thành ph n74 Acceptance testing: ki m th s ch p thu n
Ch ng 3 - Các lo i ki m th ph n m m
Trang 65
áp ng nh ng tiêu chu n mà khách hàng yêu c u không và giúp khách hàng quy t
nh có ch p nh n h th ng ó không?
Nh ng tr ng h p ki m th trong d ng này th ng c khách hàng trình
bày và a cho i ki m th ch y tr c khi quy t nh giao s n ph m. Khách hàng
có quy n không nh n ph n m m n u các tr ng h p ki m th mà h a ra không
c áp ng. Tuy nhiên khách hàng không ph i là nh ng ng i ki m th ph n
m m ã c hu n luy n.
3.5.13 Beta Testing75
Khi có s n m t phiên b n tr n v n hay m t ph n g n hoàn ch nh c a m t gói
ph n m m, t ch c phát tri n s cung c p mi n phí nó cho m t hay nhi u ng i có
kh n ng ki m ch ng, h là các beta testers-là nh ng ng i ki m th phiên b n
ph n m m, ng i dùng th . Nh ng ng i này s cài và s d ng ph n m m. Trong
quá trình s d ng n u h phát hi n ra l i thì s g i thông báo l i cho t ch c phát
tri n. Nh ng ng i này th ng c ch n vì h có kinh nghi m v phiên b n ph n
m m tr c ho c v i nh ng s n ph m c nh tranh.
• M c ích c a ki m th Beta:
• M c ích chính nh m thu hút nhi u ng i s d ng s n ph m tr c
khi a ra s n ph m chính th c.
• Ngoài ra bi t c nh ng i t ng nào ph c v cho vi c ki m
th ?
• ánh giá v tính ti n ích ra sao?
• L i khuyên, ánh giá c a ng i s d ng v s n ph m nh th nào?
• Tìm ki m c l i nào?
• Qu ng cáo và h a h n nh ng l i ích gì?
• Khách hàng có tin t ng s n ph m không?
• Các i t ng khác nhau yêu c u l p k ho ch s n ph m, l p
ch ng trình khác nhau.
Beta testing có nh ng m thu n l i và b t l i sau:
75 Beta testing: ki m th phiên b n beta
Ch ng 3 - Các lo i ki m th ph n m m
Trang 66
Thu n l i
• Nh n ra l i.
• M t tìm l i r ng h n trong nh ng môi tr ng khác nhau.
• Chi phí th p vì nh ng ng i xài th ph n m m mi n phí nh ng
không b b i th ng.
• Nh ng b t l i:
• Ki m th không theo m t h th ng, ph ng pháp nào c ; vì m i
ng i s d ng ph n m m theo cách c a h .
• Nh ng b n báo cáo v l i có ch t l ng r t th p ; vì ng i s d ng
th m chí là không thông báo l i, ho c thông báo không y chi
ti t v l i.
• C n r t nhi u c g ng ki m tra nh ng b n báo l i, trong khi có
quá nhi u ng i dùng th .
3.5.14 Exploratory testing76
3.5.14.1 Khái quát
• Ý chính c a ki m th có tính ch t th m dò (exploratory testing):
• K t qu t các test mà b n thi t k và th c thi s nh h ng n
vi c b n ch n th c thi test k ti p.
• B n xây d ng m t mô hình v s n ph m trong quá trình b n ki m
th nó. Mô hình này g m có s n ph m là gì và ch y nó nh th
nào, và m c ích c a nó.
• B n ki m th nh ng gì mà b n bi t, c nh giác i v i nh ng th
hi n mà b n v n ch a bi t v nó.
• Th c thi ki m th th m dò
• Ghi nh n l i t t c nh ng gì b n làm, t i sao b n l i làm nh v y
và nh ng ánh giá c a b n v ch t l ng s n ph m
76 Exploratory testing: ki m th th m dò
Ch ng 3 - Các lo i ki m th ph n m m
Trang 67
• Ghi nh n l i nh ng câu h i và các v n xu t hi n trong khi b n
th c hi n vi c th m dò.
• t ng tin c y cho vi c ki m th c a b n hãy k t h p v i m t
tester khác th c thi các test gi ng nhau trên máy gi ng nhau và
cùng m t th i m.
• Ki m th th m dò k t h p h c, thi t k test và th c thi test.
• M c ích c a ki m th th m dò:
• Nghiên c u v s n ph m
• Nghiên c u v th tr ng.
• Nghiên c u v các cách làm cho ch ng trình có th b fail.
• Nghiên c u các khuy t m c a s n ph m.
• Tìm hi u cách test s n ph m.
• Test s n ph m.
• Thông báo các v n .
• Giúp cho vi c s a ch a.
• Phát tri n các test m i d a trên nh ng gì ta ã tìm hi u c.
Ki m th th m dò không ph i là m t k thu t ki m th , nó ch là m t cách
suy ngh v ki m th .
B t c k thu t ki m th nào c ng có th s d ng trong ki m th th m dò.
3.5.14.2 M t cách ti p c n
• c 1- Th m dò (exploration): hi u bi t v ng d ng.
• c 2 – Ki m th c b n (Baseline test): t o và th c thi m t
tr ng h p ki m th n gi n.
• c 3 - H ng v phân tích (Trend analysis): ánh giá ng d ng
th c thi có gi ng nh mong i hay không khi mà k t qu th c thi
không th phân tích tr c.
• c 4 - Ki m kê (Inventory): xác nh các lo i d li u khác nhau
và t o m t test cho m i nhóm.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 68
• c 5 – Nh ng s t h p b ng ki m kê (Inventory combinations):
Nh m ph i h p d li u u vào khác nhau.
• c 6 – a vào các ng biên (Push the boundaries): Nh m xác
nh ng d ng s x lý nh th nào t i các ng biên c a d li u.
• c 7 – D li u không phù h p (Devious data): a vào d li u
không phù h p nh m ánh giá x lý c a ng d ng.
• c 8 – Môi tr ng quá s c ( stress): Tìm cách làm cho h th ng b
.
3.5.14.2.1 c 1: Th m dò
• Th c hi n t t c các tr ng h p s d ng có th có.
• c t t c h ng d n s d ng và tài li u liên quan.
• Ph i có m t ng i gi i thích v ng d ng.
• a vào d li u và các m nh l nh b t k .
• Th t t c các l a ch n.
• Ph i có thái tò mò và hoài nghi v nh ng gì mà chúng ta th y.
3.5.14.2.2 c2
• S d ng các kh i t o m c nh ho c a vào d li u n gi n và d hi u.
• Sau ó tester ph i a ra k t lu n logic.
• T o môi tr ng ki m th :
• Cài t ng d ng
• Cài t các công c c n thi t.
• Kh i t o các t p tin c bi t g m v trí t chúng v i d li u c n
thi t cho ki m th .
• T o nh ng ti n ích mà liên quan n ng d ng.
• Có c các thi t b c n thi t và ph n c ng thích h p.
• Có th ph i th c thi các test b ng tay.
• Tester kh o sát t m ng d ng và t o m t test th c s .
• M t khi ch ng trình b l i, tester ph i tìm v n chính y u.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 69
• Ví d :
• T o m t l p h c.
• Thêm sinh viên vào l p h c
• Phân nhóm.
• Phân công nhi m v cho nhóm.
• X p h ng.
3.5.14.2.3 c 3: H ng v phân tích
c này r t c n thi t n u:
• B n bi t r t ít v ng d ng.
• D li u u vào và u ra ch a các giá tr s .
• Các ng biên d li u không c bi t.
• Vi c tính toán các k t qu mong i khó.
• B n có ý t ng v ph m vi các k t qu mong i.
3.5.14.2.4 c4: Ki m kê
• Xác nh lo i d li u có th có trong ng d ng sau ó ghi t t c các tr ng
thái có th có c a m i lo i.
• Vi c ki m th m b o r ng m i tr ng thái c s d ng ít nh t m t l n.
• Chúng ta ti p t c s d ng test c b n nh ng có s a i m t giá tr .
3.5.14.2.5 c 5: Ph i h p các b ng ki m kê.
Hai cách ti p c n:
• u tiên ph i h p m i l n hai b ng sau ó ti p t c ti p t c ph i h p
nhi u b ng ( 3,4,5…).
• S d ng b ng các tr ng h p test mà trong m i tr ng h p test th t u
tiên l n l t c thay i, và tr ng h p test cu i cùng tích l y t t c
các i u ki n ó.
3.5.14.2.6 c 6: a vào các giá tr biên
Th c thi các tr ng h p test v i:
• Giá tr biên.
Ch ng 3 - Các lo i ki m th ph n m m
Trang 70
• Giá tr biên -1.
• Giá tr biên +1.
3.5.14.2.7 c 7: a vào các giá tr không phù h p
• Ki m th các u ki n mà m t ng i s d ng bình thu ng có th không
th c thi.
• Không a vào d li u, xác nh ng d ng có cung c p các giá tr m c
nh hay a ra thông báo c nh báo.
• a vào d li u s không có ý ngh a, nh các giá tr b ng 0 hay giá tr
chu i.
• Th các k t h p d li u hi m x y ra.
3.5.14.2.8 c 8: Môi tr ng quá t i.
• Làm gi m b nh hi n có.
• S d ng t t c không gian a hi n có.
• Ch y song song nhi u yêu c u.
• Ch y ng d ng trong khi h th ng ang th c thi m t sao chép d phòng.
• Th các tr ng h p: B ngang ng d ng, ng t k t n i cáp, t t ngu n
i n.
3.6 Các lo i ki m th h p tr ng
Unit testing77
Nó lo i ki m th ch y u trong lo i ki m th h p tr ng.
Unit testing là k thu t ki m th c a nh ng n v ph n c ng ho c ph n
m m riêng bi t, ho c các nhóm các n v có quan h v i nhau. D ng ki m th này
s d ng k thu t White box testing.
Nh ng ng i ki m th (ng i vi t mã ngu n) ki m tra l i xem n mã
ngu n có ch y ra k t qu úng không m c c u trúc r t th p.
Ví d : ng i ki m s vi t m t s n code ki m th , dùng g i m t
ph ng th c v i tham s c th và b o m r ng: giá tr tr v c a ph ng th c này
77 Unit testing: ki m th n v
Ch ng 3 - Các lo i ki m th ph n m m
Trang 71
là úng. Khi xem k l i n code c a ph ng th c này, có th h th y r ng có kh
ng nó cho ra k t qu không mong i và vi t m t tr ng h p ki m th khác. Khi
phát hi n ra l i, ng i ki m th s ki m tra l i b n thi t k n code m c
th p ho c c u trúc c a n code này.
Unit testing th ng làm vi c v i m t class hay m t component.
Chúng ta s tìm hi u cách t o testcase cho ki m th unit trong m c [4.4]
Ch ng 4 - Các công c h tr
Trang 72
Ch ng 4 Các công c h tr
4.1 Công c h tr qu n lý ki m th
4.1.1 Nh n xét chung
Qua tìm hi u các công c qu n lý test, chúng tôi nh n th y r ng m t công c qu n
lý test c n th a mãn các yêu c u sau:
4.1.1.1 Các i t ng:1. Project
2. User.
3. Role: Vai trò c a user.
4. Requirement: Phiên b n và các tài li u liên quan
5. Release: Phiên b n c a project.
6. Thành ph n c a release: build, component,…
7. Test Plan: K ho ch test.
8. Test types: Các lo i test.
9. Test cases: Các tr ng h p test cho m i build.
10.Teststep: Các b c test cho m i test case. Thông tin v teststep c n có:
• D li u vào.
• K t qu mong i.
11.Result: K t qu th c thi test.
12.Bug: L i.
13.Reports: Các thông báo v tình tr ng c a ti n trình: Tình tr ng l i, ti n
tri n c a công vi c: …
14.Các tài li u h ng d n s d ng ch ng trình (Help)
4.1.1.2 Các ch c n ng:1. Qu n lý project.
2. Qu n lý User.
3. Phân quy n s d ng cho User.
Ch ng 4 - Các công c h tr
Trang 73
4. Qu n lý requirement theo phiên b n.
5. Qu n lý release.
6. Qu n lý các thành ph n c a release: build, component,..
7. Qu n lý testplan.
8. Qu n lý testcase.
9. C p nh t k t qu cho test case: i v i m i testcase cho phép th c thi
test nhi u l n.
10.C p nh t tình tr ng l i.
11.Th ng kê l i cho m i release ho c m i thành ph n c a release.
12.Xem, tìm ki m thông tin v các i t ng.
G i và c p nh t k t qu m t cách t ng t công c test t ng.
4.1.2 TestLink
Hình 4-1 Mô hình use case c a công c qu n lý ki mth TestLink
Ch ng 4 - Các công c h tr
Trang 74
4.1.2.1 Các i t ng qu n lý trong TestLink
• Product78: G m c t k ch b n ki m th 79 v i các tr ng h p ki m th ,
c l u tr b ng các t khóa. i u này giúp cho vi c tra c u d dàng
n.
• Component80: Là thành ph n c a product, m i component có th có nhi u
category hay nói m t cách khác component chính là cha c a category.
• Category81: Là cha c a các testcase. M i category có th có nhi u
testcase.
• Testcase82: Là ph n c b n c a TestLink. Bao g m các thông tin chính:
version, steps, expected results(các k t qu mong i).
• Test Specification: Bao g m t t c các component, category và các
testcase trong ph m vi TestPlan.
• TestPlan83: TestPlan c t o khi b n mu n th c thi các testcase.
• Test Result84: Khi b n th c thi test, k t qu test s c c p nh t.
• User85: M t user s có m t vai trò trong project.
4.1.2.2 Ti n trình
Các b c th c hi n theo m t trình t :
• T o productàt o componentàt o categoryàt o testcase
• T o test planà a testcase vào test plan.
• Tr c khi th c thi test b n ph i xây d ng các build, k t qu test s c
c p nh t vào các build. M t build có th g m nhi u test result.
4.1.2.3 u i m
Cách qu n lý theo d ng cây rõ ràng, d hi u.
78 Product: s n ph m79 c t k ch b n ki m th : Test specification80 Component: thành ph n81 Category: nhóm82 Testcase: tr ng h p ki m th83 TestPlan: k ho ch ki m th84 Test Result: k t qu ki m th85 User: ng i dùng
Ch ng 4 - Các công c h tr
Trang 75
4.1.2.4 Nh c m
• Khi b n c p nh t m t testcase thì phiên b n m i c t o ra nh ng ng i
dùng ch th y c phiên b n m i nh t ch không th y c các phiên
b n tr c ó.
• Không qu n lý yêu c u do ó không có m i liên h gi a các testcase và
yêu c u.
• Qu n lý vai trò c a ng i dùng không rõ ràng và không phân công công
vi c.
• Thông tin qu n lý trong các i t ng: testcase, test plan,… quá s sài.
4.1.3 Qatraq
4.1.3.1 i t ng chính
• Product86: Trong m i product s g m nhi u component.
• Component87: Là m t thành ph n trong s n ph m, m i component g m
nhi u testcase.
• Testcase: Là m t tr ng h p ki m th , testcase ch thu c v m t product,
nh ng có th n m trong nhi u component.
• Script: G m nhi u testcase, sau khi t o script chúng ta s thêm các
testcase vào script này.
• Result: K t qu test.
• User: ng i dùng. M i ng i dùng s có m t vai trò.
• Report: Thông báo l i.
T t c các i t ng trong Qatraq u c qu n lý theo các phiên b n:
1. Increment major: phiên b n c ánh s t ng d n theo s chính_ là s
tr c d u ch m. Ví d : phiên b n 1.0 thì phiên b n ti p theo là 2.0, ti p là
3.0, …
86 Product: s n ph m87 Component: thành ph n
Ch ng 4 - Các công c h tr
Trang 76
2. Increment minor: phiên b n t ng d n theo s ph _ là s sau d u ch m.
Ví d : phiên b n 0.1 thì phiên b n ti p theo là 0.2, ti p là 0.3, …
3. Increment both: phiên b n t ng theo c 2 s . Ví d : phiên b n 1.1
4.1.3.2 Ti n trình
Nhìn vào mô hình ti n trình chúng ta có th th y r t rõ th t các thao tác trong quy
trình.
• Script g m các testcase, do m t tester (ki m th viên) ph trách testscript
này.
• Tester c phân công vào Result c p nh t k t qu cho các t ng
testcase trong script.
• Vào Report post( ng g i) các thông tin v l i.
4.1.3.3 u i m
• Các phiên b n c qu n lý t t.
• Có s phân công công vi c.
4.1.3.4 M t s h n ch
• Thông tin v testcase ch g m title, ghi chú, version, component mà nó
thu c v , … ch không h có k t qu mong i, hay các b c test trong
khi ó ng i th c thi test và ng i thi t k test khác nhau. Nh v y th t
Ch ng 4 - Các công c h tr
Trang 77
khó c p nh t k t qu cho các testcase ngay c khi ng i thi t k test
tr c ti p th c thi chính các testcase mà mình thi t k .
• Thông tin v k ho ch test quá n gi n, không h có th i gian b t u,
th i gian k t thúcàKhông th n m c công vi c có ang ti n hành
úng ti n hay khôngà Không th áp d ng cho m t d án l n.
4.1.4 RTHXem chi ti t ch ng 5
4.1.5 Mantis Bugtracking
4.1.5.1 Nhi m v
ây là công c dùng qu n lý:
• Các lo i l i:
• L i m i.
• L i ch a c phân công s a ch a.
• L i ã c phân công.
• L i ã c s a ch a.,…
• Các thông báo v tình tr ng l i.
• Qu n lý các user và công vi c c a m i user.
4.1.5.2 u i m
• Các lo i l i khác nhau c bi u di n theo các màu khác nhau giúp ng i
dùng d dàng nh n bi t.
• Vi c qu n lý công vi c c a các user rõ ràng do ó ng i dùng có th th y
r t rõ công vi c mà mình c n th c hi n.
4.1.5.3 Khuy t m
• Không qu n lý các yêu c u.
• Không có s liên k t gi a yêu c u v i các test.
Ch ng 4 - Các công c h tr
Trang 78
4.2 Công c ki m th ph n m m t ng88
4.2.1 TestComplete
4.2.1.1 Gi i thi u
TestComplete là môi tr ng ki m th t ng dùng cho WIN32 và các ng
d ng.NET. Có th test các trang web, web servers, và các d án c t o t VC++,
VB, Borland Delphi, C++Builder, Java và các công c phát tri n.NET. (dùng IIS
khi cài t)
TestComplete qu n lý nh ng scripts test ng d ng. Ngoài ra còn qu n lý
nh ng inside-outside forms. Chúng t ng ng v i unit testing, functional testing,
regression testing, data-driven testing, object-driven testing, …à TestComplete
v a h tr test t ng các lo i test Blackbox và Whitebox.
test t ng các lo i test Blackbox thì TESTCOMPLETE không c n b t
c công c phát tri n nào.
Nh ng v i các test t ng Whitebox thì c n:
Các trình biên d ch.NET có s n. Ví d :
• Microsoft: Visual C#, Visual Basic.NET và Visual C++.NET v. 7.0 và
nh ng phiên b n m i h n, JScript.NET
• Non-Microsoft: Borland C#Builder, Borland Delphi for.NET (Delphi 8
và Delphi 2005), Python.NET, Cobol.NET, Perl.NET,...
Microsoft Visual C++ 6.0, Visual C++ 7.0 tr lên.
Microsoft Visual Basic 6.0
Borland Delphi 3.0 tr lên.
Borland C++Builder 3.0 tr lên.
Công c phát tri n Java thích ng v i m t trong các máy o Java sau:
• MSVM, build 3309 tr lên
• Sun JDK (or JRE) v. 1.1.8 tr lên.
88 Ki m th ph n m m t ng: AutoTest Software
Ch ng 4 - Các công c h tr
Trang 79
• BEA JRockit 5.0
Ví d , b n có th dùng Microsoft Visual J++ 1.1 ho c h n, Borland JBuilder
3.0 tr lên, Sun Forte 1.0 tr lên,...
Microsoft FoxPro 7.0 tr lên.
4.2.1.2 Yêu c u h th ng
4.2.1.2.1 Yêu c u th p nh t
• Intel Pentium II 400 MHz tr lên.
• Microsoft Windows 98, ME, 2000, XP, Windows Server 2003 hay
Windows NT 4.0 Service Pack 6 tr lên.
• Microsoft Internet Explorer 5.0 tr lên.
• B nh : RAM 64MB
• Dung l ng c ng 250MB.
• phân gi i màn hình VGA ho c h n.
4.2.1.2.2 M t s yêu c u khác
• ki m t ng (Whitebox) các ng d ng Java, c n có m t trong các
Java virtual machines ã c cài t:
• MSVM, build 3309 ho c h n.
• Sun JDK (or JRE) v. 1.1.8 tr lên.
• BEA JRockit 5.0.
• ki m t ng (Whitebox) các ng d ng.NET, c n Microsoft.NET
Framework v. 1.0.3705 tr lên.
• ki m t ng (Whitebox) các ng d ng c t o trong Microsoft
Visual Studio 2005, thì c n có Microsoft Visual Studio 2005 ver.
8.0.50727.43 tr lên.
Ch ng 4 - Các công c h tr
Trang 80
• trình di n vi c load các test c a Web servers, thì c n Microsoft
Windows XP ho c Microsoft Windows Server 2003 ho c c hai; và nó
c n có c u hình máy tính nh sau:
• C u hình th p nh t:
• Intel Pentium III 800 MHz
• 256 of RAM (for 300 virtual users)
• C u hình t t:
• Intel Pentium 4 3000 MHz with HyperThreading
• 1 Gb of RAM
4.2.2 WinrunnerWinrunner dùng TestDirector, t ch c và qu n lý ti n trình test, b ng
cách k t h p test planning, test development, test execution, và defect (b n k ho ch
test, testsuite, b n th c thi test, v n ).
Winrunner có th test t ng các ng d ng c vi t b ng PowerBuilder,
Visual Basic, ActiveX, and MFC. Ngoài ra Mercury Interactive (Winrunner là 1
trong các Mercury Interactive) có th test các ng d ng vi t b ng Web, Java,
Enterprise Resource Planning (ERP) applications, Wireless Application Protocol
(WAP), Oracles, Delphi, and Siebel.
4.2.2.1 Các giai o n
G m 3 giai n chính:
• T o Testcase: B n có th t o testcase b ng cách l p trình ho c ghi l i.
Trong khi t o testcase, b n s thêm các checkpoints n i b n mu n
ki m tra.
• Th c hi n test t ng: Khi th c thi, WinRunner s gi l p thành user
nh p d li u v i chu t và bàn phím. Khi Winrunner g p 1 checkpoint
trong testcase, nó s so sánh tr ng thái c a ng d ng khi th c thi v i
tr ng thái mong i (mà b n ã nh p) t i i m ó.
Ch ng 4 - Các công c h tr
Trang 81
• Phân tích k t qu test: Khi th c thi testcase xong, b n s ki m tra k t
qu . WinRunner li t kê toàn b nh ng s ki n x y ra trong khi th c hi n
testcase, ví d : checkpoints, l i, hay các thông báo.
4.2.2.2 Ti n trình test trong winrunner
g m 6 b c chính:
• B1: Ch cho winrunner bi t các i t ng trong ng d ng c n test, b ng
cách ch n các ch GUI map mode.(Winrunner c n bi t các i t ng
trong ng d ng th c thi tests).
• B2: T o các test scripts. Winrunner có th t ng t o các test scripts khi
b n ghi l i nh ng actions trên ng d ng. Ho c b n có th l p trình test
scripts tr c ti p v i TSL (Test Script Language).
• B3: Debug các testcases. B n s debug các testcases m b o ng
d ng th c thi úng.
• B4: Th c thi các testcases v i phiên b n m i c a ng d ng.
• B5: Ki m tra k t qu test xem có defect (v n x y ra, ho c l i).
• B6: Ghi l i nh ng v n ó. N u b n có TestDirector 7.01, ho c Web
Defect Manager (TestDirector 6.0), hay Remote Defect Reporter
(TestDirector 6.0), b n có th ghi l i các defects ó vào c s d li u.
4.3 Công c ki m th web t ng89
4.3.1 Gi i thi uH u h t các website và ng d ng web ch y m t cách êm và úng n u cùng
m t th i m ch có m t ho c vài ng i s d ng truy c p. Nh ng chuy n gì s x y
ra n u hàng ngàn ng i s d ng truy c p vào website ho c ng d ng web cùng
m t th i m?
S d ng công c Webserver Stress b n có th gi l p các i t ng k t n i
v i webserver c a b n, u này s giúp b n phát hi n nh ng v n trong vi c thi t
89 Ki m th web t ng: AutoTest Web
Ch ng 4 - Các công c h tr
Trang 82
l p webserver c a b n. B ng vi c cho s l ng k t n i t ng d n b n có th phát
hi n v i s l ng bao nhiêu k t n i thì máy ch c a b n có th m t th ng b ng
tr c khi nh ng x y ra nh ng v n nghiêm tr ng.
4.3.2 Proxy Snifferây là m t công c test web, th ng dùng ki m th l i stress. ng d ng
t o ra nh ng user o, b n s ti n hành th c thi m t load test nhi u l n v i s l ng
user khác nhau ( thông th ng s d ng s l ng user t ng d n).
Hình 4-2 Quá trình ghi l i d li u công c Proxy Sniffer
Bao g m 4 lo i máy ch c k t h p l i:
• Proxy Sniffer Server: Ghi l i toàn b các phiên l t web, các thông tin
này c l u gi trong b nh t m th i c a nó. Vi c gi i mã các k t n i
HTTPS c t ng hóa b ng vi c s d ng ng d n o SSL (SSL
tunnels).
• Web Admin Server: Là giao di n h a ng i dùng(GUI), m t trình ch
web s d ng giao th c HTTP m ng, nó l y l i nh ng n i dung t nh g i t
prxsniff.jar. c s d ng u khi n Proxy Sniffer server và qu n
lý d li u mà nó ã ghi l i b ng vi c cung c p m t giao di n h a
ng i dùng. Hi n th d li u c a m t phiên l t web mà ã c ghi l i
Ch ng 4 - Các công c h tr
Trang 83
trên giao di n h a c a nó và cung c p s l u tr / n p các phiên l t
web vào/ t các t p tin *.prxdat. Nó cho phép th c thi và biên d ch các
ch ng trình load test (*.java), b t u và i u khi n các load test job,
c và hi n th các t p tin k t qu (*.prxres).
• Exec Agen Server: Th c thi các ch ng trình load test job và làm vi c
k t h p v i Web Admin Server. Exec Agent Server có th ch y nhi u test
cùng m t th i m b ng cách s d ng m t CPU o cho m i load test
job. Giao ti p gi a Web Admin Server và Exec Agent Server ch y trên
các giao th c k t n i TCP/IP (port 7993). Ngoài ra giao ti p này còn có
th c s d ng b i giao th c HTTP ho c HTTPS, i u này cho phép
k t n i v i các Exec Agent Server bên ngoài.
• Cluster Job Contrller: Th c thi các ch ng trình load test, nó có th phân
b m t ch ng trình load test n qua m t s l ng không gi i h n các
Exec Agent Server và có th k t h p các k t qu load test c a t t c các
Exec Agent thành m t k t qu duy nh t. Cluster Job Controller làm vi c
k t h p v i Web Admin Server và các Exec Agent Sever và ph i c
b t u trên cùng m t host n i mà Web Admin Server ch y. M t vài
Cluster Job có th ch y cùng m t th i m b ng cách s d ng cùng
ho c m t t p h p khác nhau c a các Exec Agent Server.
Hình 4-3 Qui trình th c thi load test Công c Proxy Sniffer
Ch ng 4 - Các công c h tr
Trang 84
ch y các load test v i hàng tr m ho c hàng ngàn ng i s d ng o, chúng
ta ph i m b o r ng b n ph i h p nhi u Exec Agent Server thành m t Exec Agent
Cluster o.
4.3.3 Công c Webserver Stress
4.3.3.1 Performance Tests
Performance test c s d ng ki m tra t ng ph n c a webserver ho c
ng d ng web phát hi n cách t t nh t cho vi c t ng s l ng truy c p. Công c
Webserver Stress cung c p lo i test này v i kh n ng ch y ng th i nhi u yêu c u(
20-100) trên m t ng d n và ghi l i th i gian trung bình x lý nh ng yêu c u
ó. B ng vi c thay i website c a b n ho c l p trình ng d ng d i d ng l p i l p
l i nh ng ki m tra, b n có th phát hi n s l ng gi i h n a ch cho s th c thi t t
nh t.
4.3.3.2 Load testsLoad test c th c thi b ng cách c l ng l u l ng c n h tr . B c u
tiên là xác nh th i gian t i a nó s x y ra load m t trang nào ó (d a vào quan
i m và kinh nghi m th c t ch không ph i là m t k thu t). Khi b n khám phá ra
i u này b n c n t p trung vào vi c tìm cách gi m th i gian t i a ó. N u không
doanh thu s gi m ho c b n s m t khách hàng trong t ng lai. M t th c t là
không m t ng i truy c p nào có th ch quá 10 phút m t trang web c load
lên.
Khi gi i h n này c xác nh, b n ph i tính toán load cái gì và ki u dáng
load cho website c a b n, u này b n có th t o mô hình qua vi c s d ng công c
Webserver Stress.
Cu i cùng b n có th so sánh k t qu test v i gi i h n th i gian yêu c u t i a.
Khi m t vài trang yêu c u x y ra lâu h n th i gian d nh ho c phát sinh ra l i thì
rõ ràng ó là i u mà m t ng d ng ho c m t webserver c n làm gi i quy t
nh ng v n ó.
Ch ng 4 - Các công c h tr
Trang 85
4.3.3.3 Stress tests
Stress Test c gi l p “brute force” t n công mà áp d ng load quá nhi u i v i
webserver c a b n. Nh ng tình hu ng trong th gi i th c gi ng nh i u này có th
c t o ra b i m t l ng l n ng i s d ng- nguyên nhân b i m t l ng l n ch
d n. M t ví d khác ó là m t email chi n d ch ti p th g i t i khác hàng m i h
ng ký vào website ho c yêu c u thêm thông tin.
M c ích c a stress test là khám phá s l ng load t i a mà webserver c a b n
có th cung c p. Công c webserver stress có th giúp b n bi t c gi i h n l u
ng c a webserver c a b n và nó s ph n ng l i nh th nào sau khi quá gi i
h n.
4.3.3.4 Ramp Tests
Ramp test là s bi n i c a stres test ó là s l ng ng i s d ng c t ng t
m t n hàng tr m ng i. D a vào nh ng th c a nh ng l n nh n và l i, m t
Ramp test có th giúp b n phát hi n l ng load t i a mà m t server có th l u tr
trong vi c truy c p t i tài nguyên web.
4.3.4 Apche JmeterApche Jmeter là m t ng d ng c vi t b ng ngôn ng Java, c thi t k
ki m th vi c load các th hi n thu c v ch c n ng và ánh giá s th c thi. Kh i
u nó c thi t k cho vi c ki m th các ng d ng web nh ng sau ó nó c
m r ng ra i v i các ch c n ng test khác.
Apche Jmeter có th c s d ng ki m th s th c thi i v i c tài
nguyên ng và c tài nguyên t nh (nh : t p tins, Servlets, Perl scripts, Java
Objects, Data Bases and Queries, FTP Servers,…).
Nó còn c s d ng gi l ng l n load trên m t máy ch , h th ng
m ng ho c i t ng ki m th s c m nh c a nó ho c phân tích toàn b s
th c thi b ng cách load nhi u lo i khác nhau.
B n có th s d ng nó t o ra m t b n phân tích giao di n h a c a s th c
thi ho c ki m th s th hi n c a server, t p l nh ho c i t ng d i m t s l ng
l n load hi n hành.
Ch ng 4 - Các công c h tr
Trang 86
4.3.5 WaptPh n m m này là m t công c ki m th load, stess và performance cho các
web site các ng d ng m ng n i b v i giao di n web. WAPT c thi t k cho
MS Windows 2000/XP/2003 và Windows 98.
Ch ng trình gi l p ho t ng c a m t l ng l n ng i s d ng mô
ph ng vi c load m t trang web trong th gi i th c.
Ng i s d ng có th th c thi nhi u ho t ng khác nhau khi duy t qua trang
web c a b n. Ví d i v i m t trang web bán l , xét trong m t th i m m t vài
ng i có th ang xem các danh m c (catalog), ng i s ng i khác ang tìm ki m
m t s n ph m nào ó và nh n nút t mua trong khi m t administrator có th ang
c p nh t catalog. Trong tr ng h p này b n s c n t o 3 user prot p tins o khác
nhau ( m i user prot p tins i di n cho 1 nhóm).
Hình 4-4 Công c Wapt
Ch ng 4 - Các công c h tr
Trang 87
4.3.5.1 Test Scenario
th c thi m t test, b n nên t o m t k ch b n test, trong k ch b n b n s
nh ngh a các test volume: s l ng ng i s d ng tham gia trong m t test run và
th i gian test. B n có th kh i t o s l ng ng i s d ng là c nh ho c s l ng
ng i t ng d n cho n khi nó t c giá tr l n nh t theo lý thuy t.
Ngay khi b n k t thúc vi c ch n l a các tham s cho k ch b n, b n có th t o
các prot p tin cho các nhóm ng i s d ng khác nhau.
4.3.5.2 Virtual User prot p tin
M i Virtual user prot p tin i di n cho m t nhóm ng i s d ng. B n s ghi
l i t t c các b c mà b n ã th c hi n khi duy t trang web. M i virtual user prot p
tin chia thành 3 ph n:
Initial Actions Ví d , ng nh p ho c ng ký.
Main Actions Ví d , t qua các trang catalog ho c forum.
Final Actions Ví d , hoàn thành m t vi c mua bán ho c ng xu t.
Các ho t ng trong t p initial actions c th c thi khi b t u c a phiên làm
vi c. Sau ó t p Main Actions c g i th c thi l p i l p l i v i s l n b ng v i s
l n l p mà b n c t . Cu i cùng t p Final Actions c g i th c hi n cu i phiên
làm vi c.
4.3.5.3 Logging
B n có th ch n gi a 2 s ch n l a:
Full log: Là m t b n ghi y nh t v test run, bao g m các thông tin: t t
c các yêu c u, áp l i yêu c u và tr v mã HTML.
Error log: Ch ghi l i các trang yêu c u và áp l i mà xu t hi n l i.
Ch ng 4 - Các công c h tr
Trang 88
4.3.5.4 Results
B n có th xem các k t qu trung gian trong quá trình th c thi test gi ng nh
là vi c xem k t qu cu i cùng. K t qu là các thông báo (report) và th (graph).
B n có th l u k t qu d i d ng t p tin.wpr, ho c chuy n thành t p tin HTML
ho c CSS.
4.4 Công c ki m th Unit [6]
4.4.1 PHP Unit Testing
th c thi các ví d , b n t o trong th m c www m t th m c r ng (tên [vi
du]) v i các th m c con classes, tests và temp. Gi i nén n n làm vi c SimpleTest
vào th m c tests.
4.4.1.1 Cách t o testcase
4.4.1.1.1 T o m t testcase m i
Ta t o test ví d ki m th unit testing cho m t l p log n gi n. Ta s nói
v cách phát tri n l p này trên Simple Test. L p PHP này nh và n gi n.
T o t p tin PHP tên log_test.php trong th m ct tests v i n i dung:<?php if (! defined('SIMPLE_TEST')) { define('SIMPLE_TEST', 'simpletest/'); } require_once(SIMPLE_TEST. 'unit_tester.php'); require_once(SIMPLE_TEST. 'reporter.php'); class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase(); } function testCreatingNewFile() { } } $test = &new TestOfLogging(); $test->run(new HtmlReporter());?>
ây là m t tr ng h p ki m th unit ki m tra vi c t o m t t p tin m i úng hay
sai.
H ng s SIMPLE_TEST là ng d n t t p tin này n các l p Simple Test. Vào
t p tin php.ini c p nh t l i ng d n c a các l p, nh ng n u b n ang dùng m t
tài kho n ch chia s thì b n s không th truy c p t p tin này.
Ch ng 4 - Các công c h tr
Trang 89
T p tin reporter.php làm gì? Các th vi n Simple Test là m t b d ng c
t o test suite chu n cho riêng b n. Chúng c s d ng "nh là" không có khó
kh n, nh ng g m có nh ng ph n b chia nh ra, c n ph i c ghép l i.
reporter.php có m t ph n trình bày. B n s so n th o và thêm nh ng l a ch n cài
t m c nh cho t p tin này. Simple test ti n l i nh ng quá c b n, l p hi n th b
test c g i HtmlReporter. Nó có th ghi l i test kh i ng, k t thúc, l i, không
l i. Nó hi n th các thông tin ó r t nhanh trong tr ng h p n mã test b ng
v i script ho c l i.
Nh ng b test c t p h p l i trong các l p testcase. Vi c này có trong
UnitTestCase m r ng. Khi b test c th c thi, nó s tìm công th c kh i t o tên
“test” và th c thi công th c này. Ch có công th c test c a ta bây gi c g i là
testCreatingNewFile().
L p UnitTestCase s phát sinh nh ng s ki n test khi th c thi và nh ng s
ki n ó c g i n ng i quan sát. Công th c UnitTestCase::run() th c thi t t
c b test trong l p.
Bây gi ta ki m tra vi c t o t p tin test.log có úng không. Ta thêm các dòng
màu xanh m:<?php if (! defined('SIMPLE_TEST')) { define('SIMPLE_TEST', 'simpletest/'); } require_once(SIMPLE_TEST. 'unit_tester.php'); require_once(SIMPLE_TEST. 'reporter.php'); require_once('../classes/log.php'); class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase(); } function testCreatingNewFile() { @unlink('../temp/test.log'); $log = new Log('../temp/test.log'); $log->message('Should write this to a file'); $this->assertTrue(File_exists('../temp/test.log')); } } $test = &new TestOfLogging(); $test->run(new HtmlReporter());?>
Ch ng 4 - Các công c h tr
Trang 90
Trên ây có nhi u test code ( n mã test) dùng cho ch m t test. Nh v y ta có th
t o thêm nhi u b test, ho c s d ng l i sau này.
T p tin test tên log_test.php (tên b t k ) n m trong th m c tests (th m c
b t k ). Nó s g i t i t p tin log.php và ây là o n mã mà ta s ki m th .
Unit test không gi i h n cho ki m th các l p. Mã h ng i t ng (object
oriented code) s d break down và thi t k l i test h n.
Ch b test thôi thì r t nh . u tiên, nó s xóa nh ng t p tin test tr c ó.
Vi c thi t k bây gi s r t nhanh. L p c a ta là Log và l y ng d n t p tin khi
kh i t o. Ta t o m t log và g i ngay m t thông p n nó v i hàm message().
Ta c n xác nh n r ng t p tin log mà ta v a g i thông p ã c t o.
UnitTestCase::assertTrue() s g i m t s ki n “ ã qua c” (pass event) n u các
giá tr là úng và ng c l i thì s g i s ki n “l i”. Ta có th có nh ng xác nh n
khác, và có th m r ng tr ng h p testcase v i danh sách các hàm sau:
assertTrue(\$x) Sai n u \$x sai
assertFalse(\$x) Sai n u \$x úng
assertNull(\$x) Sai n u \$x ch a c kh i t o
assertNotNull(\$x) Sai n u \$x not set
assertIsA(\$x, \$t) Sai n u \$x không là l p/ lo i \$t
assertEqual(\$x, \$y) Sai n u \$x == \$y là sai
assertNotEqual(\$x, \$y) Sai n u \$x == \$y là úng
assertIdentical(\$x, \$y) Sai n u \$x === \$y là sai
assertNotIdentical(\$x, \$y) Sai n u \$x === \$y là úng
assertReference(\$x, \$y) Sai n u \$x và \$y không có giá tr nh nhau
assertCopy(\$x, \$y) Sai n u \$x và \$y có giá tr nh nhau
assertWantedPattern(\$p, \$x) Sai n u \$p không b ng/ phù h p v i \$x
assertNoUnwantedPattern(\$p, \$x) Sai n u \$p b ng/phù h p v i \$x
assertNoErrors() Sai n u có b t c l i PHP nào
assertError(\$x) Sai n u không có l i PHP hay l i thông p
Ch ng 4 - Các công c h tr
Trang 91
Bây gi ta th c thi test script c a chúng ta b ng cách tr t i trình duy t c a nó
(vào localhost trong wamp ch n m t p tin log_test.php). Và s có l i sau...
Fatal error: Failed opening required '../classes/log.php' (include_path='') in
/home/marcus/projects/lastcraft/tutorial_tests/Log/tests/log_test.php on line 7
ây là l i không g i t i t p tin log.php c. Lý do là ta ch a t o t p tin log.php.
4.4.1.1.2 Phát tri n test
B n t o m t test khác và nó th c thi úng. K t qu là b n có nh ng n
code quá gi ng nhau. B n s s p x p l i nh ng n mã ó trong khi nh ng b test
ó ã th c thi úng và vì v y b n không th b , s p x p b t c gì. Ch khi n mã
quá rõ ràng thì b n s s n sàng thêm nh ng hàm khác. Và trong tr ng h p này b n
ch có th hoàn t t chúng b ng cách thêm test khác và b t u l i t u.o t p tin log.php trong th m c classes:
<?php class Log { function Log($file_path) { } function message($message) {} }?>
ây là cách nh tránh m t l i PHP. K ti p:
testoflogging
Fail: testcreatingnewt p tin->True assertion failed.
1/1 testcases complete. 0 passes and 1 fails.
L i này là vì dòng code $this->assertTrue(File_exists('../temp/test.log'));
trong test log_test.php b sai, vì không t n t i t p tin test.log
K t qu là "testoflogging" sai. Nó s làm tên hàm và tên l p thành ch
th ng. SimpleTest dùng nh ng tên ó m c nh mô t các test, nh ng ta có th
thay i chúng, vào tests / log_test.php:class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase('Log class test'); } function testCreatingNewFile() { @unlink('../temp/test.log'); $log = new Log('../temp/test.log'); $log->message('Should write this to a t p tin'); $this->assertTrue(File_exists('../temp/test.log'), 'File created'); }}
Ch ng 4 - Các công c h tr
Trang 92
K t qu là nó v n sai:
Log class test
Fail: testcreatingnewt p tin->T p tin created.
1/1 testcases complete. 0 passes and 1 fails.
test c th c thi úng, ta t o t p tin trong kh i t o Log. K thu t “gi là nó”
("faking it") này r t h u d ng ki m tra r ng các test c a b n làm vi c.
S a l i trong t p tin log.php nh sau:<?php class Log { var $_file_path; function Log($file_path) { $this->_file_path = $file_path; } function message($message) { $file = fopen($this->_file_path, 'a'); fwrite($file, $message. "\n"); fclose($file); } }?>Và nó s úng.
Log class test
1/1 testcases complete. 1 passes and 0 fails.
Thành công!
4.4.1.1.3 Các Test nh tài li u (Tests as Documentation)
Ta không mu n t p tin c t o cho n khi ta ã g i m t thông pà Ta s thêm
test khác cho nó. Vào test / log_test.php:class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase('Log class test'); } function testCreatingNewFile() { @unlink('../temp/test.log'); $log = new Log('../temp/test.log'); $this->assertFalse(File_exists('../temp/test.log'), 'No file created before first message'); $log->message('Should write this to a file'); $this->assertTrue(file_exists('../temp/test.log'), 'File created'); }}...và nó úng...
Log class test
Ch ng 4 - Các công c h tr
Trang 93
1/1 testcases complete. 2 passes and 0 fails.
Ta có th xóa b t t p tin t m th i khi k t thúc test. Ch không nên xóa khi ta mu n
xem l i n mã c a nó.
4.4.1.2 Gom nhóm các test
4.4.1.2.1 T o m t test khácThêm m t test n gi n khác trong test / log_test.php:class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase('Log class test'); } function testCreatingNewFile() { @unlink('../temp/test.log'); $log = new Log('../temp/test.log'); $this->assertFalse(File_exists('../temp/test.log'), 'Created before message'); $log->message('Should write this to a file'); $this->assertTrue(File_exists('../temp/test.log'), 'File created'); @unlink('../temp/test.log'); } function testAppendingToFile() { @unlink('../temp/test.log'); $log = new Log('../temp/test.log'); $log->message('Test line 1'); $messages = File('../temp/test.log'); $this->assertWantedPattern('/Test line 1/', $messages[0]); $log->message('Test line 2'); $messages = File('../temp/test.log'); $this->assertWantedPattern('/Test line 2/', $messages[1]); @unlink('../temp/test.log'); }}Hàm t t o assertWantedPattern() là m t testcase dùng ki u di n t Perl ph
bi n k t h p.
Hàm này s vi t m t dòng vào m t t p tin và c t p tin này 2 l n tr lên. Ta ch
mu n ng i vi t test (logger) vi t è m t n v n b n lên n i dung t p tin c .
Và unit test này th c thi thành công:
Log class test
1/1 testcases complete. 4 passes and 0 fails.
Vì chúng r t gi ng nhau nên ta c n xóa t p tin ki m th tr c và sau m i
test. SimpleTest có các hàm setUp() và tearDown() nên c th c thi vào lúc tr c
và sau m i test. T p tin c xóa i r t thông th ng cho m i công th c test, vì v y
ta s xóa dòng l nh này.
Ch ng 4 - Các công c h tr
Trang 94
S a trong test / log_test.php:class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase('Log class test'); } function setUp() { @unlink('../temp/test.log'); } function tearDown() { @unlink('../temp/test.log'); } function testCreatingNewFile() { $log = new Log('../temp/test.log'); $this->assertFalse(File_exists('../temp/test.log'), 'Created before message'); $log->message('Should write this to a File '); $this->assertTrue(File_exists('../temp/test.log'), ' File created'); } function testAppendingToFile() { $log = new Log('../temp/test.log'); $log->message('Test line 1'); $messages = file('../temp/test.log'); $this->assertWantedPattern('/Test line 1/', $messages[0]); $log->message('Test line 2'); $messages = file('../temp/test.log'); $this->assertWantedPattern('/Test line 2/', $messages[1]); }}Ta có th thêm công th c không ph i là ki m th vào testcase b ng cách tên c a
công th c ó không b t u v i "test". Ch nh ng công th c b t u v i "test" s
c th c thi.class TestOfLogging extends UnitTestCase { function TestOfLogging() { $this->UnitTestCase('Log class test'); } function setUp() { @unlink('../temp/test.log'); } function tearDown() { @unlink('../temp/test.log'); } function getFileLine($filename, $index) { $messages = t p tin($filename); return $messages[$index]; } function testCreatingNewFile() { $log = new Log('../temp/test.log'); $this->assertFalse(File_exists('../temp/test.log'), 'Created before message'); $log->message('Should write this to a file'); $this->assertTrue(File_exists('../temp/test.log'), 'File created'); } function testAppendingToFile() { $log = new Log('../temp/test.log'); $log->message('Test line 1');
Ch ng 4 - Các công c h tr
Trang 95
$this->assertWantedPattern('/Test line 1/', $this->getFileLine('../temp/test.log', 0)); $log->message('Test line 2'); $this->assertWantedPattern('/Test line 2/', $this->getFileLine('../temp/test.log', 1)); }}
Và ta th y r ng n mã c a chúng ta ã ng n h n và l i rõ ràng h n.
4.4.1.2.2 M t nhóm test
Ta th ng mu n th c thi nhi u test th t nhanh. B ng cách phân nhóm chúng
thành nh ng nhóm test (test suite), và s d thêm các test vào ng d ng h n.
u tiên ta xóa b ki m th ang th c thi n mã t testcase ta ã có trong
tests / log_test.php:<?php require_once('../classes/log.php'); class TestOfLogging extends UnitTestCase { ... }?>Ta không c n h ng s SIMPLE_TEST n a. Và bây gi ta t o m t nhóm test tên
all_tests.php trong th m c tests:<?php if (! defined('SIMPLE_TEST')) { define('SIMPLE_TEST', 'simpletest/'); } require_once(SIMPLE_TEST. 'unit_tester.php'); require_once(SIMPLE_TEST. 'reporter.php'); require_once('log_test.php'); $test = &new GroupTest('All tests'); $test->addTestCase(new TestOfLogging()); $test->run(new HtmlReporter());?>
Th c thi testcase tên all_tests.php, Ta hãy xem i m khác nhau c a chúng:
All tests
1/1 testcases complete. 4 passes and 0 fails.
4.4.1.3 Thay i cách hi n th k t qu test
Ph n hi n th c a SimpleTest s c phát tri n sau này. Trong t ng lai m t
s ph n s thay i và s t o ra nhi u ki u hi n th ph c t p và công phu h n.
Ta s thay i cách hi n th l p con, v i tr ng h p hi n t i c a ta là
HtmlReporter. L p HtmlReporter có trong t p tin simpletest/reporter.php sau
ây là m t s hàm có s n trong t p tin này:
Ch ng 4 - Các công c h tr
Trang 96
class HtmlReporter extends TestDisplay { public TestHtmlDisplay() {... } public void paintHeader(string $test_name) {... } public void paintFooter(string $test_name) {... } public void paintStart(string $test_name, $size) {... } public void paintEnd(string $test_name, $size) {... } public void paintFail(string $message) {... } public void paintPass(string $message) {... } protected string _getCss() {... } public array getTestList() {... } public integer getPassCount() {... } public integer getFailCount() {... } public integer getTestCaseCount() {... } public integer getTestCaseProgress {... }}L p HtmlReporter() là l p kh i t o. Ki m th unit th ng dùng cách a ra m t
ng liên k t n n i hi n th . N i hi n th là ng i nh n các s ki n ki m th m t
cách th ng. Và vì v y, r t d g n n n hi n th cho các h th ng ki m th khác,
ngoài ki m th unit, có th k t h p cho ki m tra các h ch (monitoring servers).
Và ki m th unit có th so n th o nhi u cách hi n th m t lúc.
• void paintFail(string $message) là hàm v m t l i.
• void paintPass(string $message) là hàm v m t th c thi úng.
• string _getCss(), hàm này tr v ki u CSS c a tiêu trang d i d ng
chu i.
• array getTestList() thêm các ki u, hàm này r t có ích cho các l p
con.
4.4.1.3.1 M t l p con hi n th :
u tiên ta t o t p tin tests/show_passes.php trong d án ghi b n c a chúng
ta (logging project) v i n i dung sau:<strong><?php if (! defined('SIMPLE_TEST')) { define('SIMPLE_TEST', 'simpletest/'); } require_once(SIMPLE_TEST. 'reporter.php'); class ShowPasses extends HtmlReporter { function ShowPasses() { $this->HtmlReporter(); } }?>
Và thêm hàm paintPass() vào l p ShowPasses:class ShowPasses extends HtmlReporter { function ShowPasses() {
Ch ng 4 - Các công c h tr
Trang 97
$this->HtmlReporter(); }function paintPass($message) {
parent::paintPass($message); print "<span class=\"pass\">Pass</span>: "; $breadcrumb = $this->getTestList(); array_shift($breadcrumb); print implode("->", $breadcrumb); print "->$message<br />\n"; }}
Bây gi dùng l p m i, ta ph i ch nh s a trong t p tin tests/all_tests.php:<?php if (! defined('SIMPLE_TEST')) { define('SIMPLE_TEST', 'simpletest/'); } require_once(SIMPLE_TEST. 'unit_tester.php'); require_once('show_passes.php'); $test = &new GroupTest('All tests'); $test->addTestFile('log_test.php'); $test->addTestFile('clock_test.php'); $test->run(new ShowPasses());?>Và sau ây là k t qu khi ta th c thi test:
All testsPass: log_test.php->Log class test->testappendingtofile->Expecting [/Test line 1/] in [Test line 1]Pass: log_test.php->Log class test->testappendingtofile->Expecting [/Test line 2/] in [Test line 2]Pass: log_test.php->Log class test->testcreatingnewfile->Created before messagePass: log_test.php->Log class test->testcreatingnewfile->File createdPass: clock_test.php->Clock class test->testclockadvance->AdvancementPass: clock_test.php->Clock class test->testclocktellstime->Now is the right time3/3 testcases complete. 6 passes and 0 fails.
V i k t qu này, ta b m t m t chút thông tin. Hi n th này không có m t ki u CSS
cho span.pass, nh ng ta s thêm nó:class ShowPasses extends HtmlReporter { function ShowPasses() { $this->HtmlReporter(); } function paintPass($message) { parent::paintPass($message); print "<span class=\"pass\">Pass</span>: "; $breadcrumb = $this->getTestList(); array_shift($breadcrumb); print implode("->", $breadcrumb); print "->$message<br />\n"; }function _getCss() {
return parent::_getCss(). '.pass { color: green; }'; }}
Ch ng 4 - Các công c h tr
Trang 98
Và bây gi khi th c thi l i, b n s th y ki u CSS ó khi b n vào trình duy t xem
ngu n c a trang k t qu ki m th :
All testsPass: log_test.php->Log class test->testappendingtofile->Expecting [/Test line 1/] in [Test line 1]Pass: log_test.php->Log class test->testappendingtofile->Expecting [/Test line 2/] in [Test line 2]Pass: log_test.php->Log class test->testcreatingnewfile->Created before messagePass: log_test.php->Log class test->testcreatingnewfile->File createdPass: clock_test.php->Clock class test->testclockadvance->AdvancementPass: clock_test.php->Clock class test->testclocktellstime->Now is the right time3/3 testcases complete. 6 passes and 0 fails.
4.4.2 Cunit testing [7]
4.4.2.1 Cách s d ng
Simplectest c thi t k dùng vào lúc b sung cho ng d ng. Nó cung
c p m t n n làm vi c n gi n cho vi c th c thi mã l nh, ki m tra xác nh n và t o
m t b n báo cáo k t thúc.
Khi ki m th , th vi n simplectest không c n thêm vào ng d ng cu i cùng,
và các test có th hoàn thành c l p v i n mã c a ng d ng.
B n s thêm dòng l nh sau vào các t p tin test:#include "simplectest/tests.h"
4.4.2.2 Cách t o testcase
File này có th t o b ng cách gõ tr c ti p trong th m c c a b n. N i dung file :
#include "tests.h"// B t u toàn b nhóm test suiteSTART_TESTS()// M t nhóm test m i: simpleSTART_TEST("simple") // Sau ó ta vi t các test mà ta mu n ki m tra ASSERT(1 == 1); ASSERT_EQUALS_FLOAT(1, 1);END_TEST()START_TEST("fail") // Các test này s sai, và ta s xu t chúng ra ngoài. ASSERT(1 == 0); ASSERT_EQUALS_FLOAT(1, 0); // Hãy miêu t test, tr c khi nó sai, // b n miêu t này s c in ra ngoài. TEST("we expect this test to fail. (3==2)"); ASSERT(3 == 2);END_TEST()// K t thúc toàn b nhóm test suiteEND_TESTS()
Ch ng 4 - Các công c h tr
Trang 99
Sau khi so n th o xong, b n l u t p tin này v i tên b t k , ví d “simple.c”.
Biên d ch, liên k t, và th c thi nó. Nó s ch y t t c các test và hi n th ra ngoài
d ng màn hình console:
$./simple> simple...> fail...[FAIL?] simple.c:21: (fail): 1 == 0 fails[FAIL?] simple.c:22: (fail): 1 is supposed to equal (float) 0 (0.000000 != 1.000000)[FAIL?] simple.c:26: (fail): we expect this test to fail. (3==2)
--- Results ---Tests run: 2Passes: 2Failures: 3
N n làm vi c c ng gi i h n vi c cung c p cho các nhóm các test.
4.4.2.3 Cách t o nhóm test(test suite)
Test suite là m t b n t ng h p dùng nhóm các test gi ng nhau vào chung m t
b , cho phép b n ki m th chúng nh m t nhóm (thay vì ph i ki m th t ng test
m t). Simplectest c gi i h n cung c p khái ni m c a các nhóm test suite.
so n th o u tiên t test suite vào t p tin c a nó. Ví d : test_suite.ccp
#include "test-suite.h"START_SUITE(mysuite)START_TEST("myTest") ... các mã test khác...END_TEST()... các b test khác...END_SUITE()
T o t p tin header cho test suite (test_suite.h)
ifndef _TESTS_SUITE_H#define _TESTS_SUITE_H// khai báo t p tin tests.h#include "tests.h"// khai báo tên m t nhóm, m t bDEFINE_SUITE(mysuite)#endif
Cu i cùng trong t p tin test chính (tests.cpp), thêm khai báo nhóm header và g i
th c thi nhóm test suite này:
Ch ng 4 - Các công c h tr
Trang 100
#include "tests.h"
#include "test-suite.h"
START_TESTS()// th c thi nhóm mysuiteSUITE(mysuite);END_TESTS()
Bây gi có th biên d ch t t c mã ngu n, liên k t các l p l i v i nhau, và v i m t
b test suite.
B n có th th c thi c l p t ng test m t b ng cách khai báo
TEST_INDIVIDUAL khi biên d ch nhóm. Ví d :
$ g++ test-suite.cpp -o test-suite.o -DTEST_INDIVIDUAL$ g++ test-suite.o -o test-suite$./test-suite
B n c ng có th ch n c u hình trong các nhóm test suite:
• B ng cách khai báo TESTS_BREAK_ON_L I, vi c th c thi test suite s
b d ng n u có b t c l i nào x y ra.
• B ng cách khai báo TESTS_EXIT_ON_L I, vi c th c thi hoàn toàn
ch ng trình s b d ng l i n u l i x y ra.ll)
4.4.3 JUnit Testing [8]
4.4.3.1 Cài t JUnit
• B n down load công c junit t i a ch : http://junit.org.
• B n ph i t o classespath s d ng các th vi n c a JUnit
• Gi i nén junit.zip.
• T o ng d n n t p tin junit.jar:
set CLASSPATH=%CLASSPATH%;%JUNIT_HOME%\junit.jar
• N u b n ang s d ng Jcreator Pro b n có th làm nh sau:
Vào confugeràoptionsàJDKProt p tins:
• Nh p vào phiên b n JDK mà ch ng trình ang s d ng
• Nh n nút Edit:
Ch ng 4 - Các công c h tr
Trang 101
• Ch n AddàAdd archive: Ch n ng n n t p tin junit.jar
4.4.3.2 Cách t o m t simpletest (t p tin: simpletest.java)
T o m t l p:1. package junitfaq;2. import org.junit.*;3. import static org.junit.Assert.*;4. import java.util.*;5. public class SimpleTest {6. // Vi t m t hàm test mà xác nh n các k t qu mong i trong i t ng:7. @Test8. public void testEmptyCollection() {9. Collection collection = new ArrayList();10. assertTrue(collection.isEmpty());11. }12. // N u b n ang ch y các test JUnit 4 v i công c ch y là JUnit3.x,13. // b n hãy vi t m t hàm suite() s d ng l p JUnit4TestAdapter 14. // t o m t nhóm ch a ng t t c các hàm test c a b n.15. public static junit.framework.Test suite() {16. return new junit.framework.JUnit4TestAdapter(SimpleTest.class);17. }18. // Hàm main() th c thi test:19. public static void main(String args[])20. {21. org.junit.runner.JUnitCore.main("junitfaq.SimpleTest");22. }23. }
Ch ng 4 - Các công c h tr
Trang 102
Th c thi test:
• ch y m t test b ng console gõ:
java org.junit.runner.JUnitCore junitfaq.SimpleTest
• th c thi m t test v i hàm th c thi c s d ng trong hàm main, gõ:
java junitfaq.SimpleTest
K t qu thành công c xu t ra:24. Time: 0
25. OK (1 tests)
4.4.3.3 S d ng m t test fixture
M t test fixture r t h u ích n u b n có 2 ho c nhi u test i v i m t t p các
i t ng. Vi c s d ng m t test fixture tránh l p l i các n code kh i t o các
i t ng.
Các test có th s d ng các i t ng trong m t test fixture, v i m i test g i
các hàm khác nhau c a các i t ng trong fixture và xác nh các k t qu mong
i khác nhau. M i test th c thi trong chính test fixture c a nó tách v i các test
khác t s thay i c t o ra b i các test khác. u ó có ngh a là các test không
chia s tình tr ng các i t ng trong test fixture b i vì các test c phân tách,
chúng có th c ch y v i b t c trình t nào.
t o m t test fixture, a các thu c tính chung vào m t hàm public void
c di n gi i v i @Before. JUnit framework s t ng g i t t c các ph ng th c
@Before tr c m i test c ch y.
Ví d d i ây trình bày môt test fixture v i m t i t ng Collection.
package junitfaq; import org.junit.*; import static org.junit.Assert.*; import java.util.*; public class SimpleTest { private Collection<Object> collection; @Before public void setUp() { collection = new ArrayList<Object>(); }
Ch ng 4 - Các công c h tr
Trang 103
@Test public void testEmptyCollection() { assertTrue(collection.isEmpty()); } @Test public void testOneItemCollection() { collection.add("itemA"); assertEquals(1, collection.size()); } }
K t qu , các hàm s th c thi theo th t :
setUp()testEmptyCollection()setUp()testOneItemCollection()
B n s th y làm nh v y viêc g i các hàm không an toàn b i vì
testOneItemColecation() có th c th c thi tr c testEmptyCollection(). Nh ng
i u ó không có v n gì b i vì m i hàm u c kh i t o v i i t ng
collection riêng c a nó.
M c dù JUnit cung c p m t tr ng h p m i c a các i t ng fixture cho
m i hàm test, n u b n phân nh b t c tài nguyên bên ngoài nào trong m t ph ng
th c @Before, b n nên gi i phóng chúng sau m test c ch y b ng cách vi t m t
ph ng th c v i @After. JUnit framework t ng g i b t c m t hàm nào sau m i
test c ch y.Ví d :
package junitfaq; import org.junit.*; import static org.junit.Assert.*; import java.io.*; public class OutputTest { private T p tin output; @Before public void createOutputT p tin() { output = new T p tin(...); } @After public void deleteOutputT p tin() { output.delete(); } @Test public void testSomethingWithT p tin() { ... } }
Ch ng 4 - Các công c h tr
Trang 104
Th t các ph ng th c s c th c thi theo th t :
createOutputT p tin()testSomethingWithT p tin()deleteOutputT p tin()
4.4.3.4 Làm th nào test m t ph ng th c mà không tr v b t c cái gì?
Thông th ng n u m t ph ng th c không tr v m t giá tr , nó s có m t
vài m t hi u qu . Th c t , n u nó không tr v m t giá tr va fkông có m t nh
ng n m t m t nòa c thì nó không làm gì c .
Có m t cách ki m ch ng r ng m t tác ng gi ng nh mong i. Ví d ,
chú ý n ph ng th c add() trong l p Collection. Có nhi u cách ki m ch ng
r ng m t tác ng ã x y ra ( ví d : i t ng ã c thêm vào). B n có th ki m
kích th c xác nh r ng ó là nh ng gì ta mong i:
@Test public void testCollectionAdd() { Collection collection = new ArrayList(); assertEquals(0, collection.size()); collection.add("itemA"); assertEquals(1, collection.size()); collection.add("itemB"); assertEquals(2, collection.size()); }
4.4.3.5 Ví d v test Money
C ng trình chúng ta vi t s làm sáng t v n v m t s lo i ti n t .
Thu t toán v m t lo i ti n t thì quá n gi n, b n có th c ng hai s l ng thì n
gi n ch là c ng 2 con s v i nhau.
Nh ng v n s khó h n n u làm vi c v i nhi u lo i ti n t . B n không th
chuy n i lo i ti n t này thành lo i khác n thu n nh chuy n i s h c b i vì
b n c n so sánh hai giá tr c a t l danh m c v n u t ngày hôm qua và ngày
hôm nay.
Chúng ta b t u v i vi c nh ngh a m t l p Money mô t các thuôc tính
c a m t lo i ti n t .
class Money { private int fAmount; private String fCurrency; public Money(int amount, String currency) {
Ch ng 4 - Các công c h tr
Trang 105
fAmount= amount; fCurrency= currency; } public int amount() { return fAmount; } public String currency() { return fCurrency; }}
C ng 2 s ti n:public Money add(Money m) { return new Money(amount()+m.amount(), currency());}// T o các testcase trong l p MoneyTestpublic class MoneyTest extends TestCase { //… public void testSimpleAdd() { Money m12CHF= new Money(12, "CHF"); // (1) Money m14CHF= new Money(14, "CHF"); Money expected= new Money(26, "CHF"); Money result= m12CHF.add(m14CHF); // (2) Assert.assertTrue(expected.equals(result)); // (3) }}
Testcase testSimpleAdd() bao g m:
1. T o các i t ng mà chúng ta s d ng trong quá trình test.
2. Vi t code cho vi c s d ng các i t ng trong fixture.
3. Ki m tra k t qu .
Tr c khi b n ki m tra k t qu b n ph i viêt hàm ki m tra 2 s ti n là b ng
nhau:
public void testEquals() { Money m12CHF= new Money(12, "CHF"); Money m14CHF= new Money(14, "CHF"); Assert.assertTrue(!m12CHF.equals(null)); Assert.assertEquals(m12CHF, m12CHF);Assert.assertEquals(m12CHF, new Money(12, "CHF")); // (1)
Assert.assertTrue(!m12CHF.equals(m14CHF));}
Ch ng 4 - Các công c h tr
Trang 106
Hàm equals tr v true khi hai i t ng là t ng ng nhau. Tuy nhiên, Money là
2 i t ng giá tr . Vì v y chúng c g i là b ng nhau n u chúng cùng lo i và
cùng giá tr . Trong test này chúng ta ch c n so sánh 2 giá tr vi v y chúng ta có
test(1) so sánh hai giá tr ch không ph i hai i t ng.
K ti p chúng ta vi t hàm equals cho i t ng Money:
public boolean equals(Object anObject) { if (anObject instanceof Money) { Money aMoney= (Money)anObject; return aMoney.currency().equals(currency()) && amount() == aMoney.amount(); } return false;}Chúng ta th y trong c 2 testcase v a t o chúng ta u ph i kh i t o ra tr cho các
i t ng. T i sao chúng ta không vi t m t hàm kh i t o có th dùng l i? Hàm
setUp() chính là câu tr l i cho u ó.
public class MoneyTest extends TestCase { private Money f12CHF; private Money f14CHF; protected void setUp() { f12CHF= new Money(12, "CHF"); f14CHF= new Money(14, "CHF"); }}Nh v y trong m i testcase chúng ta không c n ph i kh i t o chúng n a:
public void testEquals() { Assert.assertTrue(!f12CHF.equals(null)); Assert.assertEquals(f12CHF, f12CHF); Assert.assertEquals(f12CHF, new Money(12, "CHF")); Assert.assertTrue(!f12CHF.equals(f14CHF));}public void testSimpleAdd() { Money expected= new Money(26, "CHF"); Money result= f12CHF.add(f14CHF); Assert.assertTrue(expected.equals(result));}Hai b c c n thi t ch y các testcase:
1. nh ngh a m t testcase riêng l c ch y nh th nào.
2. nh ngh a ch y m t test suite nh th nào.
th c thi m t testcase riêng l b n dùng:
Ch ng 4 - Các công c h tr
Trang 107
TestCase test= new MoneyTest("simple add") { public void runTest() { testSimpleAdd(); }}
k t h p ch y các testcase cùng th c thi, chúng ta nh ngh a m t test suite:
public static Test suite() { TestSuite suite= new TestSuite(); suite.addTest(new MoneyTest("testEquals")); suite.addTest(new MoneyTest("testSimpleAdd")); return suite;}Bây gi chúng ta ã s n sàng th c thi các test. JUnit có giao di n h a th c
thi test. B n ch c n gõ tên c a l p test nh hình v và nh n nút Run. Trong khi test
c th c thi JUnit hi n th ti n trình th c hi n nh mô t :
Hình 4-5 Giao di n h a ng i dùng JUnit testing
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 108
Ch ng 5 Phát tri n công c qu n lý ki m th
5.1 Gi i thi u công c RTH
Trong RTH: Testsuite t ng ng v i testcase (tr ng h p test).
Testset: Là m t t p các testsuite.
Các ch c n ng chính:5.1.1.1 Requirement Yêu c u
RTH qu n lý yêu c u theo phiên b n, trong m i yêu c u có th g m nhi u yêu
c u con.
Các ch c n ng chính:
1. Thêm yêu c u m i: Bao g m các thông tin:• Tên yêu c u.• Thông tin chi ti t v yêu c u: Ng i dùng có th nhâp tr c ti p
ho c nh p t file.• Lý do thay i• Phiên b n• Lo i tài li u: c t ch c n ng, c t k thu t, c t các tr ng
h p s d ng.• Tr ng thái: M i, ã c phê duy t, ã c ch p nh n, không
c ch p nh n.• Vùng (Yêu c u trong vùng nào): V l i, v các test,….• u tiên: Th p, trung bình, cao.• Ng i th c hi n.• Ch c n ng c a yêu c u.
2. C p nh t thông tin v yêu c u.
3. Thêm phiên b n m i cho yêu c u.
4. T o các yêu c u con.
5. Tìm ki m yêu c u.
6. Xóa yêu c u: Khi xóa yêu thì các yêu c u con c a nó s không b xóa.
5.1.1.2 Release S n ph m
M i release là m t phiên b n c a project.
Các ch c n ng chính:
1. Thêm release m i, bao g m các thông tin:
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 109
• Tên release.• Mô t v release.
2. C p nh t thông tin v release:• Tên release.• Mô t v release.• Ngày nh n.
3. C p nh t tình tr ng cho release:• c ch p nh n• Không c ch p nh n.• S n sàng cung c p.
4. Xóa release: Khi b n xóa release thì toàn b build thu c v release ó
c ng u b xóa.
5. Thêm các build vào release.
5.1.1.3 Build Thành ph n c a release
M i build thu c v m t release. M i build s có testplan (k ho ch test) và nhi u
testset.
Các ch c n ng chính:
1. Thêm m t build m i, ng i dùng s nh p vào các thông tin:• Tên build.• Mô t v build.
2. C p nh t thông tin v build:• Tên build.• Mô t v build.• Ngày nh n.
3. Xóa build: Khi b n xóa m t build thì toàn b testset và testplan thu c v
build ó s b xóa.
4. Thêm các testset vào build
5. T o k ho ch test cho build (Plan), bao g m các thông tin:
• Tên plan: tên file c upload: File này s ch a các thông tin v
k ho ch test.
• Ghi chú v plan (comments)
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 110
5.1.1.4 Testset T p các testsuite
M i testset thu c v m t build. Trong m i testset s bao g m nhi u testsuite.
Các ch c n ng chính:
1. Thêm m t testset m i, g m các thông tin:
• Tên testset.
• Mô t v testset.
2. C p nh t thông tin v testset
• Tên testset.
• Ngày nh n
• Mô t .
3. Xóa testset: Khi b n xóa testset thì t t c các m i liên h gi a
testset_testsuite_assoc u b xóa.
4. Thêm vào testset các testsuite ho c xóa các testsuite trong testset ó.
5. Copy các testsuite c a testset khác.
5.1.1.5 Testsuite Tr ng h p test
Các testsuite là chung cho c project. Sau t o testset b n s ch n các testsuite c n
thi t trong danh sách các testsuite c a project vào testset ó. M i testsuite có th
thu c nhi u testset.
Trong m i testsuite s bao g m các b c test (teststep), m i b c test có k t qu
mong i.
Các ch c n ng:
1. Thêm m t testsuite m i, g m các thông tin:
• Tên test.• M c ích.• Ghi chú.• Tr ng thái.• u tiên.• Vùng test.• Ng i qu n lý thi t k .• Ng i qu n lý ch t l ng.
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 111
• Ng i ki m (tester).• Ng i ch i trách nhi m.• Ng i phân công.• Ngày phân công.• Ngày k t thúc d ki n.• Ngày hoàn t t.• Ngày c p nh t g n nh t.• Th i gian.• T ng úng.• Test th công.• Test t ng.• Load t Winrunner: Ch a th c hi n.
2. C p nh t thông tin v testsuite.
3. Xóa test: Khi b n xóa test thì toàn b các b c test thu c v test ó và
các testset_testsuite assoc u b xóa.
4. Thêm các b c test, g m các thông tin:
• Hành ng th c hi n.
• D li u u vào.
• K t qu mong i.
B n c ng có th c p nh t thông tin v b c test hay xóa b c test.
5.1.1.6 Results K t qu test
Tester ti n hành test cho t ng testsuite trong m i testset c a m i build:
• i v i test th c hi n b ng tay, b n ch n ch c n ng run test c p nh t
k t qu cho t ng b c test và k t qu chung cho test ó. Sau m i l n có
s thay i b n ti n hành th c thi l i test này. T t c các k t qu s th c
thi u c l u l i.
• i v i các test th c hi n t ng s không có ch c n ng run test mà b n
ch có th c p nh t k t qu chung cho test ó.
• i v i m i k t qu b n ch n ch c n ng view result xem k t qu chi
ti t c a t ng b c test.
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 112
5.1.1.7 Defects L i
Sau khi ã ti n hành ki m th ng i s d ng s c p nh t l i cho release (L i này
c tìm th y trong release nào?).
Các ch c n ng:
1. Thêm defect, b n nh p vào các thông tin:
• Lo i l i.
• Giai o n.
• Thành ph n.
• u tiên.
• b o m t
• Xu t hi n trong release.
• Liên k t v i release.
• Ng i s d ng.
• Phát tri n viên.
• Tóm t t.
• Mô t v l i.
2. C p nh t thông tin v defect
3. Xóa defect.
4. Tìm ki m defect.
5.1.1.8 Reporting Thông báo
B n vào ây xem các thông tin v :
Tên b n báo cáo B n mô t
Vùng TestCh n Release > Build > TestSet xem s l ng Tests c th c
thi b i vùng Test.
Tr ng thái Build Ch n Release > Build xem tr ng thái c a m i Test.
Nh ng ki m tra b l i Ch n Release > Build > TestSet xem thông tin chi ti t trên t t c
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 113
ki m tra b l i.
c bao ph yêu
u
Xem m c bao ph yêu c u b ng cách ch n Release > Build >
TestSet
Test xong Xem thông tin Test b ng cách ch n Release > Build > TestSet.
5.1.1.9 Manage Qu n lý
Ng i qu n lý có quy n
• Thêm project m i, ch nh s a thông tin và xóa project.
• Thêm ng i s d ng m i, c p nh t thông tin v ng i s d ng và xóa
thông tin v ng i s d ng.
• Phân quy n cho ng i s d ng. Tuy nhiên c ng trình ch a qu n lý
ch t ch các quy n c thao tác c a ng i s d ng. M t ng i s
d ng có th làm vi c trong nhi u vai trò khác nhau trong d án.
• Thêm, xóa, s a các thông tin liên quan n yêu c u:
• Vùng ph yêu c u.
• Lo i tài li u yêu c u.
• Ch c n ng c a yêu c u.
• Thêm, xóa, s a các thông tin liên quan n test:
• Vùng test.
• Lo i tài li u test.
• Môi tr ng test.
• Lo i máy test.
• Lo i test.
• Thêm, xóa s a các thông tin liên quan n l i:
• Lo i l i.
• Thành ph n có th b l i.
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 114
5.2 Lý do ch n công c RTH
RTH qu n lý t ng i y và chi ti t các thông tin trong ti n trình ki m
th . Có r t nhi u ti n ích h tr ng i s d ng.
RTH là công c mã ngu n m do ó chúng ta có th s d ng mi n phí.
Trong các công c qu n lý ki m th hi n nay RTH là công c c s d ng
nhi u nh t m c dù còn m t s h n ch nh :
• ch a phân quy n m t cách rõ ràng
• Nhìn vào ch ng trình ng i dùng không th y c quy trình th c hi n.
• Ch a k t h p c v i test t ng winrunner,…
5.3 Phát tri n công c RTH
Phát tri n m i:
1. Trong RTH testsuite (testcase) là chung cho project, sau khi t o testset (là
m t t p các testsuite) ng i s d ng s c p nh t các testsuite vào testset này t danh
sách testsuite c a project. M i liên h gi a testset và testsuite thông qua i t ng
testsuite_testset_assoc. Nh v y m t testsuite có th trong nhi u testset c a nhi u
build khác nhau. Qua tìm hi u v công c này chúng ta bi t r ng, trong m i testsuite
s bao g m nhi u b c test (teststep), m i b c test có d li u u vào và d li u
u ra mong i.
Bây gi chúng ta th ví d m t testsuite: test1 ( test d li u u vào). Test1
thu c v testset1 c a build1, testset1 c a build2 và testset1 c a build3. Nh v y khi
th c thi tester ch test v i cùng d li u u vào và d li u u ra mong i cho c
build1, build2 và build3. Trên th c t d li u test c ng nh k t qu mong i ph
thu c vào t ng build.
à Chúng tôi phát tri n RTH v i h ng ti p c n v v n này nh sau:
• Testsuite là riêng cho t ng testset. M t testset i di n cho m t lo i test:
function, stress, domain, scenario,… ( ây c ng chính là tên c a testset)
• T t c các testsuite trong m t testset u thu c cùng m t lo i test mà
testset ó i di n.
• Qui trình th c hi n:
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 115
2. Hi n th d ng cây TreeView:
RTH: Khi m i s d ng RTH, ng i dùng khó mà hình dung c qui
trình làm vi c c a công c này.
Phát tri n: h tr ng i dùng d dàng nh n ra qui trình làm vi c,
th t các công vi c c n th c hi n, chúng tôi phát tri n cách hi n th theo
d ng cây giúp ng i dùng theo dõi m t cách tr c quan h n. N u b n là
tester, khi b n vào m c c p nh t k t qu test (result). Mô hình cây s ch hi n
th nh ng test nào c phân cho b n, h n n a b n còn th y c tình tr ng
test: ch a b t u, pass, fail,….
3. Ch n ngôn ng hi n th :
RTH: ch s d ng ngôn ng hi n th là ti ng Anh.
Phát tri n: h tr ng i dùng t ch n ngôn ng hi n th : ti ng Anh
ho c ti ng Vi t. Trong t ng lai có th phát tri n thêm các ngôn ng khác.
4. Ch n giao di n:
RTH: ch có m t giao di n.
Phát tri n: nhi u giao di n khác nhau. Cho phép ng i dùng ch n giao
di n mà h thích: Giao di n lo i1, lo i 2, lo i 3,…
5. T o template_testcase (testcase m u):
RTH: không h tr t o các testcase m u.
Phát tri n: Testcase m u là testcase có th dùng trong nhi u project.
Ví d :
+ Ki m th ng nh p
+ Ki m th qu n lý cookie
+ Ki m th qu n lý session…
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 116
N u nhi u project có chung nh ng ph n c n ki m th , thì ta có th t o
testcase m u ph n ó. Vi c t o testcase m u ph thu c vào kinh nghi m
ng i ki m th . N u h th y project nào c ng c n test này, thì h s vào
m c [Template testcase] và t o nó. Khi t o testset cho project, h có th
thêm các testcase m u vào.
6. Phân quy n:
RTH: ch phân quy n và ph m vi ho t ng cho project manager,
ch a phân ph m vi ho t ng cho tester, developer, customer…
Phát tri n: phân quy n cho m i ng i s d ng, m i ng i ch c
thao tác v i các vai trò ã c phân công trong project.
7. H tr ng i dùng t o TestPlan tr c ti p trong công c
RTH: testplan ch c upload t file
Phát tri n: cho phép ng i dùng có th nh p thông tin v testplan tr c
ti p, ho c upload t file.
8. Trong RTH sau khi t o project m i, project này ch a c c p nh t trong
m c switch project (m c ch n l a project thao tác). Do ó chúng ta không
thao tác c vào project m i t o. u này ã c chúng tôi kh c ph c.
9. Ki m tra textbox r ng v i javascript i v i các thông tin b t bu c nh p,
theo mô hình client- server, thao tác ki m tra xem ng i nh p có b sót thông tin
nào không nên phía client.
10. K t h p RTH v i winrunner _công c ki m th ph n m m t ng,
nh ng m i ch áp d ng c cho m ng LAN.
Ch ng 5 - Phát tri n công c qu n lý ki m th
Trang 117
5.4 M t vài giao di n
Hình 5-1 Giao di n TreeView tr c quan h n
Hình 5-2 Màn hình t o Template Testcase
B n có th xem thêm các giao di n khác Ch ng 6 ph n th nghi m RTH
Ch ng 6 - Th nghi m
Trang 118
Ch ng 6 Th nghi m
6.1 Th nghi m v i các lo i test
6.1.1 OraclesChúng ta ti n hành ki m th ch c n ng c t và dán v n b n trong Office
Suites. ây chúng ta s dùng Microsoft Office làm v t m u.
Ta s tìm th y s khác nhau trong vi c c t và dán v n b n. Trong trình so n
th o word c a Microsoft Office, ng i dùng có th copy m t n v n b n, và t o
các t p tin có dung l ng r t l n b ng cách paste các o n v n b n. Còn trong
Office Suites, b n không th t o m t t p tin ch a quá 65,535 ký t .
6.1.1.1 Thi t k test
V i Oracles, ta so sánh ho t ng c a ch ng trình ang ki m v i ng d ng m u.
M t trong nh ng nghi p v thông th ng khi ki m th m t ng d ng là xem
t ng quát các ch c n ng c a ch ng trình. Xem nó làm t t ph n nào, còn d ph n
nào, ph n ch a n nh.
Ng i ki m th xem t ng quát ng d ng và ánh giá: ây có ph i là nguyên
nhân gây ra ho t ng ó? úng hay sai?
Office Suites là ng d ng c nh tranh v i Microsoft Office. Vì v y nên dùng
Microsoft Office làm v t o cho Office Suites.
6.1.1.2 Các b c test
1. Ta dùng Open OpenOffice.org Writer và Microsoft Word.
2. Trong Writer, gõ các dòng ký t 'a'.
3. Tô en r i nh n Ctrl-C (Copy), sau ó nh n Ctrl-V (Paste).
4. L p l i b c 3 nhi u l n dán th t nhi u cho n khi ng d ng không
còn nh n các ký t ó.à ng d ng Writer s d ng nh n các ký t khi
t i trang 18.
5. Trong ng d ng Word c ng làm các b c t ng t trên.à Nh ng nó s
không d ng nh n các ký t .
Ch ng 6 - Th nghi m
Trang 119
6.1.1.3 K t qu
Hình 6-1 Th nghi m th c t v i Oracles testing
OpenOffice.org Writer ch nh n 65,535 ký t (kho ng 18 trang v i c ch 12
Times New Roman). Khi t i gi i h n 65,535, ta s không th dán hay gõ thêm b t
c ký t nào, và ng d ng không h thông báo. u này s làm cho ng i dùng
m t d li u khi c t/ dán mà có th h không h hay bi t.
Ch ng 6 - Th nghi m
Trang 120
V i ng d ng Word, chúng ta c t / dán tho i mái, không có gi i h n s
ng ký t .
Vi c này có liên quan gì n Oracles-based testing? M i ng i th ng vi t
v Oracles nh test t ng cung c p cho các công c . Nh ng th m chí trong m t
cu c kh o sát nh , Oracles có th là ph n b sung h u ích cho các tài li u và các
b n chi ti t, ho c là v t thay th cho nh ng tài li u khi chúng không dùng c.
6.1.2 Domain testing
6.1.2.1 Tóm t t
Trong m c So n th o các thi t l p l p h c trong Moodle, chúng ta ph i
nh p ngày b t u l p h c. Ngày b t u ph i là ngày h p lý, có ngh a ngày b t u
không th là ngày không có trong th c t , ví d ngày 31/02. Trong test này chúng ta
s ki m tra vi c thi t l p ngày b t u l p h c b ng cách nh p ngày tháng không
h p lý.
6.1.2.2 Th c hi n
1. Ch n m t l p h c
2. Vào m c So n th o các thi t l p l p h c
3. Ch n m c nh p ngày b t u l p h c
4. Nh p ngày b t u là ngày: 31/02/2006
5. Nh n nút “ L u nh ng thay
Ch ng 6 - Th nghi m
Trang 121
6. Vi c c p nh t thành công. Bây gi chúng ta s tr l i m c So n th o các
thi t l p l p h c và xem vi c c p nh t ngày b t u l p h c có c c p
nh t nh nh ng gì chúng ta v a nh p hay không?
Hình 6-2 Th nghi m th c t v i Domain testing
7. K t qu : Ngày b t u h c ã c t ng chuy n thành ngày
03/03/2006.
àNh v y ch ng trình ã không h thông báo v vi c nh p không úng ngày
tháng mà l i t ng c p nh t ngày sang tháng khác.
6.1.3 Function testing6.1.3.1 L i trong trang Enviroment c a Moodle
6.1.3.1.1 Tóm t t
Ch c n ng này cho phép admin c quy n ch nh s a, so n th o môi tr ng
cho Moodle.
6.1.3.1.2 Th c thi
c 1: Vào trang Moodle v i quy n admin.
c 2: Ch n [Admin]:
Ch ng 6 - Th nghi m
Trang 122
c 3: Ch n [environment]:
Hình 6-3 Th nghi m th c t 1 v i Function testing
6.1.3.1.3 K t quHi n thông báo l i:
Cho bi t là không m c t p tin environmentlib.php, có th ch c n ng này
ch a c làm, và có th s c hoàn t t trong các phiên b n sau, nh ng v i phiên
b n này thì xem nh là ã có l i, và ây là d ng l i ch c n ng.
6.1.3.2 L i trang login v i ngôn ng Eesti/et c a Moodle phiên b n 1.5.36.1.3.2.1 Tóm t t
Trong trang Login có l i: khi ch n ngôn ng s d ng là Eesti/et thì trang
Login này s hi n th thông báo l i.
6.1.3.2.2 Th c thi
1. Vào trang login: …\moodle\login\index.php
2. Ch n ngôn ng Eesti/et
6.1.3.2.3 K t qu
Thông báo l i:
Ch ng 6 - Th nghi m
Trang 123
6.1.3.3 L i ch c n ng Calendar trong phiên b n 1.6 beta5 c a Moodle ngày04 MAY 2006.
Khi b n ch n ch c n ng Calendar:
Hình 6-4 Th nghi m th c t v i Function testing
Có 2 l i sau:
1. Nh n vào icon Previous month ho c Next month thì s c thông báo
l i: “URL not found”.
2. Nh n vào icon User events thì hi n thông báo l i: “Must specify course
id, short name or idnumber”.
6.1.4 Combination testing6.1.4.1 Tóm t t
Trong ph n so n th o n i dung ch th o lu n trong Moodle. Ch c n ng
“xóa b hành ng g n ây nh t c a b và Làm l i hành ng cu i cùng
c a b . Chúng ta s ti n hành ki m th k t h p hai thu c tính này.
6.1.4.2 Th c hi n
1. M Moodle và vào: Di n ànà di n àn tin t cà Thêm m t ch
m i
Ch ng 6 - Th nghi m
Trang 124
2. Vào m c so n th o n i dung ch
3. Gõ m t vài ký t
4 Ch n ch c n ng xóa b hành ng g n ây nh t c a b
5 Bây gi ch n ch c n ng “Làm l i hành ng cu i cùng c a b :
Hình 6-5 Th nghi m th c t v i Combination testing
Chúng ta ngh r ng ch n ch c n ng “xóa b hành ng g n ây nh t c a
b r i ch n ch c n ng Làm l i hành ng cu i cùng c a b thì n i dung
n b n s tr l i nh c , nh ng th c t l i không úng nh v y.
Ch ng 6 - Th nghi m
Trang 125
6.1.5 Regressiont testing6.1.5.1 Tóm t t
WinAmp s d ng m t th ID3 cho phép ng i s d ng có th thêm tiêu ,
ca s , album và các thông tin khác v bài hát. Tuy nhiên n u ng i s d ng nh p d
li u quá nhi u (ví d : nh p tiêu bài hát quá dài) thì ch ng trình s b tràn b
nh , l i này xu t hi n trong phiên b n 2, nh ng n phiên b n 5 l i này ã c s a
ch a. Chúng ta s dùng ki m th h i quy kiêm tra l i này cho phiên b n 5.
WinAmp v2.79 WinAmp v5.03
Hình 6-6 WinAmp phiên b n 2. 79 & phiên b n 5.03
6.1.5.2 Th c thi1. M m t bài hát b ng WinAmp v5.03.
2. Vào ID3 tag
Ch ng 6 - Th nghi m
Trang 126
Hình 6-7 C p nh t thông tin v bài hát trong Winamp.
3. Chúng ta s nh p vào m c nh p title kho ng 30,000 ký t sau ó coppy
chu i ó vào m c nh p artist.
4. Nh n Update.
5. Ch n bài hát v a c c p nh t và nh n nút Play chúng ta s th y b i hát
c m bình th ng.
6. Nh n nút Play nhi u l n
7. Nh n vào m c View trên thanh menu ta th y:
Ch ng 6 - Th nghi m
Trang 127
Hình 6-8 L i trong Winamp v5.03 v i Regression testing
6.1.5.3 K t qu
Nh v y c m i l n nh n Play nó l i thêm b n sao m c ch n vào menu nh
hình trên. Trong khi c ng v i test trên chúng ta th c hi n v i phiên b n 2.97 thì
ch ng trình thông báo l i tràn buffer ngay khi ta m l i bài hát v a c p nh tà L i
c ã c s a ch a nh ng l i làm phát sinh l i m i.
Ch ng 6 - Th nghi m
Trang 128
6.1.6 Risk-based testingL i ng nh p vào l p h c nh m t thành viên c a l p
6.1.6.1 Tóm t t
Ch c n ng này cho phép sinh viên c a l p ng nh p vào l p h c mình ng
ký nh m t thành viên c a l p. Sau khi ng nh p thành công sinh viên có quy n
xem các thông tin v l p h c, download tài li u và post thông tin.
6.1.6.2 Ti n hành
ng nh p vào trang web môn h c. Màn hình s hi n th các danh m c l p h c.
• B n ch n m t môn h c mà mình không ng ký h c. ây tôi ch n môn
chuyên Linux( Tôi không ng ký h c môn này)
• H th ng h i b n ng nh p nh m t thành viên c a l p hay nh khách:
• B n ch n “có”.
Ch ng 6 - Th nghi m
Trang 129
6.1.6.3 k t quTrang web môn h c Linux hi n lên. Trong m c “l p h c c a tôi môn h c
này ã c c p nh t:
Ch n “Danh sách l p”. B n s th y b n ã tr thành m t thành viên c a l p.
Hình 6-9 Th nghi m th c t v i Risk-based testing
Nh v y khi ng nh p vào l p h c ch ng trình không h ki m tra sinh
viên ó có th c s là h c sinh c a l p ó hay không.
Ch ng 6 - Th nghi m
Trang 130
6.1.7 Scenario testing6.1.7.1 Ví d Internet Explorer không hi n th t p tin PDF trong khi t p tin
Adobe Reader hi n h u
Trong ví d này chúng ta s ti n hành ki m th k ch b n trong Internet
Explorer. Chúng ta s óng vai trò nh m t ng i s d ng mu n xem m t t p tin
PDF trên Internet.
Hãy t ng t ng r ng có m t ai ó tên John, anh ta ang th t o m t trang
web c a riêng mình. Anh ta có m t t p tin theo nh d ng PDF ch a các thông tin
v lý l ch c a anh ta, và anh ta mu n t o m t liên k t n t p tin này t trang web
c a mình.
Anh ta hy v ng r ng nh ng ng i n th m trang web này có th nh n vào
liên k t và c c nh ng thông tin trên ó.
• u tiên chúng ta s t p tin PDF và HTML vào cùng m t th m c
• Sau ó chúng ta s hi u ch nh t p tin HTML m t tham chi u n t p tin
PDF.
Hình 6-10 Th nghi m th c t v i Scenario testing
• Chúng ta s th m t trang web trên Internet Explorer và nh ng trình
duy t khác. Khi chúng ta m t p tin HTML s xu t hi n m t cái link, và
khi ta nh n vào link này ki m tra t p tin PDF có hi n th úng
Ch ng 6 - Th nghi m
Trang 131
• Internet Explorer hi n th úng a ch nh ng không có thông tin nào
c hi n th .
• Vào View->source s l i ng d n là John thay vì John’s_CV.pdf.
B i vì d u nháy nh là m t ký t k t thúc i v i Internet Explorer.
Ch ng 6 - Th nghi m
Trang 132
6.1.7.2 Ví d v hình nh b s a i trong Paint.
6.1.7.2.1 Tóm t tKhi chúng ta l u m t t p tin trong c a Microsoft, ng i s d ng có th gõ
vào ph n m r ng c a t p tin mà h mu n. Tuy nhiên, t p tin s b l i n u ph n m
r ng không t ng thích v i ph n m r ng c a t p tin.
Micrsoft Paint là m t ch ng trình v và so n th o hình nh c n b n v i h
v i hên i u hành windows. Microsoft mô t Paint: “M t công c v b n có th s
d ng t o nh ng hình v mà b n có th l u v i nh d ng t p tin.bmp. B n còn có
th s d ng Paint g i hình v c a b n trong Email, t o hình nh gi ng nh màn
hình n n c a desktop và l u nh ng t p tin hình nh v i nhi u nh d ng khác
nhau.”
6.1.7.2.2 Ti n hành
• Chúng ta s m Paint và v m t vài ng nh hình v :
• Bây gi chúng ta s l u hình v này theo nh d ng.jpg ch không
ph i theo nh d ng.bmp.
Ch ng 6 - Th nghi m
Trang 133
• Bây gi chúng ta m l i hình nh v a l u th y không có v n gì
nh ng hãy vào Properties c a nó và hãy ý n thu c tính size.
• Kích th c này quá l n so v i m t hình nh ch n gi n nh v y
theo nh d ng JPG ( ch kho ng 10-15 Kb), kích th c này t ng
ng v i nh d ng bitmap.
• M ch ng trình:Macromedia Dreamweaver, ch ng trình này cho
phép nh v hình nh trên trang web
• Chúng ta ch n Insert hình nh v a t o
6.1.7.2.3 K t quThay vì hi n th hình nh trang web hi n ra m t thông báol i:
Ch ng 6 - Th nghi m
Trang 134
L i này r t d gây s hi u l m b i mãi n khi chúng ta a hình nh này
vào m t ch ng trình khác, chúng ta s không th bi t tr c c c u trúc t p tin b
l i. Không h có m t l i c nh báo nào v vi c b n ã l u t p tin không úng, không
có m t l i nào trong su t quá trình l u t p tin và c ng không có m t l i nào trong
Properties c a t p tin ngoài tr kích c c a t p tin quá l n so v i nh d ng c a nó.
Nh ng l i nh th này s không th phát hi n n u chúng ta không làm th nghi m.
6.1.8 User testing
6.1.8.1 Tóm t tMoodle cho phép giáo viên phân nhóm sinh viên. H th ng s hi n th danh
sách sinh viên c a l p, giáo viên t o nhóm và Add các sinh viên vào nhóm.
6.1.8.2 Th c hi n
1. ng nh p vào m t l p h c v i quy n giáo viên ho c qu n tr viên.
2. Ch n ch c n ng Các nhóm
Hình 6-11 Th nghi m th c t v i User testing
Ch ng 6 - Th nghi m
Trang 135
Chúng ta nh n th y m t u r ng danh sách sinh viên ch hi n th tên s r t khócho giáo viên trong vi c phân chia nhóm vì các sinh viên có th trùng tên. Danhsách sinh viên nên c hi n th c mã s sinh viên
6.1.9 Stress testingL i Print Preview khi không cài t máy in trong Fire Fox:
Tr c khi in m t trang t Internet trong Mozilla FireFox, b n c n có m t
ch ng trình hi n th “print preview”, m t ch ng trình mà hi n th nh ng gì s in.
Tuy nhiên n u máy in không c cài t, Fire Fox s g p ph i m t l i th c hi n in
th . Thông báo l i. Trong Mozilla FireFox, khi ta in m t trang t Internet, n u ch a
cài t máy in, mình nh n nút Print in, ch ng trình thông báo không in ra c,
mình óng ng d ng l i thì ch c n ng print ko t t và ti p t c l i.
6.1.10 Exploratory testing
Chúng ta ti n hành ki m th th m dò ti n ích trong Paint
6.1.10.1 Tóm t t
Microsoft Paint là m t ch ng trình v c b n và ch nh s a m t b c tranh c
cung c p cùng v i h u hành Windows. Microsoft mô t Paint nh là “ m t công
c v mà b n có th s d ng t o t o b c v v i nhi u màu và b n có th l u
chúng thành m t t p tin bitmap (.bmp). B n c ng có th s d ng Paint g i b c
v c a b n qua Email, t o hình nh trên màn hình Desktop, và l u thành t p tin v i
nhi u nh d ng khác.”
6.1.10.2 Th c hi n
1. M ch ng trình Microsoft Paint
2. u tiên chúng ta hãy nhìn toàn b giao di n ng i dùng m t cách t ng quát.
Chúng ta mu n t o ra nh ng ghi chú trong nh ng ph n chúng ta thích ho c
không thích, nh ng gì chúng ta có th thay i, nh ng ph m vi mà có th
ch a l i, và xa h n là nh ng test. Nh ng ghi chú nh v y s giúp chúng ta
khi v th c hi n vi c ki m th m t cách hi u qu h n trong ng d ng.
3. Chúng ta hãy ki m tra trang web c a Microsoft. Chúng ta có th nhìn toàn b
nh ng tài li u, c v nh ng c tính kém rõ ràng, và nh n th c v b t c k t
qu nào có th có v Paint.
Ch ng 6 - Th nghi m
Trang 136
4. Ta ghi chú l i các thu c tính cài t ban u c a Paint. Chúng ta s so sánh
nh ng thu c tính ó sau khi th c hi n nh ng thay i:
Hình 6-12 Giao di n ng d ng Paint
Có ba vùng nh chúng ta th y trên hình v : Công c l a ch n, màu m c
nh, kích c v là nh ng thu c tính cài t mà chúng ta có th thay i.
Công c ban u là Drawing Pencil, màu ban u là en và tr ng, kích c
khác nhau ph thu c vào t ng máy và thu c tính mà chúng ta ã thay i
trong l n s d ng ng d ng Paint tr c ó.
5. Chúng ta m m t ng d ng khác so sánh. M t ng d ng so sánh t t nh t
là Adobe s Photoshop. M c dù ph c t p nh ng ng d ng này c ng có vùng
làm vi c t ng t nh Paint.
6. Bây gi chúng ta xem xét:
• Khi chúng ta nh n vào nút Undo sau khi ã t o ra m t s thay i,
chúng ta có mu n các thu c tính cài t tr l i nh tr c ó?
• Khi l u d án, ta có mu n nh ng cài t v a thay i s c l u
l i?
Ch ng 6 - Th nghi m
Trang 137
• Khi chúng ta b t u m t project m i, chúng ta có mu n nh ng cài
t trong project m i này gi ng nh nh ng cài t trong project g n
ó nh t.
• Khi chúng ta óng ng d ng, chúng ta có mu n thu c tính cài t
c a nó v n gi nguyên khi nó c m l i.
7. Chúng ta b t u v i 6(a). Khi chúng ta nh n nút Undo, u gì s x y ra i
v i nh ng thu c tính cài t?
A. u tiên, hãy xem nh ng thay i có c l u hay không:
• Nh n T p tin->New ho c Ctrl-N b t u m t project m i.
• Thay i l a ch n màu và vào Edit xem ch c n ng Undo có ph i
là không c hi n th (Edit->Undo).
• Ch n b t k m t công c khác và xem ch c n ng Undo có ph i là
không c hi n th (Edit->Undo).
• S d ng Image->Attributes ho c nh n Ctrl-E và thay i chi u dài
và chi u r ng c a vùng v , xem ch c n ng Undo có ph i c hi n
th không (Yes).
B. K ti p, ta xem xét nh ng thu c tính cài t có b hu b khi Undo:
• M m t project m i b ng cách nh n Ctrl-N.
• Ch n m t công c khác và làm m t s thao tác nào ó trong vùng
v v i công c này.
• Nh n Ctrl-Z undo nh ng thao tác ó trong vùng v . Xem xét
r ng nh ng thay i trên công c có c undo không? (NO)
• Thay i màu và làm m t vi c gì ó trong vùng v nh ng không
thay i công c .
• Nh n Ctrl-Z undo nh ng thao tác ó trong vùng v . Xem xét
r ng nh ng thay i màu có c undo không? (NO)
C. Cu i cùng hãy so sánh nh ng u ta v a tìm ra v i ng d ng khác:
So sánh nh ng k t qu này v i m t ng d ng v khác nh là
Photoshop.
Ch ng 6 - Th nghi m
Trang 138
8. K ti p, ta thao tác v i b c 6(b). Khi l u m t project các thu c tính cài t
có cl u tr không?
A. u tiên chúng ta hãy xem th m c mà chúng ta l u m t t p tin có
c l u gi hay không?
• M m t project m i b ng cách nh n Ctrl-N.
• Nh n Ctrl-S l u t p tin này.
• u t p tin Desktop và nh n nút Save tr l i ng d ng Paint.
• T o m i m t project khác (Ctrl-N)
• Nh n Ctrl-S l u t p tin này.
• Khi h p tho i l u c m ra thì th m c Desktop có n m ô
Look-in hay không? (th m c cu i cùng mà ta ã l u tâp tin vào, ch
không ph i là th m c My Picture)
B. c k xem xét r ng nh ng công c có c l u gi sau khi nh n
nút Save.
• M m t project m i ( Ctrl-N).
• Ch n m t công c khác.
• Ch n m t màu khác.
• Thay i chi u r ng và chi u cao c a vùng v b ng cách nh n
Ctrl-E.
• Nh n Ctrl-S l u t p tin.
• u t p tin vào b t c th m c nào và nh n nút Save.
• Li u r ng nh ng thay i trên công c có c l u hay không?
(Ch có thay i trên công c m i c ph c h i l i còn t t c nh ng
thay i khác thì c l u.)
C. Cu i cùng hãy so sánh nh ng u ta v a tìm ra v i ng d ng khác là
Photoshop.
9. c ti p theo ta th c hi n v i 6(c). Khi t o m t project m i nh ng cài t
c a chúng ta có c u gi không?
Ch ng 6 - Th nghi m
Trang 139
A. Hãy thay i t t c nh ng thu c tính cài t trong Paint và m m t
project m i.
• M m t project m i.
• Ki m tra ch c ch n r ng nh ng thu c tính cài t trong project
này gi ng các thu c tính cài t m c nh.
• Bây gi chúng ta s thay i các thu c tính cài t.
• Ch n m t công c khác.
• Thay i màu
• Thay i kích c c a vùng v .
• M m t project m i.
• Ki m tra ch c ch n r ng màu ã thay i tr l i nh ban u,
kích c vùng v và công c thì c l u tr .
B. Hãy so sánh nh ng u ta v a tìm ra v i ng d ng Photoshop.
10.Cu i cùng th c hi n b c 6(d). Khi óng và m l i ng d ng Paint nh ng
thu c tính cài t c a chúng ta có c l u gi không?
A. Hãy thay i t t c nh ng cài t ng i dùng trong Paint, sau ó óng
và m l i ng d ng này.
• T o m i m t project.
• Ch n công c m i.
• i màu.
• kích c vùng v .
• u project Desktop.
• Sau khi l u óng ng d ng Paint l i
• M l i ng d ng Paint.
• Ki m tra ch c ch n r ng ch có kích c vùng v c l u tr ,
còn công c , màu, th m c l u thì tr l i tr ng thái cài t m c nh.
B. Cu i cùng hãy so sánh nh ng u ta v a tìm ra v i ng d ng khác là
Photoshop.
Ch ng 6 - Th nghi m
Trang 140
6.2 Th nghi m công c RTH
Khách hàng yêu c u ta vi t ch ng trình cho nh p 3 s nguyên cách nhau m t
kho ng tr ng. M i s là dài m t c nh c a tam giác. Ch ng trình s cho ra lo i
tam giác t ng ng v i giá tr 3 c nh mà ng i dùng nh p vào.
Ta s dùng RTH h tr qu n lý ti n trình ki m th cho ch ng trình này. Ta có
th qu n lý, t o các b n yêu c u, các release, các test, k ho ch ki m th , các k t
qu , l i, báo cáo…
6.2.1 T o d ánCh n [Manage]à [Add Project]
Hình 6-13 Màn hình t o d án c a RTH
6.2.2 Thêm Requirement vào ProjectVào [Requirements]à [Add Requirement - Record]
Hình 6-14 Màn hình t o yêu c u c a RTH
Ch ng 6 - Th nghi m
Trang 141
6.2.3 Thêm m t releaseCh n project c n thêm release.Vào [Release]
Hình 6-15 Màn hình t o release c a RTH
6.2.4 Thêm Build vào ReleaseVào Release c n thêm Build
Hình 6-16 Màn hình thêm build c a RTH
6.2.5 Thêm TestSet vào BuildVào [Test]à [Add Test]à Ch n Releaseà ch n Build
Hình 6-17 Màn hình thêm TestSet c a RTH
Ch ng 6 - Th nghi m
Trang 142
6.2.6 Thêm Test vào TestSetCh n TestSet
Hình 6-18 Màn hình thêm test c a RTH
6.2.7 Thêm các b c cho TestCh n Test c n thêm TestStep
Hình 6-19 Màn hình thêm t ng b c test c a RTH
Ch ng 6 - Th nghi m
Trang 143
6.2.8 C p nh t k t qu test (T o TestRun)Vào [Result] ch n Test c n c p nh t k t qu mà ng i ki m th ó c phân công:
Hình 6-20 Màn hình thêm TestRun c a RTH
6.2.9 Thêm l i DefectsVào [Defects]à [Add Defects]
Hình 6-21 Màn hình thêm l i Defect c a RTH
Ch ng 6 - Th nghi m
Trang 144
6.3 Th nghi m RTH k t h p v i công c ki m th ph n m m t ng
WinRunner
Hình 6-22 Giao di n công c ki m th ph n m m t ng WinRunner
V i ch ng trình tam giác TRIANGLE trên ta ti n hành ki m th t ng v i
WinRunner, và nó s t ng c p nh t k t qu test thành công hay th t b i vào
RTH.
Xem chi ti t Movies.
Ch ng 7 - T ng k t và H ng phát tri n
Trang 145
Ch ng 7 ng k t và H ng phát tri n
7.1 T ánh giá
7.1.1 Nh ng k t qu t c
Sau quá trình th c hi n lu n v n, chúng em ã t c nh ng k t qu sau :
V m t lý thuy t
• t c nh ng ki n th c c b n v công vi c qu n lý ch t l ng trong
vi c phát tri n ph n m m.
• N m khá y ki n th c v ti n trình ki m th .
• Hi u và th nghi m c nhi u ph ng pháp ki m th .
• Tìm hi u và th nghi m c nhi u công c :
+ Công c qu n lý ti n trình ki m th
+ Công c ki m th ph n m m t ng
+ Công c ki m th web t ng
+ Công c ki m th Unit
V m t ng d ng
• Phát tri n c h th ng h tr qu n lý ti n trình ki m th .
• Hi n th tr c quan:
• Hi n th d ng cây TreeView.
• Ch n ngôn ng hi n th
• Ch n giao di n
• T o template_testcase (testcase m u)
Ví d :
+ Ki m th ng nh p
+ Ki m th qu n lý cookie
+ Ki m th qu n lý session…
• Phân quy n
• K t h p RTH v i winrunner _công c ki m th ph n m m t ng,
nh ng m i ch áp d ng c cho m ng LAN.
Ch ng 6 - Th nghi m
Trang 146
7.1.2 Nh ng m t còn h n ch
• Ch a liên k t c v i công c ki m th web t ng.
• Ch a k t h p v i công c ki m th ph n m m t ng trên ph m vi
m ng di n r ng Internet.
7.2 H ng phát tri n c a ch ng trình
• K t h p v i công c ki m th ph n m m t ng trên ph m vi m ng
di n r ng Internet.
• Liên k t v i công c ki m th web t ng và t c p nh t các k t qu
test t ng vào h th ng qu n lý ti n trình ki m th .
M r ng ng d ng h tr các ti n trình phát tri n khác nh phân tích,
thi t k …
Tài li u tham kh o
Tài li u tham kh o
[1]. Roger S.Pressman, Ng i d ch: Ngô Trung Vi t, K ngh ph n
m m T p III, 3/2001
[2]. ng Trung Hi u, Nguy n Khánh Chi, Lu n v n Qu n lý yêu c u
và ki m th , 2004
[3]. Cem Kaner, J.D., Ph.D., James Bach, Blackbox Software Testing.
2004.
[4]. James A.Whittaker, Forlorida Institute of Techonology, What is
software testing.
[5]. SSP-Testing-Syllabus-1.7
[6]. Công c ki m th phpunit, http://phpunit.sourceforge.net
[7]. Công c ki m th cunit, http://www.lastcraft.com/simple_test.php
[8]. Công c ki m th Junit, http://junit.org
[9]. Quality Control Vs Quality Assurance
[10].Darrel Ince, Software Quality Assurance A student introduction,
MacGraw-Hill, 1995
[11]. Giao Doan, Product Quality Assurance