Luan Van - 0212251-0212256

154
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 VNJ, 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 cNJng 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 ÿLӅu kiӋn cho chúng em thӵc hiӋn ÿӅ tài này. Chúng tôi cNJng xin cám ѫn các bҥn ÿã nhiӋt tình giúp ÿӥ khi chúng tôi Yѭӟ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 VNJ Ngӑc Sen – Nguy Ӊn Thӏ Quyên

description

none

Transcript of Luan Van - 0212251-0212256

Page 1: 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

Page 2: Luan Van - 0212251-0212256

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

Page 3: Luan Van - 0212251-0212256

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

Page 4: Luan Van - 0212251-0212256

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

Page 5: Luan Van - 0212251-0212256

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

Page 6: Luan Van - 0212251-0212256

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

Page 7: Luan Van - 0212251-0212256

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)

Page 8: Luan Van - 0212251-0212256

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

Page 9: Luan Van - 0212251-0212256

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,…

Page 10: Luan Van - 0212251-0212256

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

Page 11: Luan Van - 0212251-0212256

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.

Page 12: Luan Van - 0212251-0212256

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.

Page 13: Luan Van - 0212251-0212256

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

Page 14: Luan Van - 0212251-0212256

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

Page 15: Luan Van - 0212251-0212256

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

Page 16: Luan Van - 0212251-0212256

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.

Page 17: Luan Van - 0212251-0212256

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

Page 18: Luan Van - 0212251-0212256

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

Page 19: Luan Van - 0212251-0212256

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

Page 20: Luan Van - 0212251-0212256

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.

Page 21: Luan Van - 0212251-0212256

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

Page 22: Luan Van - 0212251-0212256

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

Page 23: Luan Van - 0212251-0212256

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

Page 24: Luan Van - 0212251-0212256

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

Page 25: Luan Van - 0212251-0212256

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.

Page 26: Luan Van - 0212251-0212256

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]

Page 27: Luan Van - 0212251-0212256

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

Page 28: Luan Van - 0212251-0212256

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

Page 29: Luan Van - 0212251-0212256

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]

Page 30: Luan Van - 0212251-0212256

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

Page 31: Luan Van - 0212251-0212256

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.

Page 32: Luan Van - 0212251-0212256

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]

Page 33: Luan Van - 0212251-0212256

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

Page 34: Luan Van - 0212251-0212256

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

Page 35: Luan Van - 0212251-0212256

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

Page 36: Luan Van - 0212251-0212256

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

Page 37: Luan Van - 0212251-0212256

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.

Page 38: Luan Van - 0212251-0212256

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

Page 39: Luan Van - 0212251-0212256

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?

Page 40: Luan Van - 0212251-0212256

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

Page 41: Luan Van - 0212251-0212256

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

Page 42: Luan Van - 0212251-0212256

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

Page 43: Luan Van - 0212251-0212256

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

Page 44: Luan Van - 0212251-0212256

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

Page 45: Luan Van - 0212251-0212256

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).

Page 46: Luan Van - 0212251-0212256

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

Page 47: Luan Van - 0212251-0212256

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

Page 48: Luan Van - 0212251-0212256

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.

Page 49: Luan Van - 0212251-0212256

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

Page 50: Luan Van - 0212251-0212256

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

Page 51: Luan Van - 0212251-0212256

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

Page 52: Luan Van - 0212251-0212256

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

Page 53: Luan Van - 0212251-0212256

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

Page 54: Luan Van - 0212251-0212256

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

Page 55: Luan Van - 0212251-0212256

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

Page 56: Luan Van - 0212251-0212256

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

Page 57: Luan Van - 0212251-0212256

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

Page 58: Luan Van - 0212251-0212256

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

Page 59: Luan Van - 0212251-0212256

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

Page 60: Luan Van - 0212251-0212256

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

Page 61: Luan Van - 0212251-0212256

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.

Page 62: Luan Van - 0212251-0212256

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

Page 63: Luan Van - 0212251-0212256

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ó.

Page 64: Luan Van - 0212251-0212256

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.

Page 65: Luan Van - 0212251-0212256

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

Page 66: Luan Van - 0212251-0212256

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.

Page 67: Luan Van - 0212251-0212256

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

Page 68: Luan Van - 0212251-0212256

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

Page 69: Luan Van - 0212251-0212256

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

Page 70: Luan Van - 0212251-0212256

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

Page 71: Luan Van - 0212251-0212256

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

Page 72: Luan Van - 0212251-0212256

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

Page 73: Luan Van - 0212251-0212256

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ò

Page 74: Luan Van - 0212251-0212256

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.

Page 75: Luan Van - 0212251-0212256

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.

Page 76: Luan Van - 0212251-0212256

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.

