際際滷

際際滷Share a Scribd company logo
Test Driven Development
PHAM VAN DONG - VNLAB
N畛i dung
1. Software testing  Unit test
2. TDD l g狸?
3. C叩ch th畛c hi畛n
4. 働u i棚m
5. Demo
Software testing
UnitTest: test c叩c module (unit) 畛 ki畛m tra thi畉t k畉 chi ti畉t
c畛a n坦 l 動畛c th畛c hi畛n 炭ng.
IntegrationTest: test vi畛c gh辿p n畛i gi畛a m畛t nh坦m c叩c
module
SystemTest: test ton b畛 h畛 th畛ng 畛 xem 達 叩p 畛ng
動畛c software requirement
PerformanceTest: ki畛m tra c叩c tham s畛 QoS 動畛c 動a ra
khi x叩c inh y棚u c畉u c畛a s畉n ph畉m.
AcceptanceTest (CustomerTest, FunctionalTest) t畉o b畛i
end-user, customer 畛 ki畛m tra s畉n ph畉m nh畉n 動畛c
UnitTest
Unit testing l m畛t th畛 t畛c 畛 x叩c 畛nh nh畛ng module (unit) m達 ngu畛n
c畛a ph畉n m畛m c坦 ho畉t 畛ng 炭ng hay kh担ng.
 Trong l畉p tr狸nh th畛 t畛c : tr動董ng ch狸nh ri棚ng l畉, hm, th畛 t畛c,;
 Trong l畉p tr狸nh h動畛ng 畛i t動畛ng : ph動董ng th畛c, l畛p
UnitTest 動畛c th畛c hi畛n b畛i developers, ko ph畉i b畛i Software testers
ho畉c end-users.
H畉n ch畉 c畛a UnitTest
 Kh担ng ph叩t hi畛n 動畛c h畉t c叩c l畛i c畛a ctr狸nh
 Khi thay 畛i interface c畛a module -> ph畉i s畛a l畉i nhi畛u testcase -> khi
thi畉t k畉 testcase c畉n b畛 i nh畛ng code tr湛ng l畉p
Unit test
C叩ch c担ng c畛 hi畛n c坦
 ASP: ASPUnit
 C/C++: Cunit, CppUnit, Ctest
 C#: Nunit, csUnit, NUnitp,
 Objective-C: OCUnit
 PHP: PHPUnit
 Java: JUnit
TDD l g狸?
Quy tr狸nh 叩p d畛ng cho vi畛c x但y d畛ng unittest cho module
 Truy畛n th畛ng: x但y d畛ng xong module r畛i vi畉t unittest
 TDD: vi畉t test tr動畛c r畛i vi畉t code song song
TDD (Test Driven Development) l m畛t ph動董ng th畛c lm vi畛c,
hay m畛t quy tr狸nh vi畉t m達 hi畛n 畉i.
Y棚u c畉u ph畉i c坦 test t畛 畛ng
C叩ch th畛c hi畛n
Vi畉t 1 test cho hm m畛i. 畉m b畉o r畉ng test s畉 fail.
Chuy畛n qua vi畉t code s董 khai nh畉t cho hm 坦 畛 test c坦 th畛
pass.
T畛i 動u h坦a o畉n code c畛a hm v畛a vi畉t sao cho 畉m b畉o test
v畉n pass v t畛i 動u nh畉t cho vi畛c l畉p tr狸nh k畉 ti畉p
L畉p l畉i cho c叩c hm kh叩c t畛 b動畛c 1
TDD (Test Driven Development)
TDD (Test Driven Development)
C叩ch th畛c hi畛n
C叩c testsuite (file) n棚n 畉t ri棚ng ra, 畛c l畉p code v畛i module
N棚n s畛 d畛ng 25-50% th畛i gian 畛 vi畉t test v畛i l動畛ng code vi畉t
testcase kho畉ng 50% l動畛ng code module
C坦 th畛 l畉y code c畛a testcase lm example trong ti li畛u k畛 thu畉t
c畛a module
Sau th畛i gian di, s畛 testcase s畉 nhi畛u th畛i gian ch畉y l畛n
chia ra lm c叩c testcase m畛i v c滴. Testcase c滴 s畉 ch畉y v畛i t畉n
su畉t 鱈t h董n
働u i畛m
Th畛i gian vi畉t test th狸 nhi畛u, t動董ng 動董ng th畛i gian code module
nh動ng s畉 鱈t h董n th畛i gian ph畉i debug theo c叩c test truy畛n th畛ng
畉m b畉o h畛 th畛ng lu担n ch畉y, lu担n ho畉t 畛ng t畉i m畛i th畛i i畛m
g畉n nh動 鱈t ph畉i debug
D畛 dng ph叩t hi畛n 動畛c l畛i (ko 叩p 畛ng 炭ng requirement) m畛i
khi thay 畛i code c畛a module
Demo

