ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
I TH
NGHI N C
NG
NG
HƯ NG
NG HƯ NG H
Đ CT
TR NG H T TRI N H N
L ẬN ĂN THẠC SĨ
HÀ NỘI, 2015
H N
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
I TH
NGHI N C
H N
NG
HƯ NG
NG
NG HƯ NG H
Đ CT
TR NG H T TRI N H N
Ngành: C
Chuyên ngành:
Mã số: 60480103
L ẬN ĂN THẠC SĨ
NGƯỜI HƯỚNG ẪN KH A HỌC TS H
HÀ NỘI, 2015
TƯỜNG INH
i
LỜI CA
Đ AN
T x ca đoa l
vă ày là ững nghiên cứu của bản thân tôi. Những kiến
thức trong lu vă ày được thể hi n dựa trên vi c tổng hợp các kiến thức từ nhi u
nguồn, từ những kinh nghi m thực tế khi
ể c c ự của c
y à
đa là
vi c.
Mọ
được trích dẫn trong lu vă đ u tuân theo lu t sở hữu trí tu và
lu t bản quy n tác giả, được li t kê mộ c c đ y đủ chính xác.
Tôi xin hoàn toàn chịu trách nhi m với những nội dung viết trong lu
vă
Học viên thực hi n
T
ày.
ii
LỜI C
N
Tôi xin bày tỏ lòng biế ơ sâ sắc đến tất cả mọ
ườ đã ú đỡ, hỗ trợ tôi thực
hi n lu vă ày, x cả ơ
oa a Đ Học, T ườ Đ Học C
N , Đ Học
Q ốc G a Hà Nộ đã c o
và o đ u ki để tôi thực hi n lu vă ày.
Tôi xin chân thành cả ơ sự ú đỡ và chỉ bảo t n tình của Th y
o, T ế s
Hồ Tườ
, ả v
ướng dẫn của tôi. Th y đã c ỉ bảo, đị
ướng nghiên cứu
thực hi n, hỗ trợ, t o nhữ đ u ki n tốt nhất cho tôi trong suốt quá trình thực hi đ tài.
Tôi xin bày tỏ lòng biế ơ sâ sắc đế
ữ
ườ â o
ađ
đ c
là ố, M , Chồ đã o đ u ki , động viên, ủng hộ trong những lúc khó k ă để
tôi có thể hoàn thành lu vă ày.
Xin chân thành cả ơ ất cả quý Th y, C
bảo, rèn luy n, truy đ t những tri thức, k ă , k
ữ
ă
ọc vừa qua.
o
oa, T ườ đã n tình chỉ
m quý báu cho tôi trong suố
Học viên thực hi n
T
iii
CL C
MỞ ĐẦU ................................................................................................................... 1
1 C ươ
1: Tổ
q a v A le ........................................................................... 3
1.1
Gớ
v A le ....................................................................................... 4
1.2
Tuyên ngôn Agile ......................................................................................... 4
1.3
N
1.4
Đ c ư
y
1.4.1 Tí
lý của A le ..................................................................................... 6
của A le ...................................................................................... 7
l
(I e a ve).................................................................................... 7
1.4.2 Tí
ế (I c e e al) và ế
1.4.3 Tí
íc ứ
( ay
1.4.4 N ó
ự ổ c ức và l
1.4.5 Q ả lý ế
íc
ực
óa (Evol
o a y) ......................... 8
– Adaptive) ............................................. 8
c ức ă
(E
.......................................................... 8
cal
ocess Co
ol) .................. 8
1.4.6 G ao ế
ực
(Face-to-face communication) .................................. 9
ể
ựa
ị ( al e-based development) ............................ 9
1.4.7
1.5
TDD ............................................................................................................ 10
1.5.1 Lịc sử .................................................................................................... 10
1.5.2 Ý ưở
................................................................................................... 11
1.5.3 Nguyên lý ............................................................................................... 11
1.5.4 Quy trình ................................................................................................. 14
1.5.5 C
cụ ỗ ợ ........................................................................................ 15
í ụ
1.5.6
1.5.7 Đ
1.6
ọa ....................................................................................... 15
................................................................................................. 20
ATDD ......................................................................................................... 21
1.6.1 Lịc sử .................................................................................................... 21
1.6.2 Ý ưở
................................................................................................... 21
1.6.3 Nguyên lý ............................................................................................... 22
1.6.4 Quy trình ................................................................................................. 24
1.6.5 C
cụ ỗ ợ ........................................................................................ 26
í ụ
1.6.6
1.6.7 Đ
ọa ....................................................................................... 27
................................................................................................. 28
iv
1.7
BDD ............................................................................................................ 29
1.7.1 Lịc sử .................................................................................................... 29
1.7.2 Ý ưở
................................................................................................... 29
1.7.3 Nguyên lý ............................................................................................... 30
1.7.4 Quy trình ................................................................................................. 31
1.7.5 C
cụ ỗ ợ ........................................................................................ 32
í ụ
1.7.6
ọa ....................................................................................... 32
1.7.7 Đ
1.8
................................................................................................. 38
Tổ
2 C ươ
ợ TDD, ATDD, DD .................................................................... 39
2:
ươ
đ c ả ằ
ví ụ ....................................................... 41
2.1
Lịc sử ........................................................................................................ 41
2.2
Ý ưở
2.3
Nguyên lý .................................................................................................... 42
....................................................................................................... 41
2.3.1 X c đị
v ừ
2.3.2 Đ c ả y
c
ục
................................................................ 43
ộ c c cộ
c o
ó
ực
ự
. ............ 46
2.3.3 M
ọa sử ụ
2.3.4 Là
ị đ c ả ....................................................................................... 50
2.3.5 Tự độ
ẩ
2.3.6 T ẩ
đị
2.3.7 L
ục ế
ví ụ .......................................................................... 48
đị
ườ
àk
x y
c
ay đổ đ c ả ................................. 51
....................................................................... 55
óa à l
ố
.......................................................... 57
2.4
Quy trình ..................................................................................................... 58
2.5
C
cụ ỗ ợ ............................................................................................ 63
2.6
í ụ
2.7
os
2.8
Đ
2.8.1 C c
ọa ........................................................................................... 64
Đ c ả ằ
ví ụ và UML ............................................................ 64
...................................................................................................... 65
c
ức của v c là
ày ay ................................. 65
2.8.2 N ữ lợ íc
à ươ
đ c ả q a ví ụ a l để vượ q a
c c c
ức
............................................................................................ 66
2.8.3 Đ ể
2.8.4 Đ
yế ................................................................................................ 67
của độ
ự
........................................................................... 67
3 C ươ 3: T ử
và đ
v c đưa ec f ca o y Exa le vào ực
ế ........................................................................................................................... 69
v
3.1
Mục đíc ..................................................................................................... 69
3.2
Q y
ể c c ự
3.2.1 Đ c đ ể
ự
....................................................................................... 69
3.2.2 M
ể
3.2.3 M
3.2.4
3.3
cả
..................................................................... 70
ế
ụ
đ c ả q a ví ụ ............................................. 74
ươ
ụ
ớ vào o c c độ ự
o c
ty ............................................................................................................. 77
T ực
q
ể
eo ec f ca o y Exa le
.................................................................................................................... 78
3.3.1 Đố vớ
3.3.2 Đố vớ
3.3.3 Dự
3.4
II....................................................... 69
Đ
ữ
ự
ự
đa
"
ử
o
q
ể we s e ướ
ể ............................. 78
ẫ
lịc " ........................... 80
................................................................................... 94
...................................................................................................... 94
3.4.1 Đ
của ả
3.4.2 Đ
của độ
â ............................................................................ 94
ự
........................................................................... 95
KẾT LUẬN ............................................................................................................. 96
vi
DANH M C TỪ VIẾT TẮT, THUẬT NGỮ
ATDD
Acceptance Test Driven Development
BDD
Behaviour Driven Development
TDD
Test Driven Development
ODC
Offshore Development Center
UML
Unified Modeling Language
VSII
Vietsoftware international
vii
NG TH ẬT NGỮ ANH IỆT
Tế
A
Specification by example
Tế
Đ c ả ằ
ví ụ
ể
ướ
kể
Behaviour Driven Development
ể
ướ
à
Test Driven Development
ể
ướ
kể
Acceptance Test Driven Development
User story
Câ c
y
Iterative
Tí
Incremental
T
Evolutionary
Tế
Adaptive
T íc
Empirical Process Control
Q ả lý ế
Face to face communication
G ao ế
ực
ể
ựa
l
ế
óa
Value based development
Team
Độ
Developer
L
ực
v
Bussiness analyst
N à
Goal
Mục
ửv
â
íc
v
Scope
Validation
T ẩ
Living document
Tà l
đị
số
í ụ k óa
Key Example
ị
ể
ể
Tester
ườ sử ụ
Test case
Ca k ể
Cross functionality
L
Self organizing
Tự ổ c ức
ử
c ức ă
vụ
ửc ấ
v
ử
viii
ANH
C
NG I
H NH
H NH
H
1.1 Mộ số ươ
A le ................................................................................... 3
H
1.2 C c â đo n l đ l p l i trong Agile ............................................................... 7
H
1.3 Mức độ phổ biến của c c ươ
2009 – 2010 [9] ................................... 10
H
1.4 TFD Cycle [13]................................................................................................... 12
H
1.5 TDD cycle and Traditional Cycle [10] ............................................................... 13
H
1.6 TDD step [15] ...................................................................................................... 14
H
1. T o o ec k ể
ử............................................................................................ 15
H
1. T
lớ
ss ess ............................................................................................. 16
H
1.9 Lớp nghi p vụ ..................................................................................................... 18
H
1.10 Lớ đố ượng dữ li u trung gian ..................................................................... 19
H
1.11 Thêm tham chiếu .............................................................................................. 19
H
1.12 Acceptance - Test Driven Development (ATDD) Cycle [6]............................. 23
H
1.13 Chu kỳ đơ
ản của ATDD [12] ...................................................................... 25
H
1.14 ATDD và TDD [12] .......................................................................................... 26
H nh 1.15 ATDD trong mô hình l p [12] ........................................................................... 26
H
1.16 Mối liên h của BDD, ATDD, TDD ................................................................. 40
H
2.1 Mô hình của specification by example [3] .......................................................... 42
H
2.2 M
x c đị
v ừ ục
................................................................ 44
H
2.3 T o câ c y
ườ sử ụ [3] ....................................................................... 45
H
2. M
ọa sử ụ ví ụ ....................................................................................... 49
H
2.5 Mộ đ c tả có thể tự động thực hi n với Concordion[3] ..................................... 52
H
2.6 Mộ đ c tả có thể thực
được với FitNesse[3] ................................................. 52
H
3.1 M
ể
.................................................................................. 70
H
3.2 T o o ec k ể
ử............................................................................................ 86
H
3.3 Cà đ s ec flow ................................................................................................. 86
H
3. Cà đ s ec
................................................................................................... 87
H
3.5 T o f le fea e .................................................................................................... 87
H
3. T o kịc ả ........................................................................................................ 88
H
3. T o s e c o kịc ả – ước 1 .......................................................................... 88
H
3. T o s e c o kịc ả – ước 2 .......................................................................... 89
H
3.9 T o s e c o kịc ả – ước 3 .......................................................................... 89
H
3.10 C y kịc ả ................................................................................................... 91
97
T I LIỆ THA
KH
Tiếng anh
1. Robert C.Martin and Mical Martin(2006), Agile Principles, Patterns, and Practices in
C# , pp 27-36.
2. Kent Beck (2002), Test - Driven Development By Example , pp 5.
3. Gojko Adzic (2011), SPECIFICATION BY EXAMPLE How successful team deliver
e
sof wa e , pp 3-197.
4. Mario E.Moreira, Michael Lester, Steve Holzner (2010), A le Fo D
5. Ma k s Ga e (2012), ATDD
D ve Develo e .
y Exa
6. Elisabeth Hendrickso (200 ), D v
pp 3.
7.
le: A
Develo
ac cal G
e
w
es , pp 7.
e o Acce a ce Tes
Tes : ATDD a
TDD ,
e
(2011), Lea -Agile Acceptance Test-Driven Development: Better
of wa e T o
Colla o a o , pp 2-6.
8. John Ferguson Smart (2014), BDD in Action: Behaviour Driven Development for the
whole software lifecycle , pp 12-30.
Website
9. />10. />11. />12. ( Part 7 – Part 10)
13. />14. />15. />