DANH MỤC TÀI LIỆU
Unit Test là gì?
Unit Test là gì?
1. Khái ni m v Unit Testệ ề
M t Unit là m t thành ph n PM nh nh t mà ta có th ki m tra đ c nh ể ể ượ ư
các hàm (Function), th t c (Procedure), l p (Class), ho c các ph ng th c ủ ụ ươ
(Method).
Vì Unit đ c ch n đ ki m tra th ng có kích th c nh ch c năng ượ ể ể ườ ướ
ho t đ ng đ n gi n, chúng ta không khó khăn gì trong vi c t ch c, ki m ơ ệ ổ
tra, ghi nh n và phân tích k t qu ki m tra nên vi c phát hi n l i s d ế ẽ ễ
dàng xác đ nh nguyên nhân và kh c ph c cũng t ng đ i d dàng vì ch ươ ố ễ
khoanh vùng trong m t Unit đang ki m tra.ộ ể
M i UT s g i đi m t thông đi p và ki m tra câu tr l i nh n đ c đúng ả ờ ượ
hay không, bao g m:
Các k t qu tr v mong mu nế ả ề
Các l i ngo i l mong mu n ạ ệ
Các đo n mã UT ho t đ ng liên t c ho c đ nh kỳ đ thăm dò và phát hi n ạ ộ
các l i k thu t trong su t quá trình phát tri n, do đó UT còn đ c g i là kỗ ỹ ượ
thu t ki m nghi m t đ ng. UTcác đ c đi m sau: ự ộ
Đóng vai trò nh nh ng ng i s d ng đ u tiên c a h th ng.ư ườ ử ụ
Ch có giá tr khi chúng có th phát hi n các v n đ ti m n ho c l i ề ề
k thu t.ỹ ậ
Khi làm Unit test chúng ta th ng th y các khái ni m sau:ườ ấ
1. Assertion: Là m t phát bi u mô t các công vi c ki m tra c n ti n ầ ế
hành, thí d : AreEqual(), IsTrue(), IsNotNull()… M i m t UT g m ỗ ộ
nhi u assertion ki m tra d li u đ u ra, tính chính xác c a các l i ữ ệ
ngo i l ra và các v n đ ph c t p khác nh : – S t n t i c a m t ư ự ồ
đ i t ng – Đi u ki n biên: Các giá tr có v t ra ngoài gi i h n hay ố ượ ượ
không – Th t th c hi n c a các lu ng d li u …ứ ự
2. Test Point: Là m t đ n v ki m tra nh nh t, ch ch a đ n gi n m t ơ ị ỏ ấ ơ
assertion nh m kh ng đ nh tính đúng đ n c a m t chi ti t mã nào đó. ắ ủ ế
M i thành viên d án đ u có th vi t m t test point. Test Case: Là ể ế
m t t p h p các test point nh m ki m tra m t đ c đi m ch c năng ộ ậ
c th , thí d toàn b giai đo n ng i dùng nh p d li u cho đ n ườ ữ ệ ế
khi thông tin đ c nh p vào c s d li u. Trong nhi u tr ng h p ượ ơ ở ườ
ki m tra đ c bi t và kh n c p có th không c n đ n test case. ẩ ấ ế
3. Test Suite: Là m t t p h p các test case đ nh nghĩa cho t ng module ộ ậ
ho c h th ng con. ệ ố
4. Regression Testing (ho c Automated Testing): Là ph ng pháp ki m ươ ể
nghi m t đ ng s d ng m t ph n m m đ c bi t. Cùng m t lo i d ử ụ
li u ki m tra gi ng nhau nh ng đ c ti n hành nhi u l n l p l i t ư ượ ế ạ ự
đ ng nh m ngăn ch n các l i cũ phát sinh tr l i. K t h p ở ạ ế
Regression Testing v i Unit Testing s đ m b o các đo n mã m i v n ẽ ả
đáp ng yêu c u thay đ i và các đo n mã cũ s không b nh h ng ị ả ưở
b i các ho t đ ng b o trì. ạ ộ
5. Production Code: Ph n mã chính c a ng d ng đ c chuy n giao ứ ụ ượ
cho khách hàng.
6. Unit Testing Code: Ph n mã ph đ ki m tra mã ng d ng chính, ụ ể
không đ c chuy n giao cho khách hàng.ượ ể
2.Vòng đ i Unit Test
UT có 3 tr ng thái c b n: ơ ả
Fail (tr ng thái l i)ạ ỗ
Ignore (t m ng ng th c hi n) ự ệ
Pass (tr ng thái làm vi c)ạ ệ
Toàn b UT đ c v n hành trong m t h th ng tách bi t. Có r t ượ ộ ệ ố
nhi u PM h tr th c thi UT v i giao di n tr c quan. Thông th ng, ỗ ợ ườ
tr ng thái c a UT đ c bi u hi n b ng các màu khác nhau: màu xanh ượ ệ ằ
(pass), màu vàng (ignore) và màu đ (fail)
UT ch th c s đem l i hi u qu khi:ỉ ự
Đ c v n hành l p l i nhi u l nượ ặ ạ ề ầ
T đ ng hoàn toànự ộ
Đ c l p v i các UT khác.ộ ậ
3. Thi t k Unit testế ế
M i UT đ u đ c ti t k theo trình t sau: ề ượ ế ế
Thi t l p các đi u ki n c n thi t: kh i t o các đ i t ng, xác đ nh ế ậ ế ở ạ ố ượ
tài nguyên c n thi t, xây d ng các d li u gi ế ữ ệ
Tri u g i các ph ng th c c n ki m tra. ươ ứ ầ
Ki m tra s ho t đ ng đúng đ n c a các ph ng th c. ạ ộ ươ
D n d p tài nguyên sau khi k t thúc ki m tra.ọ ẹ ế
4. ng d ng Unit testỨ ụ
Ki m tra m i đ n v nh nh t là các thu c tính, s ki n, th t c và ơ ủ ụ
hàm.
Ki m tra các tr ng thái và ràng bu c c a đ i t ng các m c sâu ố ượ
h n mà thông th ng chúng ta không th truy c p đ c.ơ ườ ậ ượ
Ki m tra các quy trình (process) và m r ng h n là các khung làm ở ộ ơ
vi c(workflow – t p h p c a nhi u quy trình) ợ ủ
5. L i ích c a vi c áp d ng Unit test ủ ệ
Th i gian đ u, ng i ta th ng do d khi ph i vi t UT thay vì t p trung ờ ầ ườ ườ ự ế
vào code cho các ch c năng nghi p v . Công vi c vi t Unit Test có th m t ế ể ấ
nhi u th i gian h n code r t nhi u nh ng l i có l i ích sau:ề ờ ơ ư ạ
T o ra môi tr ng lý t ng đ ki m tra b t kỳ đo n code nào, có ườ ưở ể ể
kh năng thăm dò và phát hi n l i chính xác, duy trì s n đ nh c a ự ổ
toàn b PM và giúp ti t ki m th i gian so v i công vi c g r i truy n ế ỡ ố
th ng.
Phát hi n các thu t toán th c thi không hi u qu , các th t c ch y ủ ụ
v t quá gi i h n th i gian.ượ ớ ạ
Phát hi n các v n đ v thi t k , x lý h th ng, th m chí các mô ề ề ế ế
hình thi t k .ế ế
Phát hi n các l i nghiêm tr ng có th x y ra trong nh ng tình hu ng ể ả
r t h p.ấ ẹ
T o hàng rào an toàn cho các kh i mã: B t kỳ s thay đ i nào cũng có ấ ự
th tác đ ng đ n hàng rào này và thông báo nh ng nguy hi m ti m ế ể ề
tàng.
Trong môi tr ng làm vi c Unit Test còn có tác d ng r t l n đ n năng su t ườ ấ ớ ế
làm vi c:
Gi i phóng chuyên viên QA kh i các công vi c ki m tra ph c t p. ứ ạ
Tăng s t tin khi hoàn thành m t công vi c. Chúng ta th ng ự ự ườ
c m giác không ch c ch n v các đo n mã c a mình nh li u các l i ư ệ
có quay l i không, ho t đ ng c a module hi n hành có b tác đ ng ạ ộ
không, ho c li u công vi c hi u ch nh mã có gây h h ng đâu đó… ư ỏ
Là công c đánh giá năng l c c a b n. S l ng các tình hu ng ố ượ
ki m tra (test case) chuy n tr ng thái “pass” s th hi n t c đ làm ẽ ể ệ ố
vi c, năng su t c a b n. ấ ủ
6. Cách code hi u qu v i Unit Test ả ớ
Phân tích các tình hu ng có th x y ra đ i v i mã. Đ ng b qua các tình ể ả
hu ng t i t nh t có th x y ra, thí d d li u nh p làm m t k t n i c s ế ơ ở
d li u th t b i, ng d ng b treo vì m t phép toán chia cho không, các th ạ ứ
t c đ a ra l i ngo i l sai có th phá h ng ng d ng m t cách n… ư ạ ệ
M i UT ph i b t đ u v i tr ng thái “fail” và chuy n tr ng thái “pass” sau ắ ầ
m t s thay đ i h p lý đ i v i mã chính.ộ ố
M i khi vi t m t đo n mã quan tr ng, hãy vi t các UT t ng ng cho đ n ế ế ươ ứ ế
khi b n không th nghĩ thêm tình hu ng nào n a. ố ữ
Nh p m t s l ng đ l n các giá tr đ u vào đ phát hi n đi m y u c a ố ượ ủ ớ ế
mã theo nguyên t c:
N u nh p giá tr đ u vào h p l thì k t qu tr v cũng ph i h p lế ị ầ ế ả ề
N u nh p giá tr đ u vào không h p l thì k t qu tr v ph i khôngế ị ầ ế ả ề
h p lợ ệ
S m nh n bi t các đo n mã không n đ nh và có nguy c gây l i cao, ế ổ ị ơ
vi t UT t ng ng đ kh ng ch .ế ươ ứ ể ố ế
ng v i m i đ i t ng nghi p v (business object) ho c đ i t ng truy ố ượ ố ượ
c p d li u (data access object), nên t o ra m t l p ki m tra riêng vì nh ng ữ ệ ộ ớ
l i nghiêm tr ng có th phát sinh t các đ i t ng này. ố ượ
Đ ngăn ch n các l i có th phát sinh tr l i th c thi t đ ng t t c UT ở ạ
m i khi có m t s thay đ i quan tr ng, hãy làm công vi c này m i ngày. ộ ự
Các UT l i cho chúng ta bi t thay đ i nào là nguyên nhân gây l i. ế ổ
Đ tăng hi u qu và gi m r i ro khi vi t các UT, c n s d ng nhi u ế ử ụ
ph ng th c ki m tra khác nhau. Hãy vi t càng đ n gi n càng t t.ươ ứ ể ế ơ
Cu i cùng, vi t UT cũng đòi h i s n l c, kinh nghi m và s sáng t o nh ế ỗ ự ư
vi t PM.ế
Tr c khi k t thúc ph n này, tôi có m t l i khuyên là vi t UT cũng t ng ướ ế ộ ờ ế ươ
t nh vi t mã m t ch ng trình, đi u b n c n làm là không ng ng th c ư ế ươ
hành. Hãy nh UT ch th c s mang l i l i ích n u chúng ta đ t v n đ ạ ợ ế
ch t l ng ph n m m lên hàng đ u h n là ch nh m k t thúc công vi c ấ ượ ơ ế
đúng th i h n. Khi đã thành th o v i công vi c vi t UT, b n có th đ c ế ể ọ
thêm v các k thu t xây d ng UT ph c t p h n, trong s đó có mô hình ứ ạ ơ
đ i t ng o s đ c trình bày trong ph n ti p theo. ượ ẽ ượ ế
thông tin tài liệu
Một Unit là một thành phần PM nhỏ nhất mà ta có thể kiểm tra được như các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method).
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×