More Related Content

What's hot (20)

Ki畛m th畛 ph畉n m畛m
Ki畛m th畛 ph畉n m畛m Ki畛m th畛 ph畉n m畛m
Ki畛m th畛 ph畉n m畛m
Nguyen Vu
Bai tap testing junit..
Bai tap testing junit..Bai tap testing junit..
Bai tap testing junit..
Mua Xuong
畛 叩n ki畛m th畛 ph畉n m畛m
畛 叩n ki畛m th畛 ph畉n m畛m畛 叩n ki畛m th畛 ph畉n m畛m
畛 叩n ki畛m th畛 ph畉n m畛m
Nguy畛n Anh
[Seminar] H動畛ng d畉n vi畉t test case
[Seminar] H動畛ng d畉n vi畉t test case[Seminar] H動畛ng d畉n vi畉t test case
[Seminar] H動畛ng d畉n vi畉t test case
Le Vu Trung Thanh
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛MTM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
Nguy畛n Anh
Ki畛m Th畛 Junit
Ki畛m Th畛 Junit Ki畛m Th畛 Junit
Ki畛m Th畛 Junit
Thanh Huong
2014/07/07 Software Testing - Truong Anh Hoang
2014/07/07 Software Testing - Truong Anh Hoang 2014/07/07 Software Testing - Truong Anh Hoang
2014/07/07 Software Testing - Truong Anh Hoang
Vu Hung Nguyen
Adp junit
Adp junitAdp junit
Adp junit
Phong Mai
畛 ti: X但y d畛ng c担ng c畛 ki畛m th畛 t畛 畛ng cho ch動董ng tr狸nh C
畛 ti: X但y d畛ng c担ng c畛 ki畛m th畛 t畛 畛ng cho ch動董ng tr狸nh C畛 ti: X但y d畛ng c担ng c畛 ki畛m th畛 t畛 畛ng cho ch動董ng tr狸nh C
畛 ti: X但y d畛ng c担ng c畛 ki畛m th畛 t畛 畛ng cho ch動董ng tr狸nh C
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m 畛ng d畛ng trong l畉p tr狸nh Java.
T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m  畛ng d畛ng trong l畉p tr狸nh Java.T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m  畛ng d畛ng trong l畉p tr狸nh Java.
T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m 畛ng d畛ng trong l畉p tr狸nh Java.
Nguy畛n Anh
6 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 2021
6 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 20216 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 2021
6 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 2021
MDuyn83
畉M B畉O CH畉T L働畛NG PH畉N M畛M
畉M B畉O CH畉T L働畛NG PH畉N M畛M畉M B畉O CH畉T L働畛NG PH畉N M畛M
畉M B畉O CH畉T L働畛NG PH畉N M畛M
ThanCoi20102202
Bai05 thiet ketestcase-k-trpm@softtesting-nntu
Bai05 thiet ketestcase-k-trpm@softtesting-nntuBai05 thiet ketestcase-k-trpm@softtesting-nntu
Bai05 thiet ketestcase-k-trpm@softtesting-nntu
Van Pham
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛MTM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
Nguy畛n Anh
Cnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhCnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinh
Ky Vo
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcase
Tr畉n 畛c Anh
Selenium ide
Selenium ide Selenium ide
Selenium ide
P辿 V畛t
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Jenny Nguyen
Ki畛m th畛 ph畉n m畛m
Ki畛m th畛 ph畉n m畛m Ki畛m th畛 ph畉n m畛m
Ki畛m th畛 ph畉n m畛m
Nguyen Vu
Bai tap testing junit..
Bai tap testing junit..Bai tap testing junit..
Bai tap testing junit..
Mua Xuong
畛 叩n ki畛m th畛 ph畉n m畛m
畛 叩n ki畛m th畛 ph畉n m畛m畛 叩n ki畛m th畛 ph畉n m畛m
畛 叩n ki畛m th畛 ph畉n m畛m
Nguy畛n Anh
[Seminar] H動畛ng d畉n vi畉t test case
[Seminar] H動畛ng d畉n vi畉t test case[Seminar] H動畛ng d畉n vi畉t test case
[Seminar] H動畛ng d畉n vi畉t test case
Le Vu Trung Thanh
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛MTM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
Nguy畛n Anh
Ki畛m Th畛 Junit
Ki畛m Th畛 Junit Ki畛m Th畛 Junit
Ki畛m Th畛 Junit
Thanh Huong
2014/07/07 Software Testing - Truong Anh Hoang
2014/07/07 Software Testing - Truong Anh Hoang 2014/07/07 Software Testing - Truong Anh Hoang
2014/07/07 Software Testing - Truong Anh Hoang
Vu Hung Nguyen
Adp junit
Adp junitAdp junit
Adp junit
Phong Mai
T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m 畛ng d畛ng trong l畉p tr狸nh Java.
T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m  畛ng d畛ng trong l畉p tr狸nh Java.T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m  畛ng d畛ng trong l畉p tr狸nh Java.
T狸m hi畛u c叩c k畛 thu畉t ki畛m th畛 ph畉n m畛m 畛ng d畛ng trong l畉p tr狸nh Java.
Nguy畛n Anh
6 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 2021
6 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 20216 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 2021
6 c但u h畛i ph畛ng v畉n tester th担ng d畛ng nm 2021
MDuyn83
畉M B畉O CH畉T L働畛NG PH畉N M畛M
畉M B畉O CH畉T L働畛NG PH畉N M畛M畉M B畉O CH畉T L働畛NG PH畉N M畛M
畉M B畉O CH畉T L働畛NG PH畉N M畛M
ThanCoi20102202
Bai05 thiet ketestcase-k-trpm@softtesting-nntu
Bai05 thiet ketestcase-k-trpm@softtesting-nntuBai05 thiet ketestcase-k-trpm@softtesting-nntu
Bai05 thiet ketestcase-k-trpm@softtesting-nntu
Van Pham
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛MTM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
TM HI畛U CC K畛 THU畉T KI畛M TH畛 PH畉N M畛M
Nguy畛n Anh
Cnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhCnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinh
Ky Vo
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcase
Tr畉n 畛c Anh
Selenium ide
Selenium ide Selenium ide
Selenium ide
P辿 V畛t
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Jenny Nguyen