Page 77: Luan Van - 0212251-0212256

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

Page 78: Luan Van - 0212251-0212256

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]

Page 79: Luan Van - 0212251-0212256

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.

Page 80: Luan Van - 0212251-0212256

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

Page 81: Luan Van - 0212251-0212256

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

Page 82: Luan Van - 0212251-0212256

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

Page 83: Luan Van - 0212251-0212256

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

Page 84: Luan Van - 0212251-0212256

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.

Page 85: Luan Van - 0212251-0212256

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

Page 86: Luan Van - 0212251-0212256

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.

Page 87: Luan Van - 0212251-0212256

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 ó.

Page 88: Luan Van - 0212251-0212256

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

Page 89: Luan Van - 0212251-0212256

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

Page 90: Luan Van - 0212251-0212256

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

Page 91: Luan Van - 0212251-0212256

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 ó.

Page 92: Luan Van - 0212251-0212256

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.

Page 93: Luan Van - 0212251-0212256

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

Page 94: Luan Van - 0212251-0212256

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.

Page 95: Luan Van - 0212251-0212256

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.

Page 96: Luan Van - 0212251-0212256

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());?>

Page 97: Luan Van - 0212251-0212256

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

Page 98: Luan Van - 0212251-0212256

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'); }}

Page 99: Luan Van - 0212251-0212256

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

Page 100: Luan Van - 0212251-0212256

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.

Page 101: Luan Van - 0212251-0212256

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');

Page 102: Luan Van - 0212251-0212256

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:

Page 103: Luan Van - 0212251-0212256

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() {

Page 104: Luan Van - 0212251-0212256

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("-&gt;", $breadcrumb); print "-&gt;$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("-&gt;", $breadcrumb); print "->$message<br />\n"; }function _getCss() {

return parent::_getCss(). '.pass { color: green; }'; }}

Page 105: Luan Van - 0212251-0212256

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()

Page 106: Luan Van - 0212251-0212256

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:

Page 107: Luan Van - 0212251-0212256

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:

Page 108: Luan Van - 0212251-0212256

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. }

Page 109: Luan Van - 0212251-0212256

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>(); }

Page 110: Luan Van - 0212251-0212256

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() { ... } }

Page 111: Luan Van - 0212251-0212256

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) {

Page 112: Luan Van - 0212251-0212256

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));}

Page 113: Luan Van - 0212251-0212256

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:

Page 114: Luan Van - 0212251-0212256

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

Page 115: Luan Van - 0212251-0212256

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:

Page 116: Luan Van - 0212251-0212256

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)

Page 117: Luan Van - 0212251-0212256

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.

Page 118: Luan Van - 0212251-0212256

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.

Page 119: Luan Van - 0212251-0212256

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

Page 120: Luan Van - 0212251-0212256

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.

Page 121: Luan Van - 0212251-0212256

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:

Page 122: Luan Van - 0212251-0212256

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…

Page 123: Luan Van - 0212251-0212256

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.

Page 124: Luan Van - 0212251-0212256

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

Page 125: Luan Van - 0212251-0212256

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 .

Page 126: Luan Van - 0212251-0212256

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.

Page 127: Luan Van - 0212251-0212256

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

Page 128: Luan Van - 0212251-0212256

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]:

Page 129: Luan Van - 0212251-0212256

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:

Page 130: Luan Van - 0212251-0212256

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

Page 131: Luan Van - 0212251-0212256

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.

Page 132: Luan Van - 0212251-0212256

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

Page 133: Luan Van - 0212251-0212256

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:

Page 134: Luan Van - 0212251-0212256

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.

Page 135: Luan Van - 0212251-0212256

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ó”.

Page 136: Luan Van - 0212251-0212256

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.

Page 137: Luan Van - 0212251-0212256

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

Page 138: Luan Van - 0212251-0212256

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.

Page 139: Luan Van - 0212251-0212256

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.

Page 140: Luan Van - 0212251-0212256

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:

Page 141: Luan Van - 0212251-0212256

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

Page 142: Luan Van - 0212251-0212256

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.

Page 143: Luan Van - 0212251-0212256

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?

Page 144: Luan Van - 0212251-0212256

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.

Page 145: Luan Van - 0212251-0212256

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?

Page 146: Luan Van - 0212251-0212256

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.

Page 147: Luan Van - 0212251-0212256

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

Page 148: Luan Van - 0212251-0212256

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

Page 149: Luan Van - 0212251-0212256

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

Page 150: Luan Van - 0212251-0212256

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

Page 151: Luan Van - 0212251-0212256

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.

Page 152: Luan Van - 0212251-0212256

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.

Page 153: Luan Van - 0212251-0212256

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 …

Page 154: Luan Van - 0212251-0212256

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