一什么花瓶
Ki?m th? ph?n m?m (ti?ng Anh: Software testing) là m?t cu?c ki?m tra ???c ti?n hành ?? cung c?p cho các bên liên quan th?ng tin v? ch?t l??ng c?a s?n ph?m ho?c d?ch v? ???c ki?m th?.[1] Ki?m th? có th? cung c?p cho doanh nghi?p m?t quan ?i?m, m?t cách nhìn ??c l?p v? ph?n m?m ?? t? ?ó cho phép ?ánh giá và th?u hi?u ???c nh?ng r?i ro trong quá trình tri?n khai ph?n m?m.
Trong k? thu?t, ki?m th? kh?ng ch? gi?i h?n ? vi?c th?c hi?n m?t ch??ng trình ho?c ?ng d?ng v?i m?c ?ích ?i tìm các l?i ph?n m?m (bao g?m các l?i và các thi?u sót) mà còn là m?t quá trình phê chu?n và xác minh m?t ch??ng trình máy tính / ?ng d?ng / s?n ph?m nh?m:
- ?áp ?ng ???c m?i yêu c?u h??ng d?n khi thi?t k? và phát tri?n ph?n m?m.
- Th?c hi?n c?ng vi?c ?úng nh? k? v?ng.
- Có th? tri?n khai ???c v?i nh?ng ??c tính t??ng t?.
- Và ?áp ?ng ???c m?i nhu c?u c?a các bên liên quan.
Tùy thu?c vào t?ng ph??ng pháp, vi?c ki?m th? có th? ???c th?c hi?n b?t c? lúc nào trong quá trình phát tri?n ph?n m?m. Theo truy?n th?ng thì các n? l?c ki?m th? ???c ti?n hành sau khi các yêu c?u ???c xác ??nh và vi?c l?p trình ???c hoàn t?t nh?ng trong Agile (là m?t t?p h?p các ph??ng pháp phát tri?n ph?n m?m linh ho?t d?a trên vi?c l?p ?i l?p l?i và gia t?ng giá tr?) thì vi?c ki?m th? ???c ti?n hành liên t?c trong su?t quá trình xay d?ng ph?n m?m. Nh? v?y, m?i m?t ph??ng pháp ki?m th? b? chi ph?i theo m?t quy trình phát tri?n ph?n m?m nh?t ??nh.
T?ng quan
s?aKi?m th? kh?ng th? xác ??nh hoàn toàn ???c t?t c? các l?i bên trong ph?n m?m.[2] Thay vào ?ó, nó so sánh tr?ng thái và hành vi c?a s?n ph?m v?i các oracle - các nguyên t?c hay c? ch? ?? phát hi?n v?n ??. Các oracle này có th? bao g?m (nh?ng kh?ng gi?i h?n ?) các ??c t? ph?n m?m, h?p ??ng,[3] s?n ph?m t??ng ???ng, các phiên b?n tr??c c?a cùng m?t s?n ph?m, phù h?p v?i m?c ?ích d? ki?n nh?m ?áp ?ng s? k? v?ng c?a ng??i dùng, khách hàng, quy ??nh c?a pháp lu?t hi?n hành và các tiêu chu?n liên quan khác.
M?c ?ích chính c?a ki?m th? là phát hi?n ra các l?i ph?n m?m ?? t? ?ó kh?c ph?c và s?a ch?a. Vi?c ki?m th? kh?ng th? kh?ng ??nh ???c r?ng các ch?c n?ng c?a s?n ph?m ?úng trong m?i ?i?u ki?n, mà ch? có th? kh?ng ??nh r?ng nó kh?ng ho?t ??ng ?úng trong nh?ng ?i?u ki?n c? th?.[4] Ph?m vi c?a ki?m th? ph?n m?m th??ng bao g?m vi?c ki?m tra m?, th?c hi?n các m? trong m?i tr??ng và ?i?u ki?n khác nhau, và vi?c ki?m th? các khía c?nh c?a m?: nó có làm ?úng nhi?m v? c?a nó hay kh?ng, và nó có làm nh?ng gì c?n ph?i làm hay kh?ng. Trong m?i tr??ng phát tri?n ph?n m?m hi?n nay, m?t ??i ki?m th? có th? tách bi?t v?i ??i phát tri?n. Các thành viên trong ??i ki?m th? gi? các vai trò khác nhau. Các th?ng tin thu ???c t? ki?m th? có th? ???c s? d?ng ?? ?i?u ch?nh quá trình phát tri?n ph?n m?m.[5]
M?i s?n ph?m ph?n m?m có m?t ??i t??ng ph?c v? riêng. Ví d? nh? ??i t??ng c?a ph?n m?m trò ch?i ?i?n t? là hoàn toàn khác v?i ??i t??ng c?a ph?n m?m ngan hàng. Vì v?y, khi m?t t? ch?c phát tri?n ho?c ??u t? vào m?t s?n ph?m ph?n m?m, h? có th? ?ánh giá li?u các s?n ph?m ph?n m?m có ???c ch?p nh?n b?i ng??i dùng cu?i, ??i t??ng ph?c v?, ng??i mua, hay nh?ng ng??i gi? vai trò quan tr?ng khác hay kh?ng. Và vi?c ki?m th? ph?n m?m là m?t quá trình n? l?c ?? ??a ra nh?ng ?ánh giá này.
Khi?m khuy?t và th?t b?i
s?aKh?ng ph?i t?t c? các khi?m khuy?t c?a ph?n m?m b? gay ra b?i l?i l?p trình mà c?i ngu?n chung c?a các khi?m khuy?t ?ó n?m ? nh?ng thi?u sót trong yêu c?u; ví d?, yêu c?u kh?ng ???c xác nh?n mà gay ra l?i là s? s? su?t c?a các nhà thi?t k? c?a ch??ng trình.[6] Nh?ng thi?u sót yêu c?u th??ng th?y trong nh?ng yêu c?u phi ch?c n?ng nh? là kh? n?ng ki?m th?, kh? n?ng m? r?ng, b?o trì, tính kh? d?ng, hi?u su?t, và kh? n?ng b?o m?t.
L?i ph?n m?m x?y ra th?ng su?t quá trình nh? sau: M?t l?p trình viên làm cho m?t l?i (sai l?m), mà k?t qu? cho ra là m?t khi?m khuy?t (th?t b?i, sai sót) trong m? ngu?n ph?n m?m. N?u l?i này ???c th?c hi?n, trong nh?ng tình hu?ng nh?t ??nh h? th?ng s? t?o ra k?t qu? sai, gay ra m?t s? th?t b?i.[7] Kh?ng ph?i t?t c? các khi?m khuy?t nh?t thi?t s? d?n ??n th?t b?i. Ví d?, l?i trong m? ch?t s? kh?ng bao gi? d?n ??n th?t b?i. L?i có th? bi?n thành m?t s? th?t b?i khi m?i tr??ng thay ??i. Ví d? v? nh?ng thay ??i trong m?i tr??ng bao g?m các ph?n m?m ?ang ch?y trên m?t n?n t?ng ph?n c?ng máy tính m?i, thay ??i trong ngu?n d? li?u, ho?c t??ng tác v?i các ph?n m?m khác nhau. M?t khi?m khuy?t duy nh?t có th? d?n ??n m?t lo?t các d?u hi?u th?t b?i.
K?t n?i ??u vào và ?i?u ki?n ti?n ??
s?aM?t v?n ?? r?t c? b?n v?i ki?m th? ph?n m?m là vi?c ki?m th? t?t c? các k?t n?i ??u vào và ?i?u ki?n ti?n ?? (tr?ng thái ban ??u) là kh?ng kh? thi, ngay c? v?i m?t s?n ph?m ??n gi?n.[4][8] ?i?u này có ngh?a r?ng s? l??ng các khi?m khuy?t trong m?t s?n ph?m ph?n m?m có th? r?t l?n và có th? x?y ra th??ng xuyên nên r?t khó ?? tìm th?y trong quá trình ki?m th?. Quan tr?ng h?n, nh?ng yêu c?u phi ch?c n?ng v? ch?t l??ng (làm nó nh? th? nào h?n là làm ???c gì?) nh?: tính kh? d?ng, kh? n?ng m? r?ng, hi?u su?t, kh? n?ng t??ng thích, ?? tin c?y n?u xét v? m?t ch? quan thì nó ch?a t?o nên giá tr? ?? ?? m?i ng??i có th? ch?p nh?n ???c nó.
Các nhà phát tri?n ph?n m?m kh?ng th? ki?m th? ???c t?t c? m?i th?, nh?ng h? có th? s? d?ng t? h?p thi?t k? ki?m th? ?? xác ??nh s? l??ng t?i thi?u c?a các ki?m th? c?n thi?t ?? bao quát ???c nh?ng ?i?u h? mu?n. Dù là ki?m th? t?c ?? hay ?? sau thì h? có th? s? d?ng ph??ng pháp này ?? xay d?ng ???c nh?ng c? c?u khác nhau trong t?ng tr??ng h?p ki?m th? (test case) c? th?.[9]
Kinh t?
s?aM?t nghiên c?u ???c ti?n hành b?i NIST trong n?m 2002 cho bi?t r?ng các l?i ph?n m?m gay t?n th?t cho n?n kinh t? M? 59,5 t? ?? m?i n?m, h?n m?t ph?n ba chi phí này có th? tránh ???c n?u vi?c ki?m th? ph?n m?m ???c th?c hi?n t?t h?n.[10]
Ng??i ta th??ng tin r?ng, m?t ki?m khuy?t n?u ???c tìm ra s?m h?n thì chi phí ?? s?a ch?a nó s? r? h?n. B?ng d??i ?ay cho th?y chi phí s?a ch?a các khi?m khuy?t tùy thu?c vào giai ?o?n nó ???c tìm ra.[11] Ví d?, m?t v?n ?? ???c tìm th?y sau khi ?? ra b?n ph?n m?m chính th?c r?i s? có chi phí g?p 10-100 l?n khi gi?i quy?t v?n ?? t? lúc ti?p nh?n yêu c?u. V?i s? ra ??i c?a cách th?c tri?n khai th?c ti?n liên t?c và các d?ch v? d?a trên ?ám may, chi phí tái tri?n khai và b?o trì có th? làm gi?m b?t theo th?i gian.
Chi phí s?a ch?a m?t khi?m khuy?t | Th?i gian phát hi?n | |||||
---|---|---|---|---|---|---|
Các yêu c?u c?a ph?n m?m | Ki?n trúc ph?n m?m | Xay d?ng ph?n m?m | Ki?m th? h? th?ng | Sau khi phát hành | ||
Th?i gian s? d?ng | Các yêu c?u c?a ph?n m?m | 1× | 3× | 5–10× | 10× | 10–100× |
Ki?n trúc ph?n m?m | – | 1× | 10× | 15× | 25–100× | |
Xay d?ng ph?n m?m | – | – | 1× | 10× | 10–25× |
Vai trò
s?aKi?m th? ph?n m?m ???c th?c hi?n b?i nhi?u Tester. Cho ??n nh?ng n?m 1980, thu?t ng? "nhan viên ki?m th? ph?n m?m" ?? ???c s? d?ng th??ng, nh?ng sau ?ó c?ng ???c coi là m?t ngh? riêng bi?t. Liên quan ??n các giai ?o?n và các m?c tiêu khác nhau trong ki?m th? ph?n m?m[12] thì nh?ng vai trò khác nhau ?? ???c thi?t l?p cho các nhà qu?n ly, tr??ng nhóm ki?m th?, nhà phan tích ki?m th?, nhà thi?t k? ki?m th?, Tester, nhà phát tri?n t? ??ng hóa và qu?n tr? viên ki?m th?.
L?ch s?
s?aS? tách bi?t gi?a vi?c g? l?i (s?a l?i, debugging) v?i ki?m th? (testing) l?n ??u tiên ???c Glenford J. Myers ??a ra vào n?m 1979.[13] M?c dù s? quan tam c?a ?ng là ki?m th? s? gián ?o?n ("m?t ki?m th? thành c?ng là tìm ra ???c m?t l?i"[13][14]) nó minh h?a mong mu?n c?a c?ng ??ng c?ng ngh? ph?n m?m ?? tách bi?t các ho?t ??ng phát tri?n c? b?n, gi?ng nh? vi?c tách ph?n g? l?i ra riêng kh?i quá trình ki?m th?. Vào n?m 1988, Dave Gelperin và William C. Hetzel ?? phan lo?i các giai ?o?n và m?c tiêu trong ki?m th? ph?n m?m theo trình t? sau:[15]
Ph??ng pháp ki?m th?
s?aKi?m th? t?nh và ??ng
s?aCó r?t nhi?u ph??ng pháp ?? ki?m th? ph?n m?m. ?ánh giá, ??nh h??ng ho?c ki?m tra ???c g?i là ki?m th? t?nh, trong khi vi?c ch?y m? l?p trình th?c t? trong các tình hu?ng ???c g?i là ki?m th? ??ng. Ki?m th? t?nh th?ng th??ng có th? ???c b? qua khi th?c hành nh?ng ki?m th? ??ng di?n ra khi b?n than ch??ng trình ?ó ?ang ???c s? d?ng. Ki?m th? ??ng có th? b?t ??u tr??c khi ch??ng trình ?? hoàn t?t 100% ?? ki?m th? các ph?n c? th? c?a m? và ???c áp d?ng cho các ch?c n?ng riêng bi?t ho?c Module. K? thu?t ?i?n hình cho ?i?u này ???c s? d?ng trong c? m?ch nhánh/trình ?i?u khi?n ho?c ???c th?c hi?n trong m?t m?i tr??ng g? l?i nh?t ??nh.
Ki?m th? t?nh liên quan ??n vi?c ki?m ch?ng trong khi ki?m th? ??ng liên quan ??n vi?c xác nh?n. Nó ??u cùng giúp c?i thi?n ch?t l??ng ph?n m?m.
Ph??ng pháp th?m dò
s?aTheo truy?n th?ng thì các ph??ng pháp ki?m th? ph?n m?m ???c b?t ngu?n t? ki?m th? h?p tr?ng và h?p ?en. Có hai cách ti?p c?n ???c s? d?ng ?? m? t? quan ?i?m c?a m?t k? s? ki?m th? khi thi?t k? các Test Case.
Ki?m th? h?p tr?ng
s?aKi?m th? h?p tr?ng (???c bi?t ??n nh? là ki?m th? tính r? ràng c?a h?p, ki?m th? h?p kính, ki?m th? h?p trong su?t và ki?m th? c?u trúc) giúp ki?m th? ???c c?u trúc n?i b? ho?c ho?t ??ng c?a m?t ch??ng trình, nh? t??ng ph?n v?i ch?c n?ng ???c b?c l? c?a ng??i dùng cu?i. M?t góc nhìn n?i b? c?a h? th?ng trong ki?m th? h?p tr?ng gi?ng nh? là các k? n?ng l?p trình ???c s? d?ng ?? thi?t k? ra các tình hu?ng ki?m th?. Các Tester l?a ch?n y?u t? ??u vào ?? th?c hi?n ???ng d?n th?ng qua các m? và xác ??nh ???c k?t qu? ??u ra thích h?p. ?i?u này t??ng t? các nút ki?m th? trong m?t m?ch, ví d? nh? ki?m th? th?ng m?ch (ICT).
Trong khi ki?m th? h?p tr?ng có th? ???c áp d?ng t?i ??n v?, tích h?p h? th?ng và các c?p ?? c?a quá trình ki?m th? ph?n m?m, nó th??ng ???c th?c hi?n ? c?p ??n v?. Nó có th? ki?m th? ???ng d?n trong m?t ??n v?, liên k?t gi?a các ??n v? trong quá trình tích h?p, và gi?a các h? th?ng con trong m?t ki?m th? h? th?ng c?p. M?c dù ph??ng pháp này thi?t k? ki?m th? có th? phát hi?n ra nhi?u l?i ho?c các v?n ??, nó có th? kh?ng phát hi?n các ph?n ch?a th?c hi?n c?a các ??c ?i?m k? thu?t ho?c yêu c?u thi?u sót.
Các k? thu?t ???c s? d?ng trong ki?m th? h?p tr?ng bao g?m:
- Ki?m th? API (giao di?n l?p trình ?ng d?ng) - ki?m th? ?ng d?ng có s? d?ng các API c?ng c?ng và cá nhan.
- Ki?m th? ?? bao ph? m? - t?o ra các bài ki?m th? ?? ?áp ?ng m?t s? tiêu chí c?a b?o hi?m m? (ví d?, các nhà thi?t k? ki?m th? có th? t?o ra các bài ki?m th? ?? làm t?t c? các cau l?nh trong ch??ng trình ???c th?c hi?n ít nh?t m?t l?n).
- Ph??ng pháp chèn l?i - c? tình ??a ra nh?ng l?i l?m ?? ?ánh giá hi?u qu? c?a các chi?n l??c ki?m th?.
- Ph??ng pháp ki?m th? ??t bi?n.
- Ph??ng pháp th? t?nh.
Các c?ng c? bao ph? m? có th? ?ánh giá ??y ?? c?a m?t b? ki?m th? ?? ???c t?o ra b?ng ph??ng pháp b?t k? nào ?ó, bao g?m c? ki?m th? h?p ?en. ?i?u này cho phép nhóm nghiên c?u ph?n m?m ki?m th? các b? ph?n c?a m?t h? th?ng mà hi?m khi ???c ki?m th? và ??m b?o r?ng các ?i?m ch?c n?ng quan tr?ng nh?t ?? ???c ki?m th?.[21] Bao ph? m? gi?ng nh? m?t ph?n m?m metric có th? báo cáo t? l? ph?n tr?m cho:
- Bao ph? ch?c n?ng: d?a vào các báo cáo c?a ch?c n?ng này th?c hi?n.
- Bao ph? cau l?nh: d?a vào các báo cáo v? s? l??ng các dòng ???c th?c hi?n ?? hoàn thành ki?m th?.
100% bao ph? cau l?nh ??m b?o r?ng t?t c? các ???ng d?n m?, ho?c các nhánh (trong ?i?u ki?n c?a lu?ng ?i?u khi?n) ???c th?c hi?n ít nh?t m?t l?n. ?i?u này h?u ích trong vi?c ??m b?o ?úng ch?c n?ng nh?ng kh?ng ?? k? t? khi các m? t??ng t? có th? th?c hi?n ti?n trình x? ly d? li?u ??u vào khác nhau dù ?úng ho?c kh?ng.
Ki?m th? h?p ?en
s?aKi?m th? h?p ?en coi ph?n m?m nh? là m?t "h?p ?en", ki?m th? ch?c n?ng mà kh?ng c?n b?t k? ki?n th?c v? c?u trúc và hành vi bên trong ph?n m?m. Các Tester ch? bi?t v? nh?ng gì ph?n m?m ph?i làm mà kh?ng bi?t là nó làm nh? th? nào.[22] Ph??ng pháp ki?m th? h?p ?en bao g?m: Phan vùng t??ng ???ng, phan tích giá tr? biên, t?t c? các c?p ki?m th?, b?ng chuy?n ??i tr?ng thái, ki?m th? b?ng quy?t ??nh, ki?m th? chéo, ki?m th? d?a trên m? hình, s? d?ng Test Case, th?m dò ki?m th? và ki?m th? d?a trên ??c ?i?m k? thu?t.
Ki?m th? d?a trên ??c ?i?m k? thu?t nh?m m?c ?ích ?? ki?m tra các ch?c n?ng c?a ph?n m?m theo các yêu c?u ?ng d?ng.[23] M?c ?? ki?m th? th??ng ?òi h?i Test Case k? l??ng ?? ???c cung c?p b?i các Tester, nh?ng ng??i mà sau ?ó có th? xác minh m?t cách ??n gi?n r?ng ??i v?i m?t giá tr? ??u vào ho?c ??u ra (ho?c cách x? ly) có th? gi?ng ho?c kh?ng so v?i giá tr? k? v?ng ???c ??nh v? trong m?t Test Case nh?t ??nh. Các Test Case ???c xay d?ng quanh các th?ng s? k? thu?t và các yêu c?u ?? xu?t, t?c là nh?ng t?t c? nh?ng gì ?ng d?ng ?ó ph?i làm. Nó ???c s? d?ng ?? m? t? m? r?ng ph?n m?m bao g?m các th?ng s? k? thu?t, các yêu c?u và thi?t k? ???c b?t ngu?n trong Test Case. Các ki?m th? này có th? là ch?c n?ng ho?c phi ch?c n?ng.
Ki?m th? d?a trên ??c ?i?m k? thu?t có th? là c?n thi?t ?? ??m b?o ch?c n?ng chính xác, nh?ng nó kh?ng ?? ?? b?o v? ch?ng l?i các tình hu?ng ph?c t?p ho?c có ?? r?i ro cao.[24]
M?t l?i th? c?a k? thu?t ki?m th? h?p ?en là kh?ng yêu c?u nh?t thi?t ph?i có ki?n th?c l?p trình. Các Tester ti?n hành ki?m th? ? các khu v?c và các ch?c n?ng khác nhau c?a ph?n m?m mà kh?ng liên quan ??n các l?p trình viên. M?t khác, ki?m th? h?p ?en ???c cho là "?i b? trong m?t mê cung t?i t?m mà kh?ng có ?èn pin".[25] B?i vì h? kh?ng ki?m th? m? ngu?n và ?? có nhi?u tình hu?ng các Tester ch? ki?m th? ???c tính n?ng trong m?t vài tr??ng h?p ch? kh?ng ki?m th? ???c toàn b? ho?t ??ng c?a ch??ng trình.
Ph??ng pháp ki?m th? này có th? ???c áp d?ng cho t?t c? các c?p ki?m th? ph?n m?m: ??n v?, tích h?p, h? th?ng và ch?p nh?n. Nó kh?ng th? th?c hi?n ???c t?t c? các ki?m th? các c?p ?? cao h?n nh?ng nó có th? t?o ?u th? t?t khi ki?m th? t?ng ??n v?.
Ki?m th? tr?c quan
s?aM?c ?ích c?a ki?m th? tr?c quan là cung c?p các nhà phát tri?n kh? n?ng ki?m soát nh?ng gì ?ang x?y ra t?i th?i ?i?m ph?n m?m th?t b?i theo cách mà h? có th? nhìn th?y th?ng tin ???c yêu c?u r? ràng và d? hi?u nh?t.[26][27]
C?t l?i c?a ki?m th? tr?c quan là y t??ng giúp ai ?ó nh?n ra ???c m?t v?n ?? (ho?c m?t ki?m th? th?t b?i) thay vì ch? m? t? nó t? ?ó giúp cho s? r? ràng và hi?u bi?t t?ng lên ?áng k?. Ki?m th? tr?c quan vì th? lu?n yêu c?u ph?i ghi l?i toàn b? ti?n trình ki?m th? – ch?p l?i t?t c? m?i th? x?y ra trên h? th?ng ? ??nh d?ng video. Các video ??u ra ???c b? sung b?ng th?i gian ki?m th? th?c t? ??u vào th?ng qua hình ?nh t? webcam và am thanh t? micro.
Ki?m th? tr?c quan cung c?p m?t s? l?i th? nh?: Ch?t l??ng c?a giao ti?p ???c t?ng lên ?áng k? b?i các Tester có th? giúp cho nhà phát tri?n nhìn r? ???c v?n ?? x?y ra (và các s? ki?n d?n ??n nó) ch? kh?ng ph?i ch? m? t? chung chung nó và c?n ph?i s?a ch?a các l?i này ?? nó kh?ng còn t?n t?i trong nhi?u tr??ng h?p khác n?a. Các nhà phát tri?n s? có t?t c? các b?ng ch?ng ???c yêu c?u trong bài ki?m th? l?i và có th? t?p trung vào các nguyên nhan gay ra l?i c?ng nh? làm th? nào ?? c? ??nh ???c nó.
Ki?m th? tr?c quan ??c bi?t r?t phù h?p cho các m?i tr??ng mà tri?n khai theo ph??ng pháp AGILE trong phát tri?n ph?n m?m ?òi h?i vi?c giao ti?p t?t h?n gi?a các Tester và các nhà phát tri?n c?ng nh? s? c?ng tác gi?a các nhóm nh? v?i nhau.[c?n d?n ngu?n]
Ki?m th? Ad hoc và ki?m th? th?m dò là nh?ng ph??ng pháp quan tr?ng ?? ki?m th? tình tr?ng nguyên v?n c?a ph?n m?m b?i chúng ?òi h?i chu?n b? th?i gian ?? th?c thi ít h?n trong khi các l?i quan tr?ng ph?i ???c tìm th?y m?t cách nhanh chóng. Trong ki?m th? Ad hoc thì ??a ?i?m ki?m th? là m?t v? trí kh?ng ??nh tr??c và v?i kh? n?ng c?a m?t c?ng c? ki?m th? tr?c quan giúp ghi l?i t?t c? nh?ng gì x?y ra trên m?t h? th?ng ??u tr? nên r?t quan tr?ng.[c?n gi?i thích][c?n d?n ngu?n]
Ki?m th? tr?c quan là t?p trung nh?n di?n ki?m th? s? ch?p nh?n c?a khách hàng và tính kh? d?ng c?a ph?n m?m b?i vì ki?m th? này có th? do nhi?u cá nhan liên quan s? d?ng trong quá trình phát tri?n.[c?n d?n ngu?n] ??i v?i khách hàng, nó tr? nên d? dàng ?? cung c?p các báo cáo l?i chi ti?t và th?ng tin ph?n h?i còn ??i v?i ng??i s? d?ng ch??ng trình thì ki?m th? tr?c quan có th? ghi l?i hành ??ng c?a ng??i dùng trên màn hình nh? ti?ng nói và hình ?nh c?a h? ?? cung c?p m?t b?c tranh hoàn ch?nh t?i th?i ?i?m ph?n m?m th?t b?i cho các nhà phát tri?n.
Ki?m th? h?p xám
s?aKi?m th? h?p xám liên quan ??n hi?u bi?t v? c?u trúc d? li?u bên trong và các thu?t toán cho m?c ?ích c?a các bài ki?m th? thi?t k?. Khi th?c hi?n nh?ng bài ki?m th? v?i User ho?c m?c ?? h?p ?en, Tester kh?ng nh?t thi?t ph?i truy c?p vào m? ngu?n c?a ph?n m?m.[28] Ta có th? thao tác v?i d? li?u ??u vào và ??nh d?ng ??u ra kh?ng xác ??nh nh? h?p xám b?i vì ??u vào và ??u ra r? ràng ? bên ngoài c?a "h?p ?en" mà chúng ???c h? th?ng g?i ra trong quá trình ki?m th?. S? phan bi?t này là ??c bi?t quan tr?ng khi ti?n hành ki?m th? tích h?p gi?a hai Module ???c vi?t m? b?i hai nhà phát tri?n khác nhau, mà ? ?ó ch? có các giao di?n ???c b?c l? ra ?? ki?m th?.
Tuy nhiên, các ki?m th? mà yêu c?u thay th? m?t kho l?u tr? d? li?u back-end nh? m?t c? s? d? li?u ho?c m?t t?p tin ??ng nh?p kh?ng xác ??nh nh? h?p xám, ng??i dùng s? kh?ng th? thay ??i các kho l?u tr? d? li?u trong khi s?n ph?m v?n ?ang ho?t ??ng bình th??ng.
Ki?m th? h?p xám c?ng có th? bao g?m k? thu?t ??o ng??c ?? xác ??nh ??i t??ng, giá tr? biên ho?c các th?ng báo l?i.
Khi bi?t ???c nh?ng khái ni?m c? b?n v? cách th?c các ph?n m?m ho?t ??ng nh? th? nào, Tester th?c hi?n ki?m th? ph?n m?m t? bên trong t?t h?n so v?i bên ngoài. th??ng, m?t Tester h?p xám s? ???c phép thi?t l?p m?t m?i tr??ng ki?m th? b? c? l?p v?i các ho?t ??ng nh? gieo m?t c? s? d? li?u. Các ki?m th? có th? quan sát tr?ng thái c?a s?n ph?m ???c ki?m th? sau khi th?c hi?n hành ??ng nh?t ??nh gi?ng nh? vi?c th?c hi?n các cau l?nh SQL ??i v?i c? s? d? li?u và sau ?ó th?c hi?n truy v?n ?? ??m b?o r?ng nh?ng thay ??i d? ki?n ?? ???c ph?n ánh. Ki?m th? h?p xám th?c hi?n k?ch b?n ki?m th? th?ng minh, d?a trên th?ng tin h?n ch?. ?i?u này s? ??c bi?t áp d?ng cho các ki?u x? ly d? li?u, k? c? x? ly ngo?i l?, và c? th?.[29]
Các m?c ki?m th?
s?aKi?m th? th??ng xuyên ???c nhóm l?i theo ??a ?i?m chúng ???c thêm vào trong quá trình phát tri?n ph?n m?m, ho?c do m?c ?? ??c hi?u c?a ki?m th?. Các c?p chính trong quá trình phát tri?n theo quy ??nh c?a h??ng d?n SWEBOK là ??n v?, ki?m th? h?i nh?p, và ki?m th? h? th?ng ???c phan bi?t b?i các m?c tiêu ki?m th? mà kh?ng ám ch? m?t m? hình quy trình c? th?. Các m?c ?? ki?m th? khác ???c phan lo?i theo m?c tiêu ki?m th?.
Ki?m th? ??n v?
s?aKi?m th? ??n v? hay còn ???c g?i là ki?m th? thành ph?n, ?? c?p ??n vi?c ki?m th? ch?c n?ng t?ng ph?n c?a m?, th??ng ? m?c ?? ch?c n?ng. Trong m?t m?i tr??ng h??ng v? ??i t??ng thì ?i?u này th??ng là c?p ?? l?p, và các ki?m th? ??n v? t?i thi?u bao g?m hàm d?ng và hàm h?y. Nhi?u lo?i ki?m th? ???c vi?t b?i các nhà phát tri?n nh? h? làm vi?c trong m? (ki?u h?p tr?ng) ?? ??m b?o r?ng t?ng hàm riêng bi?t ho?t ??ng ?úng nh? k? v?ng. M?t hàm có th? có nhi?u ki?m th? t? ?ó giúp n?m b?t ???c các tr??ng h?p góc ho?c các nhánh trong Code. Ki?m th? ??n v? m?t mình kh?ng th? ??m b?o h?t ???c t?ng ch?c n?ng c?a t?ng b? ph?n trong ph?n ph?m nh?ng nó ???c s? d?ng ?? ??m b?o r?ng các kh?i ki?n trúc c?a ph?n m?m ho?t ??ng ??c l?p v?i nhau.
Ki?m th? ??n v? là m?t quá trình phát tri?n ph?n m?m có liên quan ??n ?ng d?ng ??ng b? c?a m?t lo?t các chi?n l??c phòng ng?a phát hi?n l?i và ?? gi?m thi?u r?i ro, th?i gian và chi phí. Nó ???c th?c hi?n b?i k? s? hay nhà phát tri?n trong su?t giai ?o?n xay d?ng c?a vòng ??i phát tri?n ph?n m?m. Kh?ng ch? t?p trung vào vi?c ??m b?o ch?t l??ng truy?n th?ng mà ph?i gia t?ng nó lên vì th? ki?m th? ??n v? có m?c ?ích lo?i b? nh?ng l?i c?u trúc tr??c khi m? hóa r?i m?i thúc ??y vi?c qu?n ly ch?t l??ng. Chi?n l??c này nh?m nang cao ch?t l??ng c?ng nh? hi?u qu? c?a ph?n m?m trong ti?n trình qu?n ly và phát tri?n chung.
Tùy thu?c vào k? v?ng c?a t? ch?c phát tri?n ph?n m?m, ki?m th? ??n v? có th? bao g?m phan tích m? t?nh, phan tích lu?ng d? li?u, phan tích d? li?u, ?ánh giá m? can b?ng, phan tích m? bao ph? và các th?c hành xác nh?n ph?n m?m khác.
Ki?m th? tích h?p
s?aKi?m th? tích h?p là m?t hình th?c ki?m th? ph?n m?m nh?m tìm cách xác minh các giao di?n gi?a các thành ph?n xung ??t c?a m?t thi?t k?. Các thành ph?n này có th? tích h?p theo cách l?p ?i l?p l?i ho?c t?t c? cùng nhau ("Big Bang"). Th?ng th??ng cách th?c này ???c coi là m?t th?c hành t?t h?n vì nó cho phép các v?n ?? v? giao di?n ???c ??nh v? m?t cách nhanh chóng và c? ??nh h?n.
Ki?m th? tích h?p làm l? ra các khi?m khuy?t trong các giao di?n và t??ng tác gi?a các thành ph?n tích h?p (Modules). Các nhóm thành ph?n ?? ???c ki?m th? l?n d?n t?ng b??c t??ng ?ng v?i các thu?c tính c?a c?u trúc thi?t k? ?? ???c tích h?p và ki?m th? cho ??n khi ph?n m?m ho?t ??ng nh? m?t h? th?ng.
Ki?m th? h? th?ng
s?aKi?m th? h? th?ng giúp xác minh r?ng m?t h? th?ng ???c tích h?p có ?áp ?ng ??y ?? các yêu c?u hay kh?ng. Ngoài ra, ki?m th? ph?n m?m ph?i ??m b?o r?ng các ch??ng trình ho?t ??ng nh? k? v?ng, kh?ng còn b? phá h?y hay l?i ph?n nào ?ó trong m?i tr??ng ho?t ??ng c?a nó ho?c kh?ng g?p s? c? khi ho?t ??ng v?i ti?n trình khác (?i?u này bao g?m b? nh? chia s? kh?ng b? h?ng, ngu?n tài nguyên kh?ng b? d? th?a hay chi?m d?ng quá m?c và kh?ng b? ??y ra khi ho?t ??ng song song các ti?n trình).
Ki?m th? m?c ch?p nh?n
s?aCu?i cùng h? th?ng ???c giao cho ng??i dùng ?? ki?m th? m?c ch?p nh?n.
Các lo?i hình ki?m th?
s?aKi?m th? cài ??t
s?aM?t ki?m th? cài ??t ??m b?o r?ng h? th?ng ???c cài ??t ?úng và ho?t ??ng t?i ph?n c?ng th?c t? c?a thi?t b?.
Ki?m th? kh? n?ng t??ng thích
s?aM?t nguyên nhan ph? bi?n c?a l?i ph?n m?m (th?c t? hay nh?n th?c) là thi?u kh? n?ng t??ng thích v?i các h? ?i?u hành ho?c ph?n m?m ?ng d?ng khác (có th? là các phiên b?n c? hay m?i c?a h? ?i?u hành), ho?c m?i tr??ng m?c tiêu khác nhau r?t nhi?u so v?i b?n g?c (ch?ng h?n nh? m?t thi?t b? ??u cu?i ho?c ?ng d?ng giao di?n dùng ?? ch?y trên máy tính ?? bàn hi?n nay ?ang ???c yêu c?u ?? tr? thành m?t ?ng d?ng web, trong ?ó ph?i th?c hi?n trong m?t trình duy?t web). Ví d?, trong tr??ng h?p thi?u tính t??ng thích ng??c có th? x?y ra b?i vì các l?p trình viên ch? phát tri?n và ki?m th? ph?n m?m trên phiên b?n m?i nh?t c?a m?i tr??ng m?c tiêu, mà kh?ng ph?i t?t c? ng??i dùng có th? ch?y. ?i?u này d?n ??n h?u qu? kh?ng l??ng ???c r?ng các ch?c n?ng m?i nh?t có th? kh?ng ho?t ??ng trong các phiên b?n tr??c ?ay c?a m?i tr??ng m?c tiêu nh?ng l?i có th? ch?y ???c v?i ph?n c?ng c? h?n và phiên b?n tr??c tr??c ?ó c?a m?i tr??ng m?c tiêu. ??i khi các v?n ?? nh? v?y có th? ???c c? ??nh b?ng cách ch? ??ng tr?u t??ng hóa ch?c n?ng h? ?i?u hành vào m?t Module ch??ng trình riêng bi?t ho?c th? vi?n.
Smoke & Sanity Testing
s?aSanity Testing xác ??nh tính h?p ly ?? ti?n hành các ki?m th? khác.
Smoke Testing ???c s? d?ng ?? xác ??nh xem có v?n ?? nghiêm tr?ng v?i b? ph?n c?a ph?n m?m, ví d? nh? m?t bài ki?m th? xác minh khi xay d?ng ph?n m?m.
Ki?m th? h?i quy
s?aKi?m th? h?i quy t?p trung vào vi?c tìm ki?m l?i sau khi x?y ra m?t thay ??i m? chính. C? th?, nó tìm cách phát hi?n ra các h?i quy c?a ph?n m?m ho?c các l?i c? quay tr? l?i. Nh?ng h?i quy nh? v?y x?y ra b?t c? khi nào ch?c n?ng ph?n m?m tr??c ?ay ?ang ho?t ??ng gi? t?m ng?ng nh? ?? ??nh. Th?ng th??ng, nh?ng h?i quy x?y ra nh? m?t h? qu? kh?ng l??ng tr??c ???c nh?ng thay ??i ch??ng trình, khi m?t ph?n m?i c?a ph?n m?m ???c phát tri?n xung ??t v?i m? t?n t?i tr??c ?ó. Ph??ng pháp ph? bi?n c?a ki?m th? h?i quy bao g?m ch?y l?i nh?ng ki?m th? tr??c ?ó và ki?m th? xem l?i c? ??nh tr??c ?ay t?i sao l?i xu?t hi?n. ?? sau c?a ki?m th? ph? thu?c vào các nguy c? và giai ?o?n trong quá trình phát hành các tính n?ng b? sung. Chúng có th? ???c hoàn t?t khi thay ??i thêm vào ??u ho?c cu?i b?n phát hành, c?ng có th? ???c có m?c ?? nguy hi?m th?p khi th?c hi?n ki?m th? tích c?c trên m?i tính n?ng.
Ví d?: m?t PM ?ang phát tri?n khi ki?m tra cho th?y nó ch?y t?t các ch?c n?ng A, B và C. Khi có thay ??i code c?a ch?c n?ng C, n?u ch? ki?m tra ch?c n?ng C thì ch?a ??, c?n ph?i ki?m tra l?i t?t c? các ch?c n?ng khác liên quan ??n ch?c n?ng C, trong ví d? này là A và B. Ly do là khi C thay ??i, nó có th? s? làm A và B kh?ng còn làm vi?c ?úng n?a.
M?c dù kh?ng là m?t m?c ki?m tra, th?c t? l?i cho th?y Regression Test là m?t trong nh?ng lo?i ki?m tra t?n nhi?u th?i gian và c?ng s?c nh?t. Tuy th?, vi?c b? qua Regression Test là "kh?ng ???c phép" vì có th? d?n ??n tình tr?ng phát sinh ho?c tái xu?t hi?n nh?ng l?i nghiêm tr?ng, m?c dù ta "t??ng r?ng" nh?ng l?i ?ó ho?c kh?ng có ho?c ?? ???c ki?m tra và s?a ch?a r?i!
Ki?m th? m?c ch?p nh?n
s?aKi?m th? m?c ch?p nh?n ???c hi?u theo m?t trong hai ngh?a sau:
- M?t Smoke Testing ???c s? d?ng nh? m?t bài ki?m th? m?c ch?p nh?n tr??c khi gi?i thi?u m?t b?n built m?i ?? th?c hi?n ti?n trình ki?m th? chính, t?c là tr??c khi th?c hi?n ki?m th? tích h?p ho?c h?i quy.
- Ki?m th? m?c ch?p nh?n do khách hàng th?c hi?n trong m?i tr??ng thí nghi?m riêng v?i nh?ng thi?t b? ph?n c?ng c?a h?, nó còn ???c bi?t ??n nh? là ki?m th? m?c ?? ch?p nh?n c?a ng??i dùng (UAT). Ki?m th? m?c ch?p nh?n còn ???c th?c hi?n nh? là m?t ph?n c?a quá trình chuy?n giao (hand-off) gi?a hai pha c?a quá trình phát tri?n ph?n m?m.
Ki?m th? Alpha
s?aKi?m th? Alpha là vi?c ki?m th? ho?t ??ng ch?c n?ng th?c t? ho?c gi? l?p do ng??i dùng/khách hàng ti?m n?ng ho?c m?t nhóm Tester ??c l?p th?c hi?n t?i n?i s?n xu?t ph?n m?m. Ki?m th? Alpha th??ng ???c s? d?ng cho ph?n m?m ??i trà (?óng gói s?n ?? bán) nh? là m?t hình th?c ki?m th? m?c ch?p nh?n n?i b? tr??c khi ph?n m?m chính th?c ?i vào giai ?o?n ki?m th? Beta.
Ki?m th? Beta
s?aKi?m th? phiên b?n Beta ???c ??a ra sau khi ki?m th? Alpha và có th? ???c coi là m?t hình th?c m? r?ng c?a ki?m th? m?c ch?p nh?n c?a ng??i dùng. Các phiên b?n c?a ph?n m?m, g?i là phiên b?n beta, ???c phát hành cho m?t ??i t??ng h?n ch? bên ngoài c?a nhóm l?p trình. Ph?n m?m này ???c phát hành cho nhi?u nhóm ng??i dùng ?? ki?m th? nhi?u h?n n?a và nó có th? ??m b?o s?n ph?m có ít thi?u sót và l?i. ??i khi, các phiên b?n beta ???c phát hành r?ng r?i ?? t?ng ph?m vi ph?n h?i th?ng tin t? m?t s? l??ng t?i ?a ng??i dùng trong t??ng lai.
Ki?m th? ch?c n?ng và phi ch?c n?ng
s?aCh?c n?ng ki?m th? liên quan ??n các ho?t ??ng xác minh m?t hành ??ng c? th? ho?c ch?c n?ng c?a các m?. ?ó là nh?ng ?i?u ???c tìm th?y trong các tài li?u yêu c?u, m?c dù có m?t s? ph??ng pháp phát tri?n ???c làm t? các cau chuy?n c?a ng??i dùng. Ki?m th? ch?c n?ng nh?m tr? l?i cho cau h?i "ng??i dùng có hay kh?ng làm ???c v?i tính n?ng c? th? này".
Ki?m th? phi ch?c n?ng ?? c?p ??n các khía c?nh c?a ph?n m?m có th? kh?ng liên quan ??n m?t ch?c n?ng c? th? ho?c hành ??ng ng??i dùng, ch?ng h?n nh? kh? n?ng m? r?ng và hi?u su?t khác, hành vi d??i nh?ng h?n ch? ho?c b?o m?t nh?t ??nh. Vi?c ki?m th? s? xác ??nh ?i?m cu?n mà t?i ?ó kh? n?ng m? r?ng và th?c hi?n c?a các ?i?m c?c tr? ho?t ??ng kh?ng ?n ??nh. Nh?ng yêu c?u phi ch?c n?ng th??ng là nh?ng ph?n ánh v? ch?t l??ng c?a s?n ph?m, ??c bi?t là trong b?i c?nh các quan ?i?m phù h?p c?a ng??i s? d?ng nó.
Ki?m th? s? phá h?y
s?aKi?m th? s? phá h?y c? g?ng làm h?ng ph?n m?m ho?c m?t h? th?ng con. Nó xác minh r?ng các ph?n m?m có ch?c n?ng ?úng ngay c? khi nó nh?n ???c ??u vào kh?ng h?p l? ho?c kh?ng mong mu?n, do ?ó t?o ra s? v?ng m?nh c?a xác nh?n ??u vào và thói quen qu?n ly các l?i. Chèn l?i ph?n m?m ? d?ng m? nh?t là m?t ví d? v? ki?m th? th?t b?i. Các c?ng c? ki?m th? phi ch?c n?ng th??ng m?i ???c liên k?t t? các trang chèn l?i ph?n m?m mà ? ?ó có s?n v? s? các m? ngu?n m? và các c?ng c? mi?n phí ?? th?c hi?n ki?m th? s? phá h?y ph?n m?m.
Ki?m th? hi?u su?t ph?n m?m
s?aKi?m th? hi?u su?t th??ng ???c ch?y ?? xác ??nh m?t h? th?ng hay h? th?ng con th?c hi?n nh? th? nào v? ?? nh?y và tính ?n ??nh theo m?t kh?i l??ng c?ng vi?c c? th?. Nó c?ng có th? dùng ?? ?i?u tra, ?ánh giá, xác nh?n ho?c xác minh các thu?c tính ch?t l??ng khác c?a h? th?ng, ch?ng h?n nh? kh? n?ng m? r?ng, ?? tin c?y và s? d?ng tài nguyên.
Ki?m th? l??ng t?i ch? y?u liên quan ??n vi?c ki?m th? h? th?ng có th? ti?p t?c ho?t ??ng d??i m?t l??ng t?i c? th?, cho dù ?ó là m?t l??ng l?n d? li?u ho?c m?t s? l??ng l?n ng??i s? d?ng. ?i?u này th??ng ???c g?i là kh? n?ng m? r?ng ph?n m?m. Các ho?t ??ng ki?m th? l??ng t?i có liên quan khi th?c hi?n nh? m?t ho?t ??ng phi ch?c n?ng th??ng ???c g?i là ki?m th? s?c ch?u ??ng.
Ki?m tra kh?i l??ng là m?t cách ?? ki?m tra các ch?c n?ng c?a ph?n m?m ngay c? khi m?t s? thành ph?n (ví d? nh? m?t t?p tin ho?c c? s? d? li?u) t?ng tri?t ?? kích th??c. Ki?m th? ?? c?ng là m?t cách ?? ki?m tra ?? b?n ??t xu?t ho?c ít g?p theo kh?i l??ng c?ng vi?c.
Ki?m th? tính ?n ??nh (th??ng ???c tham chi?u l??ng t?i và ki?m th? ?? b?n) giúp ki?m tra xem ph?n m?m có th? ho?t ??ng t?t liên t?c trong ho?c trên m?t chu k? ch?p nh?n ???c. Có r?t ít quy ??c v? các m?c tiêu c? th? c?a ki?m th? hi?u su?t nh? là: Các thu?t ng? l??ng t?i, ki?m th? hi?u su?t, ki?m th? tính m? r?ng và ki?m th? kh?i l??ng, th??ng ???c s? d?ng thay th? cho nhau.
H? th?ng ph?n m?m th?i gian th?c có nh?ng ràng bu?c chính xác th?i gian. ?? ki?m th? nh?ng ràng bu?c th?i gian ???c ?áp ?ng thì ng??i ta dùng ph??ng pháp ki?m th? th?i gian th?c.
Ki?m th? tính kh? d?ng
s?aKi?m tra tính kh? d?ng là r?t c?n thi?t ?? ki?m tra xem giao di?n có ti?n d?ng và d? hi?u v?i ng??i dùng kh?ng, nó liên quan tr?c ch? y?u ??n n?ng l?c s? d?ng c?a ?ng d?ng.
Ki?m th? kh? n?ng ti?p c?n
s?aKi?m th? kh? n?ng ti?p c?n bao g?m vi?c tuan th? các tiêu chu?n sau:
- Ng??i M? v?i ??o lu?t b?t kh? thi n?m 1990
- M?c 508 s?a ??i c?a ??o lu?t Ph?c h?i n?m 1973.
- Sáng ki?n ti?p c?n Web (WAI) c?a World Wide Web Consortium (W3C).
Ki?m th? b?o m?t
s?aKi?m th? b?o m?t ph?n m?m là r?t c?n thi?t trong vi?c x? ly d? li?u m?t và ng?n ch?n các hacker xam nh?p h? th?ng.
Tính toàn c?u và b?n ??a hóa
s?aKh? n?ng t?ng quát c?a ph?n m?m ???c toàn c?u và b?n ??a hóa có th? ???c t? ??ng ki?m tra mà kh?ng d?ch th?c t?, b?ng cách s? d?ng ph??ng th?c gi? b?n ??a. Nó s? xác minh r?ng các ?ng d?ng v?n ho?t ??ng, ngay c? sau khi nó ?? ???c d?ch sang m?t ng?n ng? m?i ho?c thích nghi v?i m?t n?n v?n hóa m?i (ch?ng h?n nh? ti?n t? và múi gi? khác nhau).
Vi?c th?c d?ch ra nhi?u ng?n ng? ph?i ???c ki?m tra. S? c? b?n ??a hóa có th? bao g?m:
- Ph?n m?m th??ng ???c b?n ??a hóa b?ng cách d?ch m?t danh sách các chu?i ra kh?i b?i c?nh, và ng??i d?ch có th? ch?n d?ch sai ??i v?i m?t chu?i m? ngu?n kh?ng r? ràng.
- Thu?t ng? k? thu?t có th? tr? nên kh?ng phù h?p n?u d? án ???c phiên d?ch b?i m?t s? ng??i ph?i h?p kh?ng t?t ho?c n?u ng??i d?ch thi?u th?n tr?ng.
- Nh?ng b?n d?ch t? ng? theo ngh?a ?en có v? kh?ng phù h?p, gi? t?o ho?c quá k? thu?t trong m?c tiêu ng?n t?.
- Th?ng ?i?p ch?a ???c d?ch b?ng ng?n ng? g?c có th? khó m? hoá trong m? ngu?n.
- M?t s? th?ng ?i?p có th? ???c t?o ra t? ??ng t?i th?i gian ch?y và chu?i k?t qu? có th? là sai ng? pháp và ch?c n?ng kh?ng chính xác, d? gay hi?u l?m ho?c khó hi?u.
- Ph?n m?m có th? s? d?ng m?t phím t?t mà kh?ng có ch?c n?ng trên layout phím ng?n ng? ngu?n nh?ng l?i ???c s? d?ng ?? g? ky t? trên layout ng?n ng? m?c tiêu.
- Ph?n m?m có th? thi?u h? tr? cho các ky t? m? hóa c?a ng?n ng? m?c tiêu.
- Ph?ng ch? và kích th?c ch? có th? phù h?p trong ng?n ng? ngu?n nh?ng có th? kh?ng phù h?p trong ng?n ng? m?c tiêu. Ví d?, ky t? CJK có th? kh?ng ??c ???c n?u font ch? quá nh?.
- M?t chu?i trong ng?n ng? m?c tiêu có th? kéo dài h?n so v?i các x? ly c?a ph?n m?m. ?i?u này có th? làm cho m?t ph?n chu?i b? ?n ?i v?i ng??i dùng và gay ra m?t s? va ch?m ho?c s? c? v?i ph?n m?m.
- Ph?n m?m có th? thi?u h? tr? thích h?p cho vi?c ??c ho?c vi?t v?n b?n hai chi?u.
- Ph?n m?m có th? hi?n th? hình ?nh v?i v?n b?n mà kh?ng ???c b?n ??a hóa.
- Nh?ng h? ?i?u hành b?n ??a có th? khác nhau trong cách ??t tên các file c?u hình h? th?ng, các bi?n m?i tr??ng và các ??nh d?ng khác nhau cho ngày tháng và ti?n t?.
Ki?m th? s? phát tri?n
s?aKi?m th? s? phát tri?n là m?t ti?n trình phát tri?n ph?n m?m có liên quan ??n ?ng d?ng ??ng b? c?a m?t lo?t các chi?n l??c phòng ng?a phát hi?n l?i và ?? gi?m thi?u r?i ro v? th?i gian và chi phí. Nó ???c th?c hi?n b?i các k? s? ho?c các nhà phát tri?n trong giai ?o?n xay d?ng vòng ??i phát tri?n ph?n m?m. Kh?ng ch? thay th? các tr?ng tam QA truy?n th?ng mà ph?i b? sung nó. Ki?m th? s? phát tri?n nh?m m?c ?ích lo?i b? nh?ng l?i xay d?ng tr??c khi m? ???c ??y m?nh QA, chi?n l??c này là nh?m nang cao ch?t l??ng c?a ph?n m?m c?ng nh? hi?u qu? c?a s? phát tri?n chung và c? quá trình QA.
Tùy thu?c vào k? v?ng c?a t? ch?c phát tri?n ph?n m?m, ki?m tra phát tri?n có th? bao g?m phan tích m? t?nh, phan tích lu?ng d? li?u, phan tích s? li?u, ?ánh giá m? can b?ng, ki?m th? ??n v?, phan tích m? bao ph?, truy xu?t ngu?n g?c, và các th?c hành xác minh ph?n m?m khác.
Ki?m th? A/B
s?aKi?m th? A/B là m?t ph??ng pháp s? d?ng trong qu?ng cáo ???c thí nghi?m ng?u nhiên v?i hai bi?n th? A và B, trong ?ó có s? ki?m soát và ?i?u tr? trong các ki?m th? có ki?m soát. Nh?ng thí nghi?m này th??ng ???c s? d?ng trong phát tri?n web và ti?p th?, c?ng nh? trong nhi?u hình th?c qu?ng cáo truy?n th?ng.
Quy trình ki?m th?
s?aM? hình truy?n th?ng CMMI và m? hình phát tri?n thác n??c
s?aM?t th?c t? ph? bi?n trong ki?m th? ph?n m?m ?ó là các ki?m th? ???c th?c hi?n b?i m?t nhóm các Tester ??c l?p sau khi các ch?c n?ng ???c phát tri?n và tr??c khi nó ???c chuy?n t?i khách hàng. Th?c hành này th??ng là k?t qu? trong giai ?o?n ki?m th? ?ang ???c s? d?ng nh? m?t b? ??m tham chi?u ?? bù ??p cho ?? tr? tham chi?u do ?ó ?nh h??ng ??n th?i gian dành cho vi?c ki?m th?.
M?t th?c t? khác là kh?i ??ng ki?m th? ph?n m?m t?i cùng m?t th?i ?i?m b?t ??u d? án và nó là m?t quá trình liên t?c cho ??n khi d? án k?t thúc.
M? hình phát tri?n Agile or Extreme
s?aNg??c l?i, m?t s? quy t?c ph?n m?m ?ang n?i lên nh? l?p trình c?c ?oan và s? chuy?n ??ng phát tri?n ph?n m?m AGILE, tuan th? m? hình "Test – Driven Development " (TDD). Trong quy trình này, ki?m th? ??n v? ???c vi?t ??u tiên do các k? s? ph?n m?m (th??ng là l?p trình song song trong các ph??ng pháp l?p trình Extreme). T?t nhiên nh?ng ki?m th? b??c ??u th?t b?i nh? d? ki?n, nh?ng sau ?ó Code ???c vi?t xong thì ph?n l?n các Test Suite s? t?ng b??c t?ng lên. Nó ???c c?p nh?t nh? là các l?i ?i?u ki?n m?i và các tr??ng h?p ti?m ?n v?a ???c phát hi?n ra, chúng ???c tích h?p v?i b?t k? ki?m th? h?i quy nào ???c phát tri?n. Ki?m th? ??n v? ???c duy trì cùng v?i ph?n còn l?i c?a các m? ngu?n ph?n m?m và ???c tích h?p chung vào quá trình xay d?ng (v?i nh?ng ki?m th? t??ng tác v?n ?? b? lo?i b? quá trình xay d?ng m?c ch?p nh?n th?ng th??ng). M?c tiêu cu?i cùng c?a quá trình ki?m th? này là ?? ??t ???c vi?c tri?n khai liên t?c mà ? ?ó nh?ng c?p nh?t ph?n m?m có th? ???c c?ng b? cho c?ng chúng th??ng xuyên.
Ph??ng pháp này làm t?ng các n? l?c ki?m th? tr??c khi ??ng ??n b?t k? nhóm ki?m th? chính th?c. Trong m?t s? m? hình phát tri?n khác, h?u h?t vi?c th?c hành các ki?m th? x?y ra sau khi các yêu c?u ?? ???c xác ??nh và quá trình m? hóa ?? ???c hoàn thành.
M? hình t? trên xu?ng và m? hình t? d??i lên
s?aKi?m th? t? d??i lên là m?t cách ti?p c?n ?? ki?m th? tích h?p n?i các thành ph?n t?n t?i ? c?p ?? th?p nh?t (Các Module, các bi?n pháp và các ch?c n?ng) ???c ki?m th? ??u tiên, sau ?ó tích h?p và s? d?ng ?? t?o thu?n l?i cho vi?c ki?m th? các thành ph?n c?p cao h?n. Sau khi ki?m th? tích h?p các Module ? c?p ?? th?p h?n s? ti?n hành ki?m th? ? các c?p ?? ti?p theo. Quá trình này ???c l?p ?i l?p l?i cho ??n khi các thành ph?n ? tr?t t? trên cùng c?a h? th?ng ???c ki?m tra. Cách ti?p c?n này là ch? h?u ích khi t?t c? ho?c h?u h?t các Module có c?p ?? phát tri?n t??ng ???ng s?n sàng ???c ki?m th?. Ph??ng pháp này c?ng giúp xác ??nh các c?p ?? phát tri?n ph?n m?m và làm cho nó d? dàng h?n ?? báo cáo ti?n ?? ki?m th? theo t? l? ph?n tr?m.
Ki?m th? t? trên xu?ng là m?t cách ti?p c?n ?? ki?m th? tích h?p các Module trên ??u v?i các Module nhánh ???c ki?m tra t?ng b??c cho ??n khi k?t thúc Module liên quan.
trong c? hai ph??ng pháp và các trình ?i?u khi?n ???c s? d?ng ?? c? ??nh các thành ph?n b? thi?u sót và ???c hoàn thi?n ? các c?p ?? thay th?.
M?t chu k? ki?m th? m?u
s?aD?u cho các bi?n th? t?n t?i gi?a các t? ch?c l?p trình thì v?n có m?t quy trình ?i?n hình ?? ki?m th?. M?u d??i ?ay là ph? bi?n trong các t? ch?c s? d?ng m? hình phát tri?n Waterfall (thác n??c). Các ho?t ??ng t??ng t? th??ng ???c tìm th?y trong các m? hình phát tri?n khác, nh?ng có th? có ho?c kh?ng r? ràng.
- Phan tích yêu c?u: Ki?m th? th??ng s? b?t ??u l?y các yêu c?u trong các giai ?o?n c?a vòng ??i phát tri?n ph?n m?m. Trong giai ?o?n thi?t k?, các Tester làm vi?c v?i các nhà phát tri?n ?? xác ??nh nh?ng khía c?nh c?a m?t thi?t k? ???c ki?m ch?ng và nh?ng th?ng s? ???c ki?m tra.
- L?p k? ho?ch ki?m th?: Chi?n l??c ki?m th?, k? ho?ch ki?m th?, ki?m th? sáng t?o... Và có m?t k? ho?ch là c?n thi?t vì nhi?u ho?t ??ng s? ???c th?c hi?n trong th?i gian ki?m th?.
- Ki?m th? phát tri?n: Các quy trình ki?m th?, các k?ch b?n, Test Case, các d? li?u ???c s? d?ng trong ki?m th? ph?n m?m.
- Ki?m th? th?c hi?n: D?a trên các k? ho?ch, các v?n b?n ki?m th? và các báo cáo b?t k? l?i nào tìm th?y cho nhóm phát tri?n.
- Ki?m th? báo cáo: Sau khi hoàn t?t ki?m th?, các Tester t?o ra các s? li?u và báo cáo cu?i cùng v? n? l?c ki?m th? c?a h? và có s?n sàng phát hành ph?n m?m hay kh?ng.
- Phan tích k?t qu? ki?m th? ho?c phan tích thi?u sót ???c th?c hi?n b?i ??i ng? phát tri?n k?t h?p v?i khách hàng ?? ??a ra quy?t ??nh xem nh?ng thi?u sót gì c?n ph?i ???c chuy?n giao, c? ??nh và t? b? (t?c là tìm ra ???c ph?n m?m ho?t ??ng chính xác) ho?c gi?i quy?t sau.
- Test l?i khi?m khuy?t: Khi m?t khi?m khuy?t ?? ???c x? ly b?i ??i ng? phát tri?n, nó ph?i ???c ki?m tra l?i b?i nhóm ki?m th?.
- Ki?m th? h?i quy: Ng??i ta th??ng xay d?ng m?t ch??ng trình ki?m th? nh? là t?p h?p c?a các bài ki?m tra cho m?i tích h?p m?i, s?a ch?a ho?c c? ??nh ph?n m?m, ?? ??m b?o r?ng nh?ng cung c?p m?i nh?t ?? kh?ng phá h?y b?t c? ?i?u gì và toàn b? ph?n m?m v?n còn ho?t ??ng m?t cách chính xác.
Ki?m th? ?óng gói: M?i phép th? th?a m?n các ch? tiêu truy xu?t và thu ???c nh?ng k?t qu? quan trong nh?: bài h?c kinh nghi?m, k?t qu?, các b?n ghi, tài li?u liên quan ???c l?u tr? và s? d?ng nh? m?t tài li?u tham kh?o cho các d? án trong t??ng lai.
Ki?m th? t? ??ng hóa
s?aNhi?u nhóm l?p trình càng ngày càng d?a vào các ki?m th? t? ??ng, ??c bi?t là các nhóm s? d?ng m? hình TDD (Test – Drive – Development). Có r?t nhi?u framework ???c vi?t bên trong và m? trong m?i phiên b?n ???c ch?y ki?m th? t? ??ng m?i lúc khi tích h?p liên t?c ph?n m?m.
Tuy ki?m th? t? ??ng kh?ng th? sao chép t?t c? m?i th? nh? con ng??i có th? làm (và t?t c? các cách h? ngh? ?? làm vi?c ?ó) nh?ng nó có th? r?t h?u ích cho vi?c ki?m th? h?i quy. M?c dù v?y, nó c?ng ?òi h?i ph?i có nh?ng k?ch b?n phát tri?n t?t ?? ti?n hành ki?m th?.
Các c?ng c? ki?m th?
s?aCh??ng trình ki?m th? và phát hi?n l?i có th? ???c h? tr? ?áng k? b?i các c?ng c? ki?m th? và g? l?i. Các c?ng c? ki?m th?/g? l?i bao g?m các tính n?ng nh?:
- Nh?ng màn hình ch??ng trình cho phép giám sát toàn b? ho?c m?t ph?n c?a m? ch??ng trình g?m:
- L?nh thi?t l?p simulator cho phép giám sát hoàn ch?nh c?p h??ng d?n và các thi?t b? vi l??ng.
- Hình ?nh ch??ng trình cho phép th?c hi?n t?ng b??c và ng?t ?o?n có ?i?u ki?n ? c?p ngu?n ho?c trong m? máy.
- Các báo cáo ?? bao ph? c?a m?.
- Các c?ng c? g? l?i bi?u t??ng ho?c k?t xu?t ??nh d?ng cho phép ki?m tra các bi?n t?i các ch? l?i và t?i các ?i?m ???c l?a ch?n.
- Các c?ng c? ki?m th? GUI ch?c n?ng t? ??ng ???c s? d?ng ?? l?p l?i m?c ?? ki?m tra h? th?ng th?ng qua GUI (giao di?n ?? h?a).
- ?i?m ??nh chu?n cho phép so sánh hi?u su?t ch?y th?c ???c ho?t ??ng.
- Phan tích hi?u su?t (ho?c các c?ng c? ??nh hình) có th? giúp làm n?i b?t các ?i?m t?i h?n và s? d?ng tài nguyên.
M?t s? các tính n?ng này có th? ???c k?t h?p vào m?t m?i tr??ng phát tri?n tích h?p (IDE).
?o l??ng trong ki?m th? ph?n m?m
s?aTh?ng th??ng, ch?t l??ng b? h?n ch? ??n các ch? ?? nh? tính chính xác, tính hoàn ch?nh và tính b?o m?t nh?ng c?ng có th? bao g?m các yêu c?u k? thu?t nh? ???c m? t? trong các tiêu chu?n ISO (ISO / IEC 9126), ch?ng h?n nh? kh? n?ng, ?? tin c?y, hi?u qu?, tính di ??ng, ?? b?o trì, kh? n?ng t??ng thích và kh? n?ng s? d?ng.
Có m?t s? s? li?u th??ng ???c s? d?ng các ?? ?o ph?n m?m, ho?c các bi?n pháp ???c s? d?ng ?? h? tr? trong vi?c xác ??nh tình tr?ng c?a ph?n m?m ho?c tính ??y ?? c?a các ki?m th?.
Ki?m th? thành ph?n l?
s?aQuá trình ki?m th? ph?n m?m có th? t?o ra m?t s? thành ph?n l?.
K? ho?ch ki?m th?
s?aM?t ki?m th? ??c ?i?m k? thu?t ???c g?i là m?t k? ho?ch ki?m th?. Các nhà phát tri?n nh?n th?c r? nh?ng gì k? ho?ch ki?m th? s? ???c th?c hi?n và th?ng tin này ???c cung c?p cho các nhà qu?n ly và các nhà phát tri?n. Y t??ng là ?? làm cho h? th?n tr?ng h?n khi phát tri?n m? c?a h? ho?c làm thay ??i b? sung. M?t s? c?ng ty có m?t tài li?u cao c?p ???c g?i là m?t chi?n l??c ki?m th?.
Ma tr?n truy xu?t ngu?n g?c
s?aM?t ma tr?n truy xu?t ngu?n g?c là m?t b?ng t??ng quan yêu c?u ho?c tài li?u thi?t k? các tài li?u ki?m th?. Nó ???c s? d?ng ?? thay ??i các bài ki?m tra khi ngu?n tài li?u liên quan ???c thay ??i, ch?n Test Case ?? th?c hi?n khi l?p k? ho?ch ?? ki?m th? h?i quy b?ng cách xem yêu c?u ?? bao ph?.
Tình hu?ng ki?m th? (Test Case)
s?aM?t Test Case th?ng th??ng bao g?m m?t ky hi?u nh?n d?ng duy nh?t, tài li?u tham kh?o yêu c?u t? m?t th?ng s? thi?t k?, ?i?u ki?n ti?n ??, các s? ki?n, m?t lo?t các b??c (còn ???c g?i là hành ??ng) ?? làm theo, ??u vào, ??u ra, k?t qu? d? ki?n, và k?t qu? th?c t?. Lam sàng xác ??nh m?t Test Case là m?t ??u vào và k?t qu? k? v?ng. Hi?u m?t cách ??n gi?n thì m?t Test Case có m?t d? li?u ??u vào thì s? có m?t k?t qu? ??u ra.
?i?u này có m?t th?c t? nh? là "cho ?i?u ki?n X nh?ng k?t qu? b?t ngu?n l?i là c?a b?n Y", trong khi Test Case khác ???c m? t? chi ti?t h?n v? k?ch b?n ??u vào và nh?ng gì có th? k? v?ng ? k?t qu?. Nó ??i khi có th? là m?t lo?t các b??c (nh?ng th??ng ???c ch?a trong m?t th? t?c ki?m tra riêng bi?t mà có th? ???c th?c hi?n ??i v?i nhi?u Test Case) t??ng ?ng v?i m?t lo?t k?t qu? k? v?ng.
K?ch b?n ki?m th?
s?aK?ch b?n ki?m th? là m?t th? t?c mà các l?p trình viên sao chép các thao tác c?a ng??i dùng. Ban ??u, thu?t ng? này ???c b?t ngu?n t? các s?n ph?m c?a c?ng vi?c ???c t?o ra b?i c?ng c? ki?m th? h?i quy t? ??ng. Test Case s? là c? s? ?? t?o ra k?ch b?n ki?m th? s? d?ng m?t c?ng c? ho?c m?t ch??ng trình.
B? ki?m th?
s?aCác thu?t ng? ph? bi?n nh?t ??i v?i m?t b? s?u t?p các Test Case là m?t b? ki?m th?. Các b? ki?m th? th??ng h??ng d?n chi ti?t ho?c có nh?ng m?c tiêu cho m?i b? s?u t?p các Test Case. Nó ch?c ch?n có m?t ph?n mà các th? nghi?m xác ??nh các c?u hình h? th?ng ???c s? d?ng trong quá trình test. M?t nhóm các Test Case c?ng có th? ch?a các tr?ng thái ho?c các b??c ?i?u ki?n tiên quy?t, và các m? t? c?a các ki?m th? sau ?ó.
Ki?m th? thi?t b? c? ??nh ho?c d? li?u
s?aTrong h?u h?t các tr??ng h?p, nhi?u b? giá tr? ho?c d? li?u ???c s? d?ng ?? ki?m tra các ch?c n?ng t??ng t? c?a m?t tính n?ng ??c bi?t. T?t c? các giá tr? ki?m th? và các thành ph?n m?i tr??ng thay ??i ???c thu th?p trong các t?p tin riêng bi?t và ???c l?u tr? nh? d? li?u ki?m th?. Nó c?ng r?t h?u ích ?? cung c?p d? li?u này cho khách hàng c?ng nh? cho m?t s?n ph?m ho?c m?t d? án.
Ki?m th? an toàn
s?aPh?n m?m, các c?ng c?, các m?u d? li?u ??u vào và ??u ra, và các c?u hình ??u ???c g?i chung là m?t ki?m th? an toàn.
Nh?ng ch?ng nh?n
s?aM?t s? ch??ng trình ch?ng nh?n hi?n hành h? tr? các Tester và các chuyên gia b?o ??m ch?t l??ng ph?n m?m duy trì ???c khát v?ng ngh? nghi?p c?a mình. Nh?ng ?òi h?i c?a ngh? nghi?p v? kh? n?ng và ki?n th?c khi?n m?t s? ng??i kh?ng th?c s? s?n sàng. Và n?u kh?ng ?? n?ng l?c và ki?n th?c mà v?n làm thì ch?c ch?n s? ?nh h??ng ??n ch?t l??ng và tính chuyên nghi?p c?a ph?n m?m.
Các lo?i gi?y ch?ng nh?n ki?m th? ph?n m?m
s?a- D?a vào thi c?: B?n c?n ph?i v??t qua các k? thi chính th?c ho?c c?ng có th? t? h?c (ví d? nh? cho ISTQB – H?i ??ng ?ánh giá trình ?? chuyên m?n ki?m th? ph?n m?m qu?c t? hay QAI – Vi?n b?o ??m ch?t l??ng).
- D?a vào giáo d?c: Th?ng qua các bài gi?ng h??ng d?n trong các khóa h?c giúp b?n ???c ch?ng nh?n (ví d?: Vi?n nghiên c?u qu?c t? v? ki?m th? ph?n m?m).
Các gi?y ch?ng nh?n ki?m th?
s?a- Hi?p h?i ch?ng nh?n ki?m th? ph?n m?m (CAST) ???c cung c?p b?i Vi?n b?o ??m ch?t l??ng.
- CATe ???c cung c?p b?i Vi?n qu?c t? v? ki?m th? ph?n m?m.
- Ch?ng nh?n qu?n ly trong ki?m th? ph?n m?m (CMST) ???c cung c?p b?i các Vi?n b?o ??m ch?t l??ng.
- Ch?ng nh?n qu?n ly ki?m th? (CTM) ???c cung c?p b?i Vi?n qu?c t? v? ki?m th? ph?n m?m.
- Ch?ng nh?n ph?n m?m Tester (CSTE) ???c cung c?p b?i Vi?n ??m b?o ch?t l??ng.
- Ch?ng nh?n th? nghi?m ph?n m?m chuyên nghi?p (CSTP) ???c cung c?p b?i Vi?n qu?c t? v? ki?m th? ph?n m?m.
- CSTP (TM) (phiên b?n Australia) ???c cung c?p b?i KJ Ross & Associates.
- ISEB ???c cung c?p b?i các H?i ??ng h? th?ng th?ng tin thi c?.
- ISTQB Certified Tester, Qu? C?p (CTFL) ???c cung c?p b?i các ph?n m?m ki?m tra H?i ??ng V?n b?ng qu?c t?.
- ISTQB Certified Tester, Cao c?p (CTAL) ???c cung c?p b?i các ph?n m?m ki?m tra H?i ??ng V?n b?ng qu?c t?
- Qu? TMPF TMap Next theo ???c cung c?p b?i Vi?n Ki?m tra Khoa h?c Th?ng tin.
- TMPA TMap Next Advanced ???c cung c?p b?i Vi?n Ki?m tra Khoa h?c Th?ng tin.
Ch?ng nh?n ??m b?o ch?t l??ng
s?a- CMSQ ???c cung c?p b?i Vi?n B?o ??m Ch?t l??ng (QAI).
- CSQA ???c cung c?p b?i Vi?n B?o ??m Ch?t l??ng (QAI).
- CSQE ???c cung c?p b?i Hi?p h?i ch?t l??ng Hoa K? (ASQ).
- CQIA ???c cung c?p b?i Hi?p h?i ch?t l??ng Hoa K? (ASQ).
S? tranh lu?n
s?aM?t trong s? nh?ng tranh lu?n v? ki?m th? ph?n m?m ch? y?u bao g?m:
Ki?m th? ph?n m?m ch?u trách nhi?m t?o nên nh?ng gì?
s?aThành viên c?a tr??ng ki?m th? "b?i c?nh theo ??nh h??ng" tin r?ng kh?ng có "các bài th?c hành t?t nh?t" mà là m?t t?p h?p các k? n?ng cho phép các th? nghi?m ?? ch?n ho?c phát minh ra th?c hành ki?m th? phù h?p v?i t?ng hoàn c?nh ??c bi?t.
AGILE so v?i Truy?n th?ng
s?aCác Tester nên h?c cách làm vi?c trong ?i?u ki?n kh?ng ch?c ch?n và thay ??i liên t?c ho?c h? nên nh?m vào quá trình "tr??ng thành"? Phong trào ki?m th? AGILE ?? ???c ph? bi?n ngày càng t?ng k? t? n?m 2006 ch? y?u là trong gi?i th??ng m?i, trong khi vi?c cung c?p ph?n m?m s? d?ng ph??ng pháp này cho chính ph? và quan s? mà còn là m? hình th? nghi?m, và l?a ch?n cu?i cùng trong ki?m th? v?n theo truy?n th?ng (ví d? nh? trong m? hình thác n??c).
Th?m dò ki?m th? so v?i k?ch b?n
s?aCác bài test ph?i ???c thi?t k? ??ng th?i khi chúng ???c th?c hi?n ho?c h? c?n ???c thi?t k? tr??c?
H??ng d?n ki?m th? so v?i t? ??ng
s?aM?t s? tác gi? tin r?ng ki?m th? t? ??ng hóa là quá ??t so v?i giá tr? c?a nó mà nó nên ???c s? d?ng m?t cách ti?t ki?m h?n. Thêm n?a, các qu?c gia phát tri?n ki?m th? ?i?u khi?n các nhà phát tri?n ph?i vi?t ??n v? ki?m th? nh? xUnit, tr??c khi m? hóa các ch?c n?ng.. Các ki?m th? sau ?ó có th? ???c coi nh? m?t cách ?? n?m b?t và th?c hi?n các yêu c?u.
Thi?t k? ph?n m?m so v?i th?c hi?n ph?n m?m
s?aKi?m th? nên ???c th?c hi?n ch? ? cu?i ho?c trong su?t quá trình?
Ai quan sát?
s?aY t??ng là b?t k? hình th?c quan sát c?ng là m?t s? ki?m th? t??ng tác hành ??ng c?ng có th? nhìn th?y ???c ?nh h??ng ?ó ?ang ???c ki?m th?.
Quy trình liên quan
s?aKi?m th? ph?n m?m ???c s? d?ng k?t h?p v?i xác minh và xác nh?n
s?a- Xác minh: Chúng ta ?? xay d?ng quy?n c?a ph?n m?m? (ngh?a là, nó th?c hi?n các yêu c?u).
- Xác nh?n: Chúng t?i ?? xay d?ng các ph?n m?m? (ngh?a là, kh?ng ?áp ?ng các yêu c?u c?a khách hàng).
Các ?i?u kho?n xác minh và xác nh?n th??ng ???c s? d?ng thay th? cho nhau trong ngành c?ng nghi?p, mà còn là ph? bi?n ?? xem hai thu?t ng? này kh?ng ?úng quy ??nh.
Theo chu?n IEEE Thu?t ng? C?ng ngh? Ph?n M?m:
- Xác minh là quá trình ?ánh giá m?t h? th?ng hay thành ph?n ?? xác ??nh xem các s?n ph?m c?a m?t giai ?o?n phát tri?n nh?t ??nh ?áp ?ng các ?i?u ki?n áp ??t t?i lúc b?t ??u c?a giai ?o?n ?ó.
- Xác nh?n là quá trình ?ánh giá m?t h? th?ng hay c?u ph?n trong hay cu?i c?a quá trình phát tri?n ?? xác ??nh xem nó ?áp ?ng yêu c?u quy ??nh.
Theo tiêu chu?n ISO 9000:
- Xác minh là kh?ng ??nh b?ng cách ki?m tra và th?ng qua cung c?p các b?ng ch?ng khách quan r?ng các yêu c?u c? th? ?? ???c th?c hi?n.
- Xác nh?n là kh?ng ??nh b?ng cách ki?m tra và th?ng qua cung c?p các b?ng ch?ng khách quan r?ng các yêu c?u cho m?t m?c ?ích s? d?ng c? th? ho?c ?ng d?ng ?? ???c hoàn thành.
??m b?o ch?t l??ng ph?n m?m (SQA)
s?aKi?m th? ph?n m?m là m?t ph?n trong ti?n trình b?o ??m ch?t l??ng ph?n m?m (SQA). Trong SQA, ph?n m?m chuyên x? ly và ki?m toán viên ???c quan tam ??n quá trình phát tri?n ph?n m?m h?n là ch? các hi?n v?t nh? tài li?u, m? s? và h? th?ng. H? ki?m tra và thay ??i ph?n m?m quy trình k? thu?t riêng c?a mình ?? gi?m s? l??ng các l?i mà k?t thúc trong ph?n m?m ???c g?i: cái g?i là "t? l? khi?m khuy?t". T?o nên cái mà m?t "t? l? l?i ch?p nh?n ???c" ph? thu?c vào b?n ch?t c?a ph?n m?m, m?t chuy?n bay m? ph?ng trò ch?i video s? có kh? n?ng ch?u l?i cao h?n nhi?u so v?i ph?n m?m cho máy bay th?c t?. M?c dù có nh?ng liên k?t ch?t ch? v?i SQA, các phòng ki?m th? th??ng t?n t?i m?t cách ??c l?p, và có th? kh?ng có ch?c n?ng SQA trong m?t s? c?ng ty.
Ki?m th? ph?n m?m là m?t nhi?m v? có y ??nh ?? phát hi?n l?i trong ph?n m?m b?ng cách ??i chi?u k?t qu? k? v?ng t? m?t ch??ng trình máy tính v?i k?t qu? th?c t? c?a nó cho m?t t?p h?p các y?u t? ??u vào. Ng??c l?i, b?o ??m ch?t l??ng là vi?c th?c hi?n các chính sách và th? t?c nh?m ng?n ng?a khi?m khuy?t x?y ra ? n?i ??u tiên.
Xem thêm
s?aTham kh?o
s?a- ^ Exploratory Testing L?u tr? ngày 26 tháng 1 n?m 2009 t?i Wayback Machine, Cem Kaner, Florida Institute of Technology, Quality Assurance Institute Worldwide Annual Software Testing Conference, Orlando, FL, November 2006
- ^ Software Testing by Jiantao Pan, Carnegie Mellon University
- ^ Leitner, A., Ciupa, I., Oriol, M., Meyer, B., Fiva, A., "Contract Driven Development = Test Driven Development – Writing Test Cases", Proceedings of ESEC/FSE'07: European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering 2007, (Dubrovnik, Croatia), September 2007
- ^ a b Testing Computer Software, 2nd Ed. New York, et al: John Wiley and Sons, Inc. 1999. tr. 480 pages. ISBN 0-471-35846-0.
{{Chú thích sách}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) L?i chú thích: Th?<ref>
kh?ng h?p l?: tên “Kaner1” ???c ??nh r? nhi?u l?n, m?i l?n có n?i dung khác - ^ Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. 2007. tr. 41–43. ISBN 0-470-04212-5. B?n g?c l?u tr? ngày 25 tháng 4 n?m 2012. Truy c?p ngày 7 tháng 10 n?m 2013.
{{Chú thích sách}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. 2007. tr. 426. ISBN 0-470-04212-5. B?n g?c l?u tr? ngày 25 tháng 4 n?m 2012. Truy c?p ngày 7 tháng 10 n?m 2013.
{{Chú thích sách}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ Section 1.1.2, Certified Tester Foundation Level Syllabus L?u tr? ngày 17 tháng 12 n?m 2008 t?i Wayback Machine, International Software Testing Qualifications Board
- ^ Principle 2, Section 1.3, Certified Tester Foundation Level Syllabus L?u tr? ngày 17 tháng 12 n?m 2008 t?i Wayback Machine, International Software Testing Qualifications Board
- ^ "Proceedings from the 5th International Conference on Software Testing and Validation (ICST). Software Competence Center Hagenberg. "Test Design: Lessons Learned and Practical Implications".
- ^ Software errors cost U.S. economy $59.5 billion annually L?u tr? ngày 7 tháng 7 n?m 2011 t?i Wayback Machine, NIST report
- ^ McConnell, Steve (2004). Code Complete (?n b?n th? 2). Microsoft Press. tr. 29. ISBN 0-7356-1967-0.
- ^ see D. Gelperin and W.C. Hetzel
- ^ a b Myers, Glenford J. (1979). The Art of Software Testing. John Wiley and Sons. ISBN 0-471-04328-1.
- ^ Company, People's Computer (1987). "Dr. Dobb's journal of software tools for the professional programmer". Dr. Dobb's journal of software tools for the professional programmer. Quy?n 12 s? 1–6. M&T Pub. tr. 116.
- ^ "The Growth of Software Testing". CACM. Quy?n 31 s? 6. 1988. tr. 687. doi:10.1145/62959.62965. ISSN 0001-0782.
{{Chú thích t?p chí}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ until 1956 it was the debugging oriented period, when testing was often associated to debugging: there was no clear difference between testing and debugging. "The Growth of Software Testing". CACM. Quy?n 31 s? 6. 1988. ISSN 0001-0782.
{{Chú thích t?p chí}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ From 1957–1978 there was the demonstration oriented period where debugging and testing was distinguished now – in this period it was shown, that software satisfies the requirements. "The Growth of Software Testing". CACM. Quy?n 31 s? 6. 1988. ISSN 0001-0782.
{{Chú thích t?p chí}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ The time between 1979–1982 is announced as the destruction oriented period, where the goal was to find errors. "The Growth of Software Testing". CACM. Quy?n 31 s? 6. 1988. ISSN 0001-0782.
{{Chú thích t?p chí}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ 1983–1987 is classified as the evaluation oriented period: intention here is that during the software lifecycle a product evaluation is provided and measuring quality. "The Growth of Software Testing". CACM. Quy?n 31 s? 6. 1988. ISSN 0001-0782.
{{Chú thích t?p chí}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ From 1988 on it was seen as prevention oriented period where tests were to demonstrate that software satisfies its specification, to detect faults and to prevent faults. "The Growth of Software Testing". CACM. Quy?n 31 s? 6. 1988. ISSN 0001-0782.
{{Chú thích t?p chí}}
: ?? b? qua tham s? kh?ng r?|authors=
(tr? giúp) - ^ Introduction, Code Coverage Analysis, Steve Cornett
- ^ Ron, Patton. Software Testing.
- ^ Laycock, G. T. (1993). "The Theory and Practice of Specification Based Software Testing". Dept of Computer Science, Sheffield University, UK. B?n g?c (PostScript) l?u tr? ngày 14 tháng 2 n?m 2007. Truy c?p ngày 13 tháng 2 n?m 2008.
{{Chú thích t?p chí}}
: Chú thích magazine c?n|magazine=
(tr? giúp) - ^ Bach, James (1999). "Risk and Requirements-Based Testing" (PDF). Computer. Quy?n 32 s? 6. tr. 113–114. Truy c?p ngày 19 tháng 8 n?m 2008.
- ^ Savenkov, Roman (2008). How to Become a Software Tester. Roman Savenkov Consulting. tr. 159. ISBN 978-0-615-23372-7.
- ^ "Visual testing of software – Helsinki University of Technology" (PDF). Truy c?p ngày 13 tháng 1 n?m 2012.
- ^ "Article on visual testing in Test Magazine". Testmagazine.co.uk. Truy c?p ngày 13 tháng 1 n?m 2012.
- ^ Patton, Ron (2006). Software Testing.
- ^ "SOA Testing Tools for Black, White and Gray Box SOA Testing Techniques". Crosschecknet.com. B?n g?c l?u tr? ngày 1 tháng 10 n?m 2018. Truy c?p ngày 10 tháng 12 n?m 2012.