Similar to TDD (Test Driven Development) (20)

001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
phamquocthoai7a4
Test Types & Test Levels.pdf
Test Types & Test Levels.pdfTest Types & Test Levels.pdf
Test Types & Test Levels.pdf
nhung875961
Automation Testing & TDD
Automation Testing & TDDAutomation Testing & TDD
Automation Testing & TDD
Nh畉t Nguy畛n Kh畉c
CHUONG 2.pdf
CHUONG 2.pdfCHUONG 2.pdf
CHUONG 2.pdf
ChauNguyenThiMinh6
Kiem thu
Kiem thuKiem thu
Kiem thu
Van Tiep Dinh
BG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptx
BG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptxBG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptx
BG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptx
VKit17
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
DuongDo35
Gi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQA
Gi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQAGi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQA
Gi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQA
Popping Khiem - Funky Dance Crew PTIT
Laravel testing
Laravel testingLaravel testing
Laravel testing
quachdaiphuc
K挑 thu畉t b畉o tr狸 ph畉n m畛m
K挑 thu畉t b畉o tr狸 ph畉n m畛mK挑 thu畉t b畉o tr狸 ph畉n m畛m
K挑 thu畉t b畉o tr狸 ph畉n m畛m
Ph畉m Trung 畛c
畛 ti: C担ng c畛 sinh d畛 li畛u th畛 t畛 畛ng cho ch動董ng tr狸nh Java
畛 ti: C担ng c畛 sinh d畛 li畛u th畛 t畛 畛ng cho ch動董ng tr狸nh Java畛 ti: C担ng c畛 sinh d畛 li畛u th畛 t畛 畛ng cho ch動董ng tr狸nh Java
畛 ti: C担ng c畛 sinh d畛 li畛u th畛 t畛 畛ng cho ch動董ng tr狸nh Java
D畛ch v畛 vi畉t bi tr畛n g坦i ZALO: 0909232620
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
TunTrung15
畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site
畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site
畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site
jackjohn45
Kiem tra phan mem
Kiem tra phan memKiem tra phan mem
Kiem tra phan mem
thinhtq207vn
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Van Pham
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan mem
TIen Le
Jmeter tool
Jmeter toolJmeter tool
Jmeter tool
Nhung H畛ng Nguy畛n
BDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjh
BDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjhBDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjh
BDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjh
YnTrn119521
ggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggggggggggggggggg
HngPhmTh35
kiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptx
kiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptxkiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptx
kiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptx
LnNguynThnh4
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
001-Tong-quan-kiem-thu_thanhDHTL_244.pdf
phamquocthoai7a4
Test Types & Test Levels.pdf
Test Types & Test Levels.pdfTest Types & Test Levels.pdf
Test Types & Test Levels.pdf
nhung875961
BG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptx
BG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptxBG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptx
BG_遺叩界-鉛看畉i-一庄畛m-岳鞄畛-沿鞄畉n-馨畛m-c董 b畉n.pptx
VKit17
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
DuongDo35
Gi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQA
Gi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQAGi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQA
Gi畉i Ng但n Hng 畉m B畉o Ch畉t L動畛ng Ph畉n M畛m PTIT - SQA
Popping Khiem - Funky Dance Crew PTIT
Laravel testing
Laravel testingLaravel testing
Laravel testing
quachdaiphuc
K挑 thu畉t b畉o tr狸 ph畉n m畛m
K挑 thu畉t b畉o tr狸 ph畉n m畛mK挑 thu畉t b畉o tr狸 ph畉n m畛m
K挑 thu畉t b畉o tr狸 ph畉n m畛m
Ph畉m Trung 畛c
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
TunTrung15
畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site
畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site
畛 Ti t狸m hi畛u ph畉n m畛m loadrunner ki畛m tra hi畛u nng web site
jackjohn45
Kiem tra phan mem
Kiem tra phan memKiem tra phan mem
Kiem tra phan mem
thinhtq207vn
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntuBai06 kiem tramodule-k-trpm@softtesting-nntu
Bai06 kiem tramodule-k-trpm@softtesting-nntu
Van Pham
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan mem
TIen Le
BDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjh
BDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjhBDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjh
BDCLPM_1.khc 畛 eaw xcvbuihlgfdsasrdtfyvgubhnjhgvfcxdzxrdctfvgbjh
YnTrn119521
ggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggggggggggggggggg
HngPhmTh35
kiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptx
kiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptxkiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptx
kiemthuphanmemnhom14 (1)nhomsvk17thuchien.pptx
LnNguynThnh4

More from 担ng 担 (10)

Maria db spider engine
Maria db spider engineMaria db spider engine
Maria db spider engine
担ng 担
X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...
X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...
X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...
担ng 担
Daily scrum
Daily scrumDaily scrum
Daily scrum
担ng 担
Training sql4
Training sql4Training sql4
Training sql4
担ng 担
Training sql3
Training sql3Training sql3
Training sql3
担ng 担
Training sql2
Training sql2Training sql2
Training sql2
担ng 担
Training sql1
Training sql1Training sql1
Training sql1
担ng 担
He thong chiu tai cao
He thong chiu tai caoHe thong chiu tai cao
He thong chiu tai cao
担ng 担
Pair programing
Pair programingPair programing
Pair programing
担ng 担
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPV
担ng 担
Maria db spider engine
Maria db spider engineMaria db spider engine
Maria db spider engine
担ng 担
X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...
X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...
X但y d畛ng v k畉t h畛p Kafka, Druid, Superset 畛 ua vo 畛ng d畛ng ph但n t鱈ch d畛 l...
担ng 担
Daily scrum
Daily scrumDaily scrum
Daily scrum
担ng 担
Training sql4
Training sql4Training sql4
Training sql4
担ng 担
Training sql3
Training sql3Training sql3
Training sql3
担ng 担
Training sql2
Training sql2Training sql2
Training sql2
担ng 担
Training sql1
Training sql1Training sql1
Training sql1
担ng 担
He thong chiu tai cao
He thong chiu tai caoHe thong chiu tai cao
He thong chiu tai cao
担ng 担
Pair programing
Pair programingPair programing
Pair programing
担ng 担
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPV
担ng 担

TDD (Test Driven Development)

  • 1. Test Driven Development PHAM VAN DONG - VNLAB
  • 2. N畛i dung 1. Software testing Unit test 2. TDD l g狸? 3. C叩ch th畛c hi畛n 4. 働u i棚m 5. Demo
  • 3. Software testing UnitTest: test c叩c module (unit) 畛 ki畛m tra thi畉t k畉 chi ti畉t c畛a n坦 l 動畛c th畛c hi畛n 炭ng. IntegrationTest: test vi畛c gh辿p n畛i gi畛a m畛t nh坦m c叩c module SystemTest: test ton b畛 h畛 th畛ng 畛 xem 達 叩p 畛ng 動畛c software requirement PerformanceTest: ki畛m tra c叩c tham s畛 QoS 動畛c 動a ra khi x叩c inh y棚u c畉u c畛a s畉n ph畉m. AcceptanceTest (CustomerTest, FunctionalTest) t畉o b畛i end-user, customer 畛 ki畛m tra s畉n ph畉m nh畉n 動畛c
  • 4. UnitTest Unit testing l m畛t th畛 t畛c 畛 x叩c 畛nh nh畛ng module (unit) m達 ngu畛n c畛a ph畉n m畛m c坦 ho畉t 畛ng 炭ng hay kh担ng. Trong l畉p tr狸nh th畛 t畛c : tr動董ng ch狸nh ri棚ng l畉, hm, th畛 t畛c,; Trong l畉p tr狸nh h動畛ng 畛i t動畛ng : ph動董ng th畛c, l畛p UnitTest 動畛c th畛c hi畛n b畛i developers, ko ph畉i b畛i Software testers ho畉c end-users. H畉n ch畉 c畛a UnitTest Kh担ng ph叩t hi畛n 動畛c h畉t c叩c l畛i c畛a ctr狸nh Khi thay 畛i interface c畛a module -> ph畉i s畛a l畉i nhi畛u testcase -> khi thi畉t k畉 testcase c畉n b畛 i nh畛ng code tr湛ng l畉p
  • 5. Unit test C叩ch c担ng c畛 hi畛n c坦 ASP: ASPUnit C/C++: Cunit, CppUnit, Ctest C#: Nunit, csUnit, NUnitp, Objective-C: OCUnit PHP: PHPUnit Java: JUnit
  • 6. TDD l g狸? Quy tr狸nh 叩p d畛ng cho vi畛c x但y d畛ng unittest cho module Truy畛n th畛ng: x但y d畛ng xong module r畛i vi畉t unittest TDD: vi畉t test tr動畛c r畛i vi畉t code song song TDD (Test Driven Development) l m畛t ph動董ng th畛c lm vi畛c, hay m畛t quy tr狸nh vi畉t m達 hi畛n 畉i. Y棚u c畉u ph畉i c坦 test t畛 畛ng
  • 7. C叩ch th畛c hi畛n Vi畉t 1 test cho hm m畛i. 畉m b畉o r畉ng test s畉 fail. Chuy畛n qua vi畉t code s董 khai nh畉t cho hm 坦 畛 test c坦 th畛 pass. T畛i 動u h坦a o畉n code c畛a hm v畛a vi畉t sao cho 畉m b畉o test v畉n pass v t畛i 動u nh畉t cho vi畛c l畉p tr狸nh k畉 ti畉p L畉p l畉i cho c叩c hm kh叩c t畛 b動畛c 1
  • 10. C叩ch th畛c hi畛n C叩c testsuite (file) n棚n 畉t ri棚ng ra, 畛c l畉p code v畛i module N棚n s畛 d畛ng 25-50% th畛i gian 畛 vi畉t test v畛i l動畛ng code vi畉t testcase kho畉ng 50% l動畛ng code module C坦 th畛 l畉y code c畛a testcase lm example trong ti li畛u k畛 thu畉t c畛a module Sau th畛i gian di, s畛 testcase s畉 nhi畛u th畛i gian ch畉y l畛n chia ra lm c叩c testcase m畛i v c滴. Testcase c滴 s畉 ch畉y v畛i t畉n su畉t 鱈t h董n
  • 11. 働u i畛m Th畛i gian vi畉t test th狸 nhi畛u, t動董ng 動董ng th畛i gian code module nh動ng s畉 鱈t h董n th畛i gian ph畉i debug theo c叩c test truy畛n th畛ng 畉m b畉o h畛 th畛ng lu担n ch畉y, lu担n ho畉t 畛ng t畉i m畛i th畛i i畛m g畉n nh動 鱈t ph畉i debug D畛 dng ph叩t hi畛n 動畛c l畛i (ko 叩p 畛ng 炭ng requirement) m畛i khi thay 畛i code c畛a module
  • 12. Demo