test-driven development wikipedia collection

61
!"# %&'&()*&+ ,-.'% */& 01&' -0,(2& 345.6 *0057.*8 9&& /**1:;;20+&81&+.)1(&--8203; <0( 30(& .'<0(3)*.0'8 !"# %&'&()*&+ )*: 9)*= >? 9&1 >@A@ @A:@?:AB CDE !"#$%&'()"* &")",-./"*$ 0 1(2(."3(4

Upload: osvaldo-santana-neto

Post on 20-Apr-2015

39 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Test-Driven Development Wikipedia Collection

!"#$%&'&()*&+$,-.'%$*/&$01&'$-0,(2&$345.6$*0057.*8$9&&$/**1:;;20+&81&+.)1(&--8203;$<0($30(&$.'<0(3)*.0'8!"#$%&'&()*&+$)*:$9)*=$>?$9&1$>@A@$@A:@?:AB$CDE

!"#$%&'()"*+&")",-./"*$0+1(2(."3(4

Page 2: Test-Driven Development Wikipedia Collection

!"#$%#$&

'($)*+%&,%&$-./$"0.$)"# 1

,%&$23()4%#-3%4%+"50%#$ 6

7%8.4)"(-9()4%#-9%4%+"50%#$ 11

'**%5$.#*%-$%&$ 1:

;#$%<(.$)"#-$%&$)#< ==

>#)$-$%&$)#< =?

!"3%-(%@.*$"()#< =A

,%&$-*.&% BB

C>#)$ B6

,%&$-&$/D& BE

F"*G-"DH%*$ B:

I%5.(.$)"#-"@-*"#*%(#& ?=

9%5%#3%#*J-)#H%*$)"# ?6

9%5%#3%#*J-)#4%(&)"#-5()#*)5+% 61

'&&%($)"#-K*"05/$)#<L 6=

M%@%(%#*%&'($)*+%-I"/(*%&-.#3-!"#$()D/$"(& 6N

;0.<%-I"/(*%&O-P)*%#&%&-.#3-!"#$()D/$"(& 6:

'($)*+%-P)*%#&%&P)*%#&% 6A

Page 3: Test-Driven Development Wikipedia Collection

D&-*$),*03)*.0' A

!"#$%&'$()&$*(+!"#$%&'()*+,(-%./%0(+'1+*.28

!"#$% &'$()&$*(+% .-$ */&$ ,-&$ 0<$ -0<*4)(&$ *0$ 20'*(05$ */&$ &F&2,*.0'$ 0<$ *&-*-=$ */&$ 2031)(.-0'$ 0<$ )2*,)5$ 0,*203&-$ *01(&+.2*&+$ 0,*203&-=$ */&$ -&**.'%$ ,1$ 0<$ *&-*$ 1(&20'+.*.0'-=$ )'+$ 0*/&($ *&-*$ 20'*(05$ )'+$ *&-*$ (&10(*.'%$ <,'2*.0'-GAH$ 8E0330'5I=$ *&-*$ ),*03)*.0'$ .'J05J&-$ ),*03)*.'%$ )$3)',)5$1(02&--$ )5(&)+I$ .'$15)2&$ */)*$ ,-&-$ )$ <0(3)5.K&+$ *&-*.'%1(02&--8

,-".-*"/L5*/0,%/$ 3)',)5$ *&-*-$ 3)I$ <.'+$ 3)'I$ +&<&2*-$ .'$ )$ -0<*4)(&$ )115.2)*.0'=$ .*$ .-$ )$ 5)60(.0,-$ )'+$ *.3&$ 20'-,3.'%1(02&--8$ M'$ )++.*.0'=$ .*$3)I$'0*$ 6&$ &<<&2*.J&$ .'$ <.'+.'%$ 2&(*).'$ 25)--&-$ 0<$ +&<&2*-8$D&-*$ ),*03)*.0'$ .-$ )$ 1(02&--$ 0<4(.*.'%$ )$ 2031,*&($ 1(0%()3$ *0$ +0$ *&-*.'%$ */)*$40,5+$ 0*/&(4.-&$ '&&+$ *0$ 6&$ +0'&$3)',)55I8$N'2&$ *&-*-$ /)J&$ 6&&'),*03)*&+=$*/&I$2)'$6&$(,'$O,.275I8$D/.-$.-$0<*&'$*/&$30-*$20-*$&<<&2*.J&$3&*/0+$<0($-0<*4)(&$1(0+,2*-$*/)*$/)J&$)50'%$3).'*&')'2&$5.<&=$6&2),-&$&J&'$3.'0($1)*2/&-$0J&($*/&$5.<&*.3&$0<$*/&$)115.2)*.0'$2)'$2),-&$<&)*,(&-$*0$6(&)74/.2/$4&(&$40(7.'%$)*$)'$&)(5.&($10.'*$.'$*.3&8D/&(&$)(&$*40$%&'&()5$)11(0)2/&-$*0$*&-*$),*03)*.0':P 0(1"21.*-"+%$"#$*+38$D/&$1,65.2$Q,-,)55IR$.'*&(<)2&-$*0$25)--&-=$30+,5&-=$0($5.6()(.&-$)(&$*&-*&+$4.*/$)$J)(.&*I$0<

.'1,*$)(%,3&'*-$*0$J)5.+)*&$*/)*$*/&$(&-,5*-$*/)*$)(&$(&*,('&+$)(&$20((&2*8P S()1/.2)5$,-&($.'*&(<)2&$*&-*.'%8$L$*&-*.'%$<()3&40(7$%&'&()*&-$,-&($.'*&(<)2&$&J&'*-$-,2/$)-$7&I-*(07&-$)'+

30,-&$25.27-=$)'+$06-&(J&-$*/&$2/)'%&-$*/)*$(&-,5*$.'$*/&$,-&($.'*&(<)2&=$*0$J)5.+)*&$*/)*$*/&$06-&(J)65&$6&/)J.0($0<*/&$1(0%()3$.-$20((&2*8

D&-*$),*03)*.0'$ *005-$2)'$6&$&F1&'-.J&=$)'+$ .*$ .-$,-,)55I$&3150I&+$ .'$2036.')*.0'$4.*/$3)',)5$ *&-*.'%8$ M*$2)'$6&3)+&$20-*T&<<&2*.J&$.'$*/&$50'%&($*&(3=$&-1&2.)55I$4/&'$,-&+$(&1&)*&+5I$.'$(&%(&--.0'$*&-*.'%8N'&$4)I$*0$%&'&()*&$ *&-*$2)-&-$),*03)*.2)55I$ .-$30+&5T6)-&+$*&-*.'%$*/(0,%/$,-&$0<$)$30+&5$0<$ */&$-I-*&3$<0($ *&-*2)-&$%&'&()*.0'$6,*$(&-&)(2/$20'*.',&-$.'*0$)$J)(.&*I$0<$)5*&(')*.J&$3&*/0+050%.&-$<0($+0.'%$-08U/)*$*0$),*03)*&=$4/&'$*0$),*03)*&=$0($&J&'$4/&*/&($0'&$(&)55I$'&&+-$),*03)*.0'$)(&$2(,2.)5$+&2.-.0'-$4/.2/$*/&*&-*.'%$ Q0($ +&J&5013&'*R$ *&)3$ 3,-*$ 3)7&8$ 9&5&2*.'%$ */&$ 20((&2*$ <&)*,(&-$ 0<$ */&$ 1(0+,2*$ <0($ ),*03)*.0'$ 5)(%&5I+&*&(3.'&-$ */&$ -,22&--$ 0<$ */&$ ),*03)*.0'8$ L,*03)*.'%$ ,'-*)65&$ <&)*,(&-$ 0($ <&)*,(&-$ */)*$ )(&$ ,'+&(%0.'%$ 2/)'%&--/0,5+$6&$)J0.+&+8G>H

0(1"21.*-"+%$"#$*+3L$ %(04.'%$ *(&'+$ .'$ -0<*4)(&$ +&J&5013&'*$ .-$ */&$ ,-&$ 0<$ *&-*.'%$ <()3&40(7-$ -,2/$ )-$ */&$ FC'.*$ <()3&40(7-$ Q<0(&F)315&=$VC'.*$)'+$WC'.*R$*/)*$)5504$*/&$&F&2,*.0'$0<$,'.*$*&-*-$*0$+&*&(3.'&$4/&*/&($J)(.0,-$-&2*.0'-$0<$*/&$20+&)(&$)2*.'%$)-$&F1&2*&+$,'+&($J)(.0,-$2.(2,3-*)'2&-8$D&-*$2)-&-$+&-2(.6&$*&-*-$*/)*$'&&+$*0$6&$(,'$0'$*/&$1(0%()3$*0J&(.<I$*/)*$*/&$1(0%()3$(,'-$)-$&F1&2*&+8E0+&$ +(.J&'$ *&-*$ ),*03)*.0'$ .-$ )$ 7&I$ <&)*,(&$ 0<$ L%.5&$ -0<*4)(&$ +&J&5013&'*=$ 4/&(&$ .*$ .-$ 7'04'$ )-$ D&-*T+(.J&'+&J&5013&'*$QD""R8$C'.*$*&-*-$)(&$4(.**&'$*0$+&<.'&$*/&$<,'2*.0')5.*I$3'4"&'(*/&$20+&$.-$4(.**&'8$N'5I$4/&'$)55$*&-*-1)--$.-$*/&$20+&$20'-.+&(&+$20315&*&8$!(010'&'*-$)(%,&$*/)*$.*$1(0+,2&-$-0<*4)(&$*/)*$.-$60*/$30(&$(&5.)65&$)'+$5&--20-*5I$ */)'$20+&$ */)*$ .-$ *&-*&+$6I$3)',)5$&F150()*.0'8$ M*$ .-$ 20'-.+&(&+$30(&$ (&5.)65&$6&2),-&$ */&$20+&$20J&()%&$ .-6&**&(=$)'+$6&2),-&$.*$ .-$(,'$20'-*)'*5I$+,(.'%$+&J&5013&'*$()*/&($*/)'$0'2&$)*$ */&$&'+$0<$)$4)*&(<)55$+&J&5013&'*2I25&8$D/&$+&J&501&($+.-20J&(-$+&<&2*-$.33&+.)*&5I$,10'$3)7.'%$)$2/)'%&=$4/&'$.*$.-$5&)-*$&F1&'-.J&$*0$<.F8$#.')55I=20+&$ (&<)2*0(.'%$ .-$ -)<&(X$ *()'-<0(3.'%$ */&$ 20+&$ .'*0$ )$ -.315&($ <0(3$ 4.*/$ 5&--$ 20+&$ +,15.2)*.0'=$ 6,*$ &O,.J)5&'*6&/)J.0(=$.-$3,2/$5&--$5.7&5I$*0$.'*(0+,2&$'&4$+&<&2*-8

Page 4: Test-Driven Development Wikipedia Collection

D&-*$),*03)*.0' >

4.&56*7&8%9#".%:+$".;&7"%<49:=%$"#$*+3Y)'I$*&-*$),*03)*.0'$*005-$1(0J.+&$(&20(+$)'+$15)I6)27$<&)*,(&-$*/)*$)5504$,-&(-$*0$.'*&()2*.J&5I$(&20(+$,-&($)2*.0'-)'+$ (&15)I$ */&3$ 6)27$ )'I$ ',36&($ 0<$ *.3&-=$ 2031)(.'%$ )2*,)5$ (&-,5*-$ *0$ */0-&$ &F1&2*&+8$ D/&$ )+J)'*)%&$ 0<$ */.-)11(0)2/$.-$*/)*$.*$(&O,.(&-$5.**5&$0($'0$-0<*4)(&$+&J&5013&'*8$D/.-$)11(0)2/$2)'$6&$)115.&+$*0$)'I$)115.2)*.0'$*/)*/)-$ )$ %()1/.2)5$ ,-&($ .'*&(<)2&8$ Z04&J&(=$ (&5.)'2&$ 0'$ */&-&$ <&)*,(&-$ 10-&-$ 3)[0($ (&5.)6.5.*I$ )'+$ 3).'*).')6.5.*I1(065&3-8$\&5)6&55.'%$)$6,**0'$0($30J.'%$ .*$ *0$)'0*/&($1)(*$0<$ */&$4.'+04$3)I$(&O,.(&$ */&$ *&-*$ *0$6&$(&T(&20(+&+8\&20(+$)'+$15)I6)27$)5-0$0<*&'$)++-$.((&5&J)'*$)2*.J.*.&-$0($.'20((&2*5I$(&20(+-$-03&$)2*.J.*.&-8L$J)(.)*.0'$0'$*/.-$*I1&$0<$*005$.-$<0($*&-*.'%$0<$4&6$-.*&-8$Z&(&=$*/&$].'*&(<)2&]$.-$*/&$4&6$1)%&8$D/.-$*I1&$0<$*005$)5-0(&O,.(&-$5.**5&$0($'0$-0<*4)(&$+&J&5013&'*8$Z04&J&(=$-,2/$)$<()3&40(7$,*.5.K&-$&'*.(&5I$+.<<&(&'*$*&2/'.O,&-$6&2),-&.*$.-$(&)+.'%$/*35$.'-*&)+$0<$06-&(J.'%$4.'+04$&J&'*-8L'0*/&($J)(.)*.0'$.-$-2(.1*5&--$*&-*$),*03)*.0'$*/)*$+0&-$'0*$,-&$(&20(+$)'+$15)I6)27=$6,*$.'-*&)+$6,.5+-$)$30+&5$0<*/&$)115.2)*.0'$,'+&($ *&-*$ )'+$ */&'$&')65&-$ */&$ *&-*&($ *0$ 2(&)*&$ *&-*$ 2)-&-$6I$ -.315I$&+.*.'%$ .'$ *&-*$1)()3&*&(-$ )'+20'+.*.0'-8$D/.-$(&O,.(&-$'0$-2(.1*.'%$-7.55-=$6,*$/)-$)55$ */&$104&($)'+$<5&F.6.5.*I$0<$)$-2(.1*&+$)11(0)2/8$D&-*T2)-&3).'*&')'2&$.-$&)-I=$)-$*/&(&$.-$'0$20+&$*0$3).'*).'$)'+$)-$*/&$)115.2)*.0'$,'+&($*&-*$2/)'%&-$*/&$-0<*4)(&$06[&2*-2)'$-.315I$6&$(&T5&)('&+$0($)++&+8$M*$2)'$6&$)115.&+$*0$)'I$SCMT6)-&+$-0<*4)(&$)115.2)*.0'8

>6&$%$(%$"#$D&-*.'%$ *005-$ 2)'$ /&51$ ),*03)*&$ *)-7-$ -,2/$ )-$ 1(0+,2*$ .'-*)55)*.0'=$ *&-*$ +)*)$ 2(&)*.0'=$ SCM$ .'*&()2*.0'=$ 1(065&3+&*&2*.0'$ Q20'-.+&($ 1)(-.'%$ 0($ 1055.'%$ )%&'*-$ &O,.11&+$ 4.*/$ 0()25&-R=$ +&<&2*$ 50%%.'%=$ &*28=$ 4.*/0,*$ '&2&--)(.5I),*03)*.'%$*&-*-$.'$)'$&'+T*0T&'+$<)-/.0'8N'&$3,-*$7&&1$-)*.-<I.'%$101,5)($(&O,.(&3&'*-$4/&'$*/.'7.'%$0<$*&-*$),*03)*.0':P !5)*<0(3$)'+$N9$.'+&1&'+&'2&P ")*)$+(.J&'$2)1)6.5.*I$QM'1,*$")*)=$N,*1,*$")*)=$Y&*)$")*)RP E,-*03.K)65&$\&10(*.'%$Q"^$L22&--=$2(I-*)5$(&10(*-RP _)-I$+&6,%%.'%$)'+$50%%.'%P `&(-.0'$20'*(05$<(.&'+5I$5+3.'.3)5$6.')(I$<.5&-P _F*&'-.65&$a$E,-*03.K)65&$QN1&'$L!M-$*0$6&$)65&$*0$.'*&%()*&$4.*/$0*/&($*005-RP E0330'$"(.J&($Q#0($&F)315&=$.'$*/&$V)J)$+&J&5013&'*$&20-I-*&3=$*/)*$3&)'-$L'*$0($Y)J&'$)'+$*/&$101,5)(

M"_-R8$D/.-$&')65&-$*&-*-$*0$.'*&%()*&$4.*/$*/&$+&J&501&(-b$40(7<504-8P 9,110(*$,')**&'+&+$*&-*$(,'-$<0($.'*&%()*.0'$4.*/$6,.5+$1(02&--&-$)'+$6)*2/$(,'-8$E0'*.',0,-$M'*&%()*.0'$-&(J&(-

(&O,.(&$*/.-8P _3).5$W0*.<.2)*.0'-$Q),*03)*&+$'0*.<.2)*.0'$0'$<).5,(&$0($*/(&-/05+$5&J&5-R8$D/.-$3)I$6&$*/&$*&-*$(,''&($0($*005.'%

*/)*$&F&2,*&-$.*8P 9,110(*$+.-*(.6,*&+$&F&2,*.0'$&'J.(0'3&'*$Q+.-*(.6,*&+$*&-*$6&+RP ".-*(.6,*&+$)115.2)*.0'$-,110(*$Q+.-*(.6,*&+$9CDR

Page 5: Test-Driven Development Wikipedia Collection

D&-*$),*03)*.0' B

?.&)"/(.@%&55.(&76%*+%&'$()&$*(+L$<()3&40(7$.-$)'$.'*&%()*&+$-I-*&3$*/)*$-&*-$*/&$(,5&-$0<$L,*03)*.0'$0<$)$-1&2.<.2$1(0+,2*8$D/.-$-I-*&3$.'*&%()*&-*/&$<,'2*.0'$5.6()(.&-=$*&-*$+)*)$-0,(2&-=$06[&2*$+&*).5-$)'+$J)(.0,-$(&,-)65&$30+,5&-8$D/&-&$20310'&'*-$)2*$)-$-3)556,.5+.'%$65027-$4/.2/$'&&+$*0$6&$)--&365&+$*0$(&1(&-&'*$)$6,-.'&--$1(02&--8$D/&$<()3&40(7$1(0J.+&-$ */&$6)-.-$0<*&-*$),*03)*.0'$)'+$-.315.<.&-$*/&$),*03)*.0'$&<<0(*8D/&(&$ )(&$ J)(.0,-$ *I1&-$ 0<$ <()3&40(7-8$ D/&I$ )(&$ 2)*&%0(.K&+$ 0'$ */&$ 6)-.-$ 0<$ */&$ ),*03)*.0'$ 20310'&'*$ */&I5&J&()%&8$D/&-&$)(&:A8 ")*)T+(.J&'$*&-*.'%>8 Y0+,5)(.*IT+(.J&'$*&-*.'%B8 c&I40(+T+(.J&'$*&-*.'%d8 ZI6(.+$*&-*.'%?8 Y0+&5T6)-&+$*&-*.'%

A(5'8&.%!"#$%B'$()&$*(+%!((8#

%!((8%C&)"% %0()5&+D%C&)"% %E&$"#$%F".#*(+%

Z!$e,.27D&-*$!(0<&--.0')5 Z! A@8?

M^Y$\)*.0')5$#,'2*.0')5D&-*&(

M^Y$\)*.0')5 f8A8@8B

!)()-0<*$9NL*&-* !)()-0<* g8@

\)*.0')5$(060* M^Y$\)*.0')5 >@@A

9&5&'.,3 N1&'90,(2&$D005 A8@8h

9.57D&-* Y.2(0$#02,- >@@g

D&-*E0315&*& 93)(*^&)($90<*4)(& f8@

D&-*!)(*'&( Y.2(0$#02,- h8B

ULDM\ N1&'90,(2&$D005 A8h8?

G""%&8#(P i.-*$0<$SCM$*&-*.'%$*005-P 90<*4)(&$*&-*.'%P 9I-*&3$*&-*.'%P D&-*$),*03)*.0'$<()3&40(7P C'.*$*&-*

Page 6: Test-Driven Development Wikipedia Collection

D&-*$),*03)*.0' d

H";"."+7"#GAH c05)4)=$L+)3X$Z,.K.'%)=$"0(0*)$Q>@@jR8$5/+"#%+'6(7'4'8+(9&':'.+*".;(<'1+(9&%8+*8'1(*.(="4+)%&'(-%.%2'#'.+$Q/**1:;$;$4448$4.5&I8$203;

U.5&IE"L;$U.5&ID.*5&;$1(0+,2*E+T@dj@@d>A>?8$/*35R8$U.5&ITM___$E031,*&($902.&*I$!(&--8$18kjd8$M9^Wk@dj@@d>A>?8$8G>H ^(.)'$Y)(.278$]U/&'$9/0,5+$)$D&-*$^&$L,*03)*&+l]$Q/**1:;$;$4448$-*.27I3.'+-8$203;$-.*&4.+&8$)-1l#,'2*.0'm&+&*).5a$N6[&2*DI1&mL\Da

N6[&2*M+m>@A@R8$9*.27IY.'+-82038$8$\&*(.&J&+$>@@gT@fT>@8

P _5<(.&+&$",-*.'=$&*$)58:$5/+"#%+'6(="4+)%&'(>'1+*.2?(L++.-0'$U&-5&I=$Aggg=$M9^W$@T>@AdBT>fjT@P _5<(.&+&$",-*.'=$&*$)58:$@#$0'#'.+*.2(5/+"#%+'6(="4+)%&'(>'1+*.2?(L++.-0'$U&-5&I=$M9^W$A@$@B>A?f@?Ah=

M9^WTAB:$gjfT@B>A?f@?AAP Y)(7$#&4-*&($a$"0(0*/I$S()/)3$QAgggR8$="4+)%&'(>'1+(5/+"#%+*".8$LEY$!(&--;L++.-0'TU&-5&I8

M9^WkgjfT@>@ABBAd@@8P \03)'$9)J&'70J:$A")(+"(<'8"#'(%(="4+)%&'(>'1+'&?(\03)'$9)J&'70J$E0'-,5*.'%=$>@@f=$M9^W

gjfT@ThA?T>BBj>TjP Z0'%$n/,$&*$)58$Q>@@fR8$5=>(BCD;(9&"8''6*.21("4(+,'(E&6(@.+'&.%+*".%0(F"&G1,"$(".(5/+"#%+*".("4(="4+)%&'(>'1+

Q/**1:;$;$10(*)58$)238$0(%;$2.*)*.0'8$2<3l.+mABj@@d>oR8$LEY$!(&--8$M9^WkgjfTATh@??fT@B@T>8

IJ$".+&8%8*+@#P L,*03)*.0'$YI*/-$Q/**1:;$;$4448$6&'2/3)(7O)8$203;$1+<;$1)1&(-p),*03)*.0'p3I*/-8$1+<R$6I$Y8$W8$L5)3P S&'&()*.'%$D&-*$E)-&-$L,*03)*.2)55I$Q/**1:;$;$4448$0-2T&-8$+&;$3&+.);$1+<;

+9!LE_W_U9>@@jTBpD)(%&*i.'7p_36&++&+D&-*&(p&'pj@A8$1+<RP !()2*.2)5$_F1&(.&'2&$.'$L,*03)*&+$D&-*.'%$Q/**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+mBBRP D&-*$L,*03)*.0':$"&5.J&(.'%$^,-.'&--$`)5,&$Q/**1:;$;$4448$)115)6-8$203;$.'*&(')5;

)11p4/.*&1)1&(p*&-*p),*03)*.0'p+&5.J&(.'%p6,-.'&--pJ)5,&pAJ@@8$1+<RP D&-*$L,*03)*.0'$9')7&$N.5$Q/**1:;$;$4448$-)*.-<.2&8$203;$)(*.25&-;$*&-*p),*03)*.0'p-')7&p0.58$1+<R$6I$V)3&-$^)2/P U/&'$9/0,5+$)$D&-*$^&$L,*03)*&+l$Q/**1:;$;$4448$-*.27I3.'+-8$203;$(8$)-1l#m"L\Dp>@A@R$6I$^(.)'$Y)(.27P U/I$L,*03)*.0'$!(0[&2*-$#).5$Q/**1:;$;$3)(*1(0-&(J.2&8$203;$U/Ip90<*4)(&p!(0[&2*-p#).58$1+<R$6I$L(*$^&)55P S,.+&5.'&-$<0($D&-*$L,*03)*.0'$<()3&40(7$Q/**1:;$;$.'<08$)55.)'2&%506)5-&(J.2&-8$203;$!0(*)5-;$B@f>j;$+02-;$*&-*

),*03)*.0'$<()3&40(7$)'+$%,.+&5.'&-8$1+<RP L+J)'2&+$D&-*$L,*03)*.0'$Q/**1:;$;$4448$*&-*)(-8$203;$+02-;$?SDL8$1+<R

Page 7: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* ?

!"#$21.*-"+%1"-"8(5)"+$!"#$21.*-"+% 1"-"8(5)"+$% Q!KKR$ .-$ )$ -0<*4)(&$ +&J&5013&'*$ 1(02&--$ */)*$ (&5.&-$ 0'$ */&$ (&1&*.*.0'$ 0<$ )$ J&(I$ -/0(*+&J&5013&'*$2I25&:$<.(-*$*/&$+&J&501&($4(.*&-$)$<).5.'%$),*03)*&+$*&-*$2)-&$*/)*$+&<.'&-$)$+&-.(&+$.31(0J&3&'*$0($'&4<,'2*.0'=$*/&'$1(0+,2&-$20+&$*0$1)--$*/)*$*&-*$)'+$<.')55I$(&<)2*0(-$*/&$'&4$20+&$*0$)22&1*)65&$-*)'+)(+-8$c&'*$^&27=4/0$.-$2(&+.*&+$4.*/$/)J.'%$+&J&501&+$0($ b(&+.-20J&(&+b$*/&$*&2/'.O,&=$-*)*&+$.'$>@@B$*/)*$D""$&'20,()%&-$-.315&+&-.%'-$)'+$.'-1.(&-$20'<.+&'2&8GAH

D&-*T+(.J&'$ +&J&5013&'*$ .-$ (&5)*&+$ *0$ */&$ *&-*T<.(-*$ 1(0%()33.'%$ 20'2&1*-$ 0<$ &F*(&3&$ 1(0%()33.'%=$ 6&%,'$ .'Aggg=G>H$6,*$30(&$(&2&'*5I$/)-$2(&)*&+$30(&$%&'&()5$.'*&(&-*$.'$.*-$04'$(.%/*8GBH

!(0%()33&(-$)5-0$)115I$*/&$20'2&1*$*0$.31(0J.'%$)'+$+&6,%%.'%$5&%)2I$20+&$+&J&501&+$4.*/$05+&($*&2/'.O,&-8GdH

H"L'*.")"+$#D&-*T+(.J&'$ +&J&5013&'*$ (&O,.(&-$ +&J&501&(-$ *0$ 2(&)*&$ ),*03)*&+$ ,'.*$ *&-*-$ */)*$ +&<.'&$ 20+&$ (&O,.(&3&'*-Q.33&+.)*&5IR$6&<0(&$4(.*.'%$*/&$20+&$.*-&5<8$D/&$*&-*-$20'*).'$)--&(*.0'-$*/)*$)(&$&.*/&($*(,&$0($<)5-&8$!)--.'%$*/&$*&-*-20'<.(3-$20((&2*$6&/)J.0($)-$+&J&501&(-$&J05J&$)'+$(&<)2*0($*/&$20+&8$"&J&501&(-$0<*&'$,-&$*&-*.'%$<()3&40(7-=$-,2/)-$FC'.*=$*0$2(&)*&$)'+$),*03)*.2)55I$(,'$-&*-$0<$*&-*$2)-&-8

!"#$21.*-"+%1"-"8(5)"+$%7D78"

L$%()1/.2)5$(&1(&-&'*)*.0'$0<$*/&$+&J&5013&'*$2I25&=$,-.'%$)$6)-.2$<5042/)(*

D/&$<05504.'%$-&O,&'2&$.-$6)-&+$0'$*/&6007$ >'1+H7&*:'.( 7':'0"$#'.+( 3I

JK%#$0'GAH$8

MN%B11%&%$"#$

M'$$"#$21.*-"+%1"-"8(5)"+$=$&)2/$'&4<&)*,(&$6&%.'-$4.*/$4(.*.'%$)$*&-*8$D/.-*&-*$ 3,-*$ .'&J.*)65I$ <).5$ 6&2),-&$ .*$ .-4(.**&'$ 6&<0(&$ */&$ <&)*,(&$ /)-$ 6&&'.315&3&'*&+8$ QM<$ .*$ +0&-$ '0*$ <).5=$ */&'&.*/&($ */&$ 1(010-&+$ 6'&47+ <&)*,(&)5(&)+I$&F.-*-$ 0($ */&$ *&-*$ .-$ +&<&2*.J&8RD0$ 4(.*&$ )$ *&-*=$ */&$ +&J&501&($ 3,-*25&)(5I$ ,'+&(-*)'+$ */&$ <&)*,(&b--1&2.<.2)*.0'$ )'+$ (&O,.(&3&'*-8$ D/&+&J&501&($2)'$)220315.-/$*/.-$ */(0,%/,-&$2)-&-$)'+$,-&($-*0(.&-$*/)*$20J&($*/&$(&O,.(&3&'*-$)'+$&F2&1*.0'$20'+.*.0'-8$D/.-$20,5+$)5-0$.315I$)$J)(.)'*=$0(30+.<.2)*.0'$0<$)'$&F.-*.'%$*&-*8$D/.-$.-$)$+.<<&(&'*.)*.'%$<&)*,(&$0<$*&-*T+(.J&'$+&J&5013&'*$J&(-,-$4(.*.'%$,'.*$*&-*-%4+'&( */&$ 20+&$ .-$4(.**&':$ .*$3)7&-$ */&$ +&J&501&($ <02,-$ 0'$ */&$ (&O,.(&3&'*-$3'4"&'(4(.*.'%$ */&$ 20+&=$ )$ -,6*5&$ 6,*.310(*)'*$+.<<&(&'2&8

Osvaldo Santana
Page 8: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* h

ON%H'+%&88%$"#$#%&+1%#""%*;%$6"%+"/%(+"%;&*8#D/.-$ J)5.+)*&-$ */)*$ */&$ *&-*$ /)('&--$ .-$ 40(7.'%$ 20((&2*5I$ )'+$ */)*$ */&$ '&4$ *&-*$ +0&-$ '0*$ 3.-*)7&'5I$ 1)--$ 4.*/0,*(&O,.(.'%$)'I$'&4$20+&8$D/.-$-*&1$)5-0$*&-*-$*/&$*&-*$.*-&5<=$.'$*/&$'&%)*.J&:$.*$(,5&-$0,*$*/&$10--.6.5.*I$*/)*$*/&$'&4$*&-*4.55$)54)I-$1)--=$)'+$*/&(&<0(&$6&$40(*/5&--8$D/&$'&4$*&-*$-/0,5+$)5-0$<).5$<0($ */&$&F1&2*&+$(&)-0'8$D/.-$ .'2(&)-&-20'<.+&'2&$Q)5*/0,%/$.*$+0&-$'0*$&'*.(&5I$%,)()'*&&R$*/)*$.*$.-$*&-*.'%$*/&$(.%/*$*/.'%=$)'+$4.55$1)--$0'5I$.'$.'*&'+&+2)-&-8

PN%>.*$"%#()"%7(1"D/&$'&F*$-*&1$.-$*0$4(.*&$-03&$20+&$*/)*$4.55$2),-&$*/&$*&-*$*0$1)--8$D/&$'&4$20+&$4(.**&'$)*$*/.-$-*)%&$4.55$'0*$6&1&(<&2*$)'+$3)I=$<0($&F)315&=$1)--$*/&$*&-*$.'$)'$.'&5&%)'*$4)I8$D/)*$.-$)22&1*)65&$6&2),-&$5)*&($-*&1-$4.55$.31(0J&)'+$/0'&$.*8M*$.-$.310(*)'*$*/)*$*/&$20+&$4(.**&'$.-$".0I(+&-.%'&+$*0$1)--$*/&$*&-*X$'0$<,(*/&($Q)'+$*/&(&<0(&$,'*&-*&+R$<,'2*.0')5.*I-/0,5+$6&$1(&+.2*&+$)'+$b)5504&+$<0(b$)*$)'I$-*)%&8

QN%H'+%$6"%&'$()&$"1%$"#$#%&+1%#""%$6")%#'77""1M<$)55$*&-*$2)-&-$'04$1)--=$*/&$1(0%()33&($2)'$6&$20'<.+&'*$*/)*$*/&$20+&$3&&*-$)55$*/&$*&-*&+$(&O,.(&3&'*-8$D/.-$.-$)%00+$10.'*$<(03$4/.2/$*0$6&%.'$*/&$<.')5$-*&1$0<$*/&$2I25&8

RN%H";&7$(.%7(1"W04$ */&$ 20+&$ 2)'$ 6&$ 25&)'&+$ ,1$ )-$ '&2&--)(I8$^I$ (&T(,''.'%$ */&$ *&-*$ 2)-&-=$ */&$ +&J&501&($ 2)'$ 6&$ 20'<.+&'*$ */)*(&<)2*0(.'%$.-$'0*$+)3)%.'%$)'I$&F.-*.'%$<,'2*.0')5.*I8$D/&$20'2&1*$0<$(&30J.'%$+,15.2)*.0'$.-$)'$.310(*)'*$)-1&2*$0<)'I$-0<*4)(&$+&-.%'8$M'$*/.-$2)-&=$/04&J&(=$.*$)5-0$)115.&-$*0$(&30J.'%$)'I$+,15.2)*.0'$6&*4&&'$*/&$*&-*$20+&$)'+$*/&1(0+,2*.0'$20+&$8+<0($&F)315&$3)%.2$',36&(-$0($-*(.'%-$*/)*$4&(&$(&1&)*&+$.'$60*/=$.'$0(+&($*0$3)7&$*/&$*&-*$1)--.'$-*&1$B8

H"5"&$9*)(*.'%$4.*/$ )'0*/&($'&4$ *&-*=$ */&$ 2I25&$ .-$ */&'$ (&1&)*&+$ *0$1,-/$ <0(4)(+$ */&$ <,'2*.0')5.*I8$D/&$ -.K&$0<$ */&$ -*&1--/0,5+$)54)I-$6&$-3)55=$4.*/$)-$<&4$)-$A$*0$A@$&+.*-$6&*4&&'$&)2/$*&-*$(,'8$M<$'&4$20+&$+0&-$'0*$()1.+5I$-)*.-<I$)$'&4*&-*=$0($0*/&($ *&-*-$ <).5$,'&F1&2*&+5I=$ */&$1(0%()33&($-/0,5+$,'+0$0($ (&J&(*$ .'$1(&<&(&'2&$ *0$&F2&--.J&$+&6,%%.'%8E0'*.',0,-$M'*&%()*.0'$/&51-$6I$1(0J.+.'%$(&J&(*.65&$2/&2710.'*-8$U/&'$,-.'%$&F*&(')5$5.6()(.&-$.*$.-$.310(*)'*$'0*$*03)7&$.'2(&3&'*-$*/)*$)(&$-0$-3)55$)-$*0$6&$&<<&2*.J&5I$3&(&5I$*&-*.'%$*/&$5.6()(I$.*-&5<=GBH$,'5&--$*/&(&$.-$-03&$(&)-0'*0$6&5.&J&$*/)*$*/&$5.6()(I$.-$6,%%I$0($.-$'0*$-,<<.2.&'*5I$<&)*,(&T20315&*&$*0$-&(J&$)55$*/&$'&&+-$0<$*/&$3).'$1(0%()36&.'%$4(.**&'8

K"-"8(5)"+$%#$D8"D/&(&$)(&$J)(.0,-$)-1&2*-$ *0$,-.'%$ *&-*T+(.J&'$+&J&5013&'*=$ <0($&F)315&$ */&$1(.'2.15&-$0<$ ]7&&1$ .*$ -.315&=$ -*,1.+]QcM99R$ )'+$ ]q0,$ ).'b*$ %0'')$ '&&+$ .*]$ QqLSWMR8$ ^I$ <02,-.'%$ 0'$ 4(.*.'%$ 0'5I$ */&$ 20+&$ '&2&--)(I$ *0$ 1)--$ *&-*-=+&-.%'-$ 2)'$ 6&$ 25&)'&($ )'+$ 25&)(&($ */)'$ .-$ 0<*&'$ )2/.&J&+$ 6I$ 0*/&($ 3&*/0+-8GAH$ M'$ >'1+H7&*:'.( 7':'0"$#'.+( 3I

JK%#$0'(c&'*$^&27$)5-0$-,%%&-*-$*/&$1(.'2.15&$]#)7&$.*$*.55$I0,$3)7&$.*]8D0$)2/.&J&$-03&$)+J)'2&+$+&-.%'$20'2&1*$Q-,2/$)-$)$+&-.%'$1)**&('R=$*&-*-$)(&$4(.**&'$*/)*$4.55$%&'&()*&$*/)*$+&-.%'8D/&$20+&$3)I$(&3).'$-.315&($*/)'$*/&$*)(%&*$1)**&('=$6,*$-*.55$1)--$)55$(&O,.(&+$*&-*-8$D/.-$2)'$6&$,'-&**5.'%$)*$<.(-*$6,*.*$)5504-$*/&$+&J&501&($*0$<02,-$0'5I$0'$4/)*$.-$.310(*)'*8>.*$"%$6"%$"#$#%;*.#$8$D/&$*&-*-$-/0,5+$6&$4(.**&'$6&<0(&$*/&$<,'2*.0')5.*I$*/)*$.-$6&.'%$*&-*&+8$D/.-$/)-$6&&'$25).3&+$*0$/)J&$ *40$6&'&<.*-8$ M*$/&51-$&'-,(&$ */)*$ */&$)115.2)*.0'$ .-$4(.**&'$ <0($ *&-*)6.5.*I=$)-$ */&$+&J&501&(-$3,-*$20'-.+&($/04$ *0$ *&-*$ */&$)115.2)*.0'$ <(03$ */&$0,*-&*=$ ()*/&($ */)'$40((I.'%$)60,*$ .*$ 5)*&(8$ M*$ )5-0$&'-,(&-$ */)*$ *&-*-$ <0($&J&(I

Osvaldo Santana
Osvaldo Santana
Osvaldo Santana
Page 9: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* j

<&)*,(&$ 4.55$ 6&$ 4(.**&'8$U/&'$4(.*.'%$ <&)*,(&T<.(-*$ 20+&=$ */&(&$ .-$ )$ *&'+&'2I$ 6I$ +&J&501&(-$ )'+$ */&$ +&J&5013&'*0(%)'.-)*.0'-$*0$1,-/$*/&$+&J&501&($0'*0$*/&$'&F*$<&)*,(&=$'&%5&2*.'%$*&-*.'%$&'*.(&5I8?*.#$%;&*8%$6"%$"#$%7&#"#8$D/&$.+&)$.-$*0$&'-,(&$*/)*$*/&$*&-*$(&)55I$40(7-$)'+$2)'$2)*2/$)'$&((0(8$N'2&$*/.-$.-$-/04'=*/&$,'+&(5I.'%$<,'2*.0')5.*I$2)'$6&$.315&3&'*&+8$D/.-$/)-$6&&'$20.'&+$*/&$]*&-*T+(.J&'$+&J&5013&'*$3)'*()]=$7'04')-$(&+;%(&&';(&<)2*0($4/&(&$(&+$3&)'-$4%*0()'+$%(&&'$.-$$%118D&-*T+(.J&'$+&J&5013&'*$ 20'-*)'*5I$ (&1&)*-$ */&$ -*&1-$0<$ )++.'%$ *&-*$ 2)-&-$ */)*$ <).5=$ 1)--.'%$ */&3=$ )'+$ (&<)2*0(.'%8\&2&.J.'%$ */&$ &F1&2*&+$ *&-*$ (&-,5*-$ )*$ &)2/$ -*)%&$ (&.'<0(2&-$ */&$ 1(0%()33&(b-$ 3&'*)5$ 30+&5$ 0<$ */&$ 20+&=$ 600-*-20'<.+&'2&$)'+$.'2(&)-&-$1(0+,2*.J.*I8L+J)'2&+$1()2*.2&-$0<$*&-*T+(.J&'$+&J&5013&'*$2)'$5&)+$*0$L22&1*)'2&$D&-*T+(.J&'$+&J&5013&'*$QLD""R$4/&(&$*/&2(.*&(.)$ -1&2.<.&+$ 6I$ */&$ 2,-*03&($ )(&$ ),*03)*&+$ .'*0$ )22&1*)'2&$ *&-*-=$ 4/.2/$ */&'$ +(.J&$ */&$ *()+.*.0')5$ ,'.**&-*T+(.J&'$ +&J&5013&'*$ QCD""R$ 1(02&--8G?H$ D/.-$ 1(02&--$ &'-,(&-$ */&$ 2,-*03&($ /)-$ )'$ ),*03)*&+$ 3&2/)'.-3$ *0+&2.+&$4/&*/&($*/&$-0<*4)(&$3&&*-$*/&.($(&O,.(&3&'*-8$U.*/$LD""=$*/&$+&J&5013&'*$*&)3$'04$/)-$)$-1&2.<.2$*)(%&**0$-)*.-<I=$*/&$)22&1*)'2&$*&-*-=$4/.2/$7&&1-$*/&3$20'*.',0,-5I$<02,-&+$0'$4/)*$*/&$2,-*03&($(&)55I$4)'*-$<(03$*/)*,-&($-*0(I8

S"+";*$#L$>@@?$-*,+I$<0,'+$*/)*$,-.'%$D""$3&)'*$4(.*.'%$30(&$*&-*-$)'+=$.'$*,('=$1(0%()33&(-$*/)*$4(0*&$30(&$*&-*-$*&'+&+*0$ 6&$ 30(&$ 1(0+,2*.J&8GhH$ ZI10*/&-&-$ (&5)*.'%$ *0$ 20+&$ O,)5.*I$ )'+$ )$ 30(&$ +.(&2*$ 20((&5)*.0'$ 6&*4&&'$ D""$ )'+1(0+,2*.J.*I$4&(&$.'20'25,-.J&8GjH

!(0%()33&(-$ ,-.'%$ 1,(&$ D""$ 0'$ '&4$ Q]%(&&'<.&5+]R$ 1(0[&2*-$ (&10(*$ */&I$ 0'5I$ ()(&5I$ <&&5$ */&$ '&&+$ *0$ .'J07&$ )+&6,%%&(8$C-&+$.'$20'[,'2*.0'$4.*/$)$J&(-.0'$20'*(05$-I-*&3=$4/&'$*&-*-$<).5$,'&F1&2*&+5I=$(&J&(*.'%$*/&$20+&$*0$*/&5)-*$J&(-.0'$*/)*$1)--&+$)55$*&-*-$3)I$0<*&'$6&$30(&$1(0+,2*.J&$*/)'$+&6,%%.'%8GfH$GgH

D&-*T+(.J&'$+&J&5013&'*$0<<&(-$30(&$ */)'$ [,-*$-.315&$J)5.+)*.0'$0<$20((&2*'&--=$6,*$2)'$)5-0$+(.J&$ */&$+&-.%'$0<$)1(0%()38$^I$<02,-.'%$0'$*/&$*&-*$2)-&-$<.(-*=$0'&$3,-*$.3)%.'&$/04$*/&$<,'2*.0')5.*I$4.55$6&$,-&+$6I$25.&'*-$Q.'$*/&<.(-*$2)-&=$*/&$*&-*$2)-&-R8$90=$*/&$1(0%()33&($.-$20'2&('&+$4.*/$*/&$.'*&(<)2&$6&<0(&$*/&$.315&3&'*)*.0'8$D/.-$6&'&<.*.-$20315&3&'*)(I$*0$"&-.%'$6I$E0'*()2*$)-$.*$)11(0)2/&-$20+&$*/(0,%/$*&-*$2)-&-$()*/&($*/)'$*/(0,%/$3)*/&3)*.2)5)--&(*.0'-$0($1(&20'2&1*.0'-8D&-*T+(.J&'$+&J&5013&'*$0<<&(-$*/&$)6.5.*I$*0$*)7&$-3)55$-*&1-$4/&'$(&O,.(&+8$M*$)5504-$)$1(0%()33&($*0$<02,-$0'$*/&*)-7$ )*$ /)'+$ )-$ */&$ <.(-*$ %0)5$ .-$ *0$ 3)7&$ */&$ *&-*$ 1)--8$ _F2&1*.0')5$ 2)-&-$ )'+$ &((0($ /)'+5.'%$ )(&$ '0*$ 20'-.+&(&+.'.*.)55I=$ )'+$ *&-*-$ *0$ 2(&)*&$ */&-&$ &F*()'&0,-$ 2.(2,3-*)'2&-$ )(&$ .315&3&'*&+$ -&1)()*&5I8$ D&-*T+(.J&'$ +&J&5013&'*&'-,(&-$ .'$ */.-$ 4)I$ */)*$ )55$ 4(.**&'$ 20+&$ .-$ 20J&(&+$ 6I$ )*$ 5&)-*$ 0'&$ *&-*8$ D/.-$ %.J&-$ */&$ 1(0%()33.'%$ *&)3=$ )'+-,6-&O,&'*$,-&(-=$)$%(&)*&($5&J&5$0<$20'<.+&'2&$.'$*/&$20+&8U/.5&$ .*$ .-$ *(,&$ */)*$30(&$20+&$ .-$ (&O,.(&+$4.*/$D""$ */)'$4.*/0,*$D""$6&2),-&$0<$ */&$,'.*$ *&-*$ 20+&=$ *0*)5$ 20+&.315&3&'*)*.0'$*.3&$.-$*I1.2)55I$-/0(*&(8GA@H$i)(%&$',36&(-$0<$*&-*-$/&51$*0$5.3.*$*/&$',36&($0<$+&<&2*-$.'$*/&$20+&8D/&$&)(5I$)'+$<(&O,&'*$')*,(&$0<$*/&$*&-*.'%$/&51-$*0$2)*2/$+&<&2*-$&)(5I$.'$*/&$+&J&5013&'*$2I25&=$1(&J&'*.'%$*/&3<(03$6&203.'%$&'+&3.2$)'+$&F1&'-.J&$1(065&3-8$_5.3.')*.'%$+&<&2*-$&)(5I$.'$*/&$1(02&--$,-,)55I$)J0.+-$5&'%*/I$)'+*&+.0,-$+&6,%%.'%$5)*&($.'$*/&$1(0[&2*8D""$ 2)'$ 5&)+$ *0$ 30(&$ 30+,5)(.K&+=$ <5&F.65&=$ )'+$ &F*&'-.65&$ 20+&8$ D/.-$ &<<&2*$ 0<*&'$ 203&-$ )60,*$ 6&2),-&$ */&3&*/0+050%I$(&O,.(&-$*/)*$*/&$+&J&501&(-$*/.'7$0<$*/&$-0<*4)(&$.'$*&(3-$0<$-3)55$,'.*-$*/)*$2)'$6&$4(.**&'$)'+$*&-*&+.'+&1&'+&'*5I$)'+$.'*&%()*&+$*0%&*/&($5)*&(8$D/.-$5&)+-$*0$-3)55&(=$30(&$<02,-&+$25)--&-=$500-&($20,15.'%=$)'+$25&)'&(.'*&(<)2&-8$ D/&$ ,-&$ 0<$ */&$3027$ 06[&2*$ +&-.%'$ 1)**&('$ )5-0$ 20'*(.6,*&-$ *0$ */&$ 0J&()55$ 30+,5)(.K)*.0'$ 0<$ */&$ 20+&6&2),-&$*/.-$1)**&('$(&O,.(&-$*/)*$*/&$20+&$6&$4(.**&'$-0$*/)*$30+,5&-$2)'$6&$-4.*2/&+$&)-.5I$6&*4&&'$3027$J&(-.0'-<0($,'.*$*&-*.'%$)'+$](&)5]$J&(-.0'-$<0($+&150I3&'*8^&2),-&$'0$30(&$20+&$.-$4(.**&'$*/)'$'&2&--)(I$*0$1)--$)$<).5.'%$*&-*$2)-&=$),*03)*&+$*&-*-$*&'+$*0$20J&($&J&(I$20+&$1)*/8$#0($ &F)315&=$ .'$0(+&($ <0($ )$D""$+&J&501&($ *0$)++$)'$"8#"%6()'2/$ *0$)'$&F.-*.'%$ *;%-*)*&3&'*=$ */&$+&J&501&(

Page 10: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* f

40,5+$<.(-*$/)J&$*0$4(.*&$)$<).5.'%$*&-*$2)-&$*/)*$30*.J)*&-$*/&$6()'2/8$L-$)$(&-,5*=$*/&$),*03)*&+$*&-*-$(&-,5*.'%$<(03D""$ *&'+$ *0$ 6&$ J&(I$ */0(0,%/:$ */&I$ 4.55$ +&*&2*$ )'I$ ,'&F1&2*&+$ 2/)'%&-$ .'$ */&$ 20+&b-$ 6&/)J.0,(8$ D/.-$ +&*&2*-1(065&3-$*/)*$2)'$)(.-&$4/&(&$)$2/)'%&$5)*&($.'$*/&$+&J&5013&'*$2I25&$,'&F1&2*&+5I$)5*&(-$0*/&($<,'2*.0')5.*I8

F'8+".&T*8*$*"#P D&-*T+(.J&'$+&J&5013&'*$.-$+.<<.2,5*$*0$,-&$.'$-.*,)*.0'-$4/&(&$<,55$<,'2*.0')5$*&-*-$)(&$(&O,.(&+$*0$+&*&(3.'&

-,22&--$0($<).5,(&8$_F)315&-$0<$*/&-&$)(&$,-&($.'*&(<)2&-=$1(0%()3-$*/)*$40(7$4.*/$+)*)6)-&-=$)'+$-03&$*/)*+&1&'+$0'$-1&2.<.2$'&*40(7$20'<.%,()*.0'-8$D""$&'20,()%&-$+&J&501&(-$*0$1,*$*/&$3.'.3,3$)30,'*$0<$20+&$.'*0-,2/$30+,5&-$)'+$*0$3)F.3.-&$*/&$50%.2$*/)*$.-$.'$*&-*)65&$5.6()(I$20+&=$,-.'%$<)7&-$)'+$3027-$*0$(&1(&-&'*$*/&0,*-.+&$40(5+8

P Y)')%&3&'*$-,110(*$.-$&--&'*.)58$U.*/0,*$*/&$&'*.(&$0(%)'.K)*.0'$6&5.&J.'%$*/)*$*&-*T+(.J&'$+&J&5013&'*$.-$%0.'%*0$.31(0J&$*/&$1(0+,2*=$3)')%&3&'*$3)I$<&&5$*/)*$*.3&$-1&'*$4(.*.'%$*&-*-$.-$4)-*&+8GAAH

P D/&$*&-*-$*/&3-&5J&-$6&203&$1)(*$0<$*/&$3).'*&')'2&$0J&(/&)+$0<$)$1(0[&2*8$^)+5I$4(.**&'$*&-*-=$<0($&F)315&$0'&-*/)*$.'25,+&$/)(+T20+&+$&((0($-*(.'%-$0($4/.2/$)(&$*/&3-&5J&-$1(0'&$*0$<).5,(&=$)(&$&F1&'-.J&$*0$3).'*).'8$D/&(&$.-)$(.-7$*/)*$*&-*-$*/)*$(&%,5)(5I$%&'&()*&$<)5-&$<).5,(&-$4.55$6&$.%'0(&+=$-0$*/)*$4/&'$)$(&)5$<).5,(&$022,(-$.*$3)I$'0*6&$+&*&2*&+8$M*$.-$10--.65&$*0$4(.*&$*&-*-$<0($504$)'+$&)-I$3).'*&')'2&=$<0($&F)315&$6I$*/&$(&,-&$0<$&((0($-*(.'%-=)'+$*/.-$-/0,5+$6&$)$%0)5$+,(.'%$*/&$b\&<)2*0(b$1/)-&$+&-2(.6&+$)60J&8

P D/&$5&J&5$0<$20J&()%&$)'+$*&-*.'%$+&*).5$)2/.&J&+$+,(.'%$(&1&)*&+$D""$2I25&-$2)''0*$&)-.5I$6&$(&T2(&)*&+$)*$)$5)*&(+)*&8$D/&(&<0(&$*/&-&$0(.%.')5$*&-*-$6&203&$.'2(&)-.'%5I$1(&2.0,-$)-$*.3&$%0&-$6I8$M<$)$100($)(2/.*&2*,(&=$)$100(+&-.%'$0($)$100($*&-*.'%$-*()*&%I$5&)+-$*0$)$5)*&$2/)'%&$*/)*$3)7&-$+0K&'-$0<$&F.-*.'%$*&-*-$<).5=$.*$.-$.310(*)'*$*/)**/&I$)(&$.'+.J.+,)55I$<.F&+8$Y&(&5I$+&5&*.'%=$+.-)65.'%$0($()-/5I$)5*&(.'%$*/&3$2)'$5&)+$*0$,'T+&*&2*)65&$/05&-$.'*/&$*&-*$20J&()%&8

P C'&F1&2*&+$%)1-$.'$*&-*$20J&()%&$3)I$&F.-*$0($022,($<0($)$',36&($0<$(&)-0'-8$!&(/)1-$0'&$0($30(&$+&J&501&(-$.')$*&)3$4)-$'0*$-0$2033.**&+$*0$*/&$D""$-*()*&%I$)'+$+.+$'0*$4(.*&$*&-*-$1(01&(5I=$1&(/)1-$-03&$-&*-$0<$*&-*-$/)J&6&&'$.'J)5.+)*&+=$+&5&*&+$0($+.-)65&+$)22.+&'*)55I$0($0'$1,(10-&$+,(.'%$5)*&($40(78$M<$*/.-$/)11&'-=$*/&$20'<.+&'2&*/)*$)$5)(%&$-&*$0<$D""$*&-*-$5&'+$*0$<,(*/&($<.F&-$)'+$(&<)2*0(.'%-$4.55$)2*,)55I$6&$3.-15)2&+8$L5*&()*.0'-$3)I$6&3)+&$*/)*$(&-,5*$.'$'0$*&-*$<).5,(&-$4/&'$.'$<)2*$6,%-$)(&$6&.'%$.'*(0+,2&+$)'+$(&3).'.'%$,'+&*&2*&+8

P C'.*$*&-*-$2(&)*&+$.'$)$*&-*T+(.J&'$+&J&5013&'*$&'J.(0'3&'*$)(&$*I1.2)55I$2(&)*&+$6I$*/&$+&J&501&($4/0$4.55$)5-04(.*&$*/&$20+&$*/)*$.-$6&.'%$*&-*&+8$D/&$*&-*-$3)I$*/&(&<0(&$-/)(&$*/&$-)3&$65.'+$-10*-$4.*/$*/&$20+&:$M<=$<0(&F)315&=$)$+&J&501&($+0&-$'0*$(&)5.K&$*/)*$2&(*).'$.'1,*$1)()3&*&(-$3,-*$6&$2/&27&+=$30-*$5.7&5I$'&.*/&($*/&$*&-*'0($*/&$20+&$4.55$J&(.<I$*/&-&$.'1,*$1)()3&*&(-8$M<$*/&$+&J&501&($3.-.'*&(1(&*-$*/&$(&O,.(&3&'*-$-1&2.<.2)*.0'$<0(*/&$30+,5&$6&.'%$+&J&501&+=$60*/$*/&$*&-*-$)'+$*/&$20+&$4.55$6&$4(0'%8

P D/&$/.%/$',36&($0<$1)--.'%$,'.*$*&-*-$3)I$6(.'%$)$<)5-&$-&'-&$0<$-&2,(.*I=$(&-,5*.'%$.'$<&4&($)++.*.0')5$eL)2*.J.*.&-=$-,2/$)-$.'*&%()*.0'$*&-*.'%$)'+$20315.)'2&$*&-*.'%8

0(1"%F*#*T*8*$DD&-*T-,.*&$20+&$25&)(5I$/)-$*0$6&$)65&$*0$)22&--$*/&$20+&$.*$.-$*&-*.'%8$N'$*/&$0*/&($/)'+$'0(3)5$+&-.%'$2(.*&(.)$-,2/$)-.'<0(3)*.0'$ /.+.'%=$ &'2)1-,5)*.0'$ )'+$ */&$ -&1)()*.0'$ 0<$ 20'2&('-$ -/0,5+$ '0*$ 6&$ 2031(03.-&+8$D/&(&<0(&$ ,'.*$ *&-*20+&$<0($D""$.-$,-,)55I$4(.**&'$4.*/.'$*/&$-)3&$1(0[&2*$0($30+,5&$)-$*/&$20+&$6&.'%$*&-*&+8M'$06[&2*$0(.&'*&+$+&-.%'$*/.-$-*.55$+0&-$'0*$1(0J.+&$)22&--$*0$1(.J)*&$+)*)$)'+$3&*/0+-8$D/&(&<0(&=$&F*()$40(7$3)I$6&'&2&--)(I$<0($,'.*$*&-*-8$M'$V)J)$)'+$0*/&($5)'%,)%&-=$)$+&J&501&($2)'$,-&$(&<5&2*.0'$*0$)22&--$<.&5+-$*/)*$)(&$3)(7&+1(.J)*&8GA>H$L5*&(')*.J&5I=$)'$.''&($25)--$2)'$6&$,-&+$*0$/05+$*/&$,'.*$*&-*-$-0$*/&I$4.55$/)J&$J.-.6.5.*I$0<$*/&$&'250-.'%25)--b-$3&36&(-$)'+$)**(.6,*&-8$M'$*/&$8W_D$#()3&40(7$)'+$-03&$0*/&($1(0%()33.'%$5)'%,)%&-=$1)(*.)5$25)--&-$3)I6&$,-&+$*0$&F10-&$1(.J)*&$3&*/0+-$)'+$+)*)$<0($*/&$*&-*-$*0$)22&--8M*$ .-$ .310(*)'*$ */)*$ -,2/$ *&-*.'%$/)27-$+0$'0*$ (&3).'$ .'$ */&$1(0+,2*.0'$20+&8$ M'$Eo$)'+$0*/&($ 5)'%,)%&-=$2031.5&($+.(&2*.J&-$-,2/$)-$o.<$"_^CS$888$o&'+.<$2)'$6&$15)2&+$)(0,'+$-,2/$)++.*.0')5$25)--&-$)'+$.'+&&+$)55$0*/&($*&-*T(&5)*&+

Osvaldo Santana
Osvaldo Santana
Osvaldo Santana
Osvaldo Santana
Osvaldo Santana
Page 11: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* g

20+&$*0$1(&J&'*$*/&3$6&.'%$2031.5&+$.'*0$*/&$(&5&)-&+$20+&8$D/.-$*/&'$3&)'-$*/)*$*/&$(&5&)-&+$20+&$.-$'0*$&F)2*5I$*/&-)3&$)-$*/)*$4/.2/$.-$,'.*$*&-*&+8$D/&$(&%,5)($(,''.'%$0<$<&4&($6,*$30(&$2031(&/&'-.J&=$&'+T*0T&'+=$.'*&%()*.0'$*&-*-0'$*/&$<.')5$(&5&)-&$6,.5+$2)'$*/&'$&'-,(&$Q)30'%$0*/&($*/.'%-R$*/)*$'0$1(0+,2*.0'$20+&$&F.-*-$*/)*$-,6*5I$(&5.&-$0')-1&2*-$0<$*/&$*&-*$/)('&--8D/&(&$.-$-03&$+&6)*&$)30'%$1()2*.*.0'&(-$0<$D""=$+02,3&'*&+$.'$*/&.($650%-$)'+$0*/&($4(.*.'%-=$)-$*0$4/&*/&($.*$.-4.-&$*0$*&-*$1(.J)*&$)'+$1(0*&2*&+$3&*/0+-$)'+$+)*)$)'I4)I8$903&$)(%,&$*/)*$.*$-/0,5+$6&$-,<<.2.&'*$*0$*&-*$)'I$25)--*/(0,%/$.*-$1,65.2$.'*&(<)2&$)-$*/&$1(.J)*&$3&36&(-$)(&$)$3&(&$.315&3&'*)*.0'$+&*).5$*/)*$3)I$2/)'%&=$)'+$-/0,5+$6&)5504&+$ *0$ +0$ -0$ 4.*/0,*$ 6(&)7.'%$ ',36&(-$ 0<$ *&-*-8$ N*/&(-$ -)I$ */)*$ 2(,2.)5$ )-1&2*-$ 0<$ <,'2*.0')5.*I$ 3)I$ 6&.315&3&'*&+$ .'$ 1(.J)*&$3&*/0+-=$ )'+$ */)*$ +&J&501.'%$ */.-$4/.5&$ *&-*.'%$ .*$ .'+.(&2*5I$ J.)$ */&$ 1,65.2$ .'*&(<)2&$ 0'5I06-2,(&-$*/&$.--,&:$,'.*$*&-*.'%$.-$)60,*$*&-*.'%$*/&$-3)55&-*$,'.*$0<$<,'2*.0')5.*I$10--.65&8GABH$GAdH

?&@"#U%)(7@#%&+1%*+$"3.&$*(+%$"#$#C'.*$*&-*-$)(&$-0$')3&+$6&2),-&$*/&I$&)2/$*&-*$".'(/.*+(0<$20+&8$U/&*/&($)$30+,5&$0<$20+&$/)-$/,'+(&+-$0<$,'.*$*&-*-0($0'5I$<.J&$.-$.((&5&J)'*8$L$*&-*$-,.*&$<0($,-&$.'$D""$-/0,5+$'&J&($2(0--$1(02&--$60,'+)(.&-$.'$)$1(0%()3=$5&*$)50'&'&*40(7$20''&2*.0'-8$"0.'%$-0$.'*(0+,2&-$+&5)I-$*/)*$3)7&$*&-*-$(,'$-5045I$)'+$+.-20,()%&$+&J&501&(-$<(03$(,''.'%*/&$4/05&$-,.*&8$M'*(0+,2.'%$+&1&'+&'2.&-$0'$&F*&(')5$30+,5&-$0($+)*)$)5-0$*,('-$/.*+(+'1+1(.'*0$*.+'2&%+*".(+'1+18$M<0'&$30+,5&$3.-6&/)J&-$.'$)$2/).'$0<$.'*&((&5)*&+$30+,5&-=$.*$.-$'0*$-0$.33&+.)*&5I$25&)($4/&(&$*0$5007$<0($*/&$2),-&0<$*/&$<).5,(&8U/&'$ 20+&$ ,'+&($ +&J&5013&'*$ (&5.&-$ 0'$ )$ +)*)6)-&=$ )$ U&6$ -&(J.2&=$ 0($ )'I$ 0*/&($ &F*&(')5$ 1(02&--$ 0($ -&(J.2&=&'<0(2.'%$)$,'.*T*&-*)65&$-&1)()*.0'$.-$)5-0$)'$0110(*,'.*I$)'+$)$+(.J.'%$<0(2&$*0$+&-.%'$30(&$30+,5)(=$30(&$*&-*)65&)'+$30(&$(&,-)65&$20+&8GA?H$D40$-*&1-$)(&$'&2&--)(I:A8 U/&'&J&($&F*&(')5$)22&--$.-$%0.'%$*0$6&$'&&+&+$.'$*/&$<.')5$+&-.%'=$)'$.'*&(<)2&$-/0,5+$6&$+&<.'&+$*/)*$+&-2(.6&-

*/&$)22&--$*/)*$4.55$6&$)J).5)65&8$9&&$*/&$+&1&'+&'2I$.'J&(-.0'$1(.'2.15&$<0($)$+.-2,--.0'$0<$*/&$6&'&<.*-$0<$+0.'%*/.-$(&%)(+5&--$0<$D""8

>8 D/&$.'*&(<)2&$-/0,5+$6&$.315&3&'*&+$.'$*40$4)I-=$0'&$0<$4/.2/$(&)55I$)22&--&-$*/&$&F*&(')5$1(02&--=$)'+$*/&0*/&($0<$4/.2/$.-$)$<)7&$0($30278$#)7&$06[&2*-$'&&+$+0$5.**5&$30(&$*/)'$)++$)$3&--)%&$-,2/$)-$6!&(-0'$06[&2*-)J&+7+*0$)$*()2&$50%=$)%).'-*$4/.2/$)$*&-*$)--&(*.0'$2)'$6&$(,'$*0$J&(.<I$20((&2*$6&/)J.0,(8$Y027$06[&2*-$+.<<&($.'*/)*$*/&I$*/&3-&5J&-$20'*).'$*&-*$)--&(*.0'-$*/)*$2)'$3)7&$*/&$*&-*$<).5=$<0($&F)315&=$.<$*/&$1&(-0'b-$')3&$)'+$0*/&(+)*)$)(&$'0*$)-$&F1&2*&+8$#)7&$)'+$3027$06[&2*$3&*/0+-$*/)*$(&*,('$+)*)=$0-*&'-.65I$<(03$)$+)*)$-*0(&$0($,-&(=$2)'/&51$*/&$*&-*$1(02&--$6I$)54)I-$(&*,('.'%$*/&$-)3&=$(&)5.-*.2$+)*)$*/)*$*&-*-$2)'$(&5I$,10'8$D/&I$2)'$)5-0$6&$-&*$.'*01(&+&<.'&+$<),5*$30+&-$-0$*/)*$&((0(T/)'+5.'%$(0,*.'&-$2)'$6&$+&J&501&+$)'+$(&5.)65I$*&-*&+8$#)7&$-&(J.2&-$0*/&(*/)'$+)*)$-*0(&-$3)I$)5-0$6&$,-&<,5$.'$D"":$#)7&$&'2(I1*.0'$-&(J.2&-$3)I$'0*=$.'$<)2*=$&'2(I1*$*/&$+)*)$1)--&+X<)7&$()'+03$',36&($-&(J.2&-$3)I$)54)I-$(&*,('$A8$#)7&$0($3027$.315&3&'*)*.0'-$)(&$&F)315&-$0<$+&1&'+&'2I.'[&2*.0'8

L$20(055)(I$0<$-,2/$+&1&'+&'2I$.'[&2*.0'$.-$*/)*$*/&$)2*,)5$+)*)6)-&$0($0*/&($&F*&(')5T)22&--$20+&$.-$'&J&($*&-*&+$6I*/&$D""$1(02&--$.*-&5<8$D0$)J0.+$&((0(-$*/)*$3)I$)(.-&$<(03$*/.-=$0*/&($*&-*-$)(&$'&&+&+$*/)*$.'-*)'*.)*&$*/&$*&-*T+(.J&'20+&$4.*/$*/&$6(&)57+.315&3&'*)*.0'-$0<$*/&$.'*&(<)2&-$+.-2,--&+$)60J&8$D/&-&$*&-*-$)(&$O,.*&$-&1)()*&$<(03$*/&$D"",'.*$*&-*-=$)'+$)(&$(&)55I$.'*&%()*.0'$*&-*-8$D/&(&$4.55$6&$<&4&($0<$*/&3=$)'+$*/&I$'&&+$*0$6&$(,'$5&--$0<*&'$*/)'$*/&,'.*$*&-*-8$D/&I$2)'$'0'&*/&5&--$6&$.315&3&'*&+$,-.'%$*/&$-)3&$*&-*.'%$<()3&40(7=$-,2/$)-$FC'.*8M'*&%()*.0'$*&-*-$*/)*$)5*&($)'I$1&(-.-*&'*$-*0(&$0($+)*)6)-&$-/0,5+$)54)I-$6&$+&-.%'&+$2)(&<,55I$4.*/$20'-.+&()*.0'$0<*/&$.'.*.)5$)'+$<.')5$-*)*&$0<$*/&$<.5&-$0($+)*)6)-&=$&J&'$.<$)'I$*&-*$<).5-8$D/.-$.-$0<*&'$)2/.&J&+$,-.'%$-03&$2036.')*.0'0<$*/&$<05504.'%$*&2/'.O,&-:P D/&$D&)("04'$3&*/0+=$4/.2/$.-$.'*&%()5$*0$3)'I$*&-*$<()3&40(7-8P *(I8882)*2/888<.')55I$&F2&1*.0'$/)'+5.'%$-*(,2*,(&-$4/&(&$)J).5)65&8P ")*)6)-&$*()'-)2*.0'-$4/&(&$)$*()'-)2*.0'$)*03.2)55I$.'25,+&-$1&(/)1-$)$4(.*&=$)$(&)+$)'+$)$3)*2/.'%$+&5&*&

01&()*.0'8

Page 12: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* A@

P D)7.'%$)$6-')1-/0*7+0<$*/&$+)*)6)-&$6&<0(&$(,''.'%$)'I$*&-*-$)'+$(055.'%$6)27$*0$*/&$-')1-/0*$)<*&($&)2/$*&-*$(,'8D/.-$3)I$6&$),*03)*&+$,-.'%$)$<()3&40(7$-,2/$)-$L'*$0($WL'*$0($)$20'*.',0,-$.'*&%()*.0'$-I-*&3$-,2/$)-E(,.-&E0'*(058

P M'.*.)5.-.'%$*/&$+)*)6)-&$*0$)$25&)'$-*)*&$3'4"&'(*&-*-=$()*/&($*/)'$25&)'.'%$,1$%4+'&(*/&38$D/.-$3)I$6&$(&5&J)'*4/&(&$25&)'.'%$,1$3)I$3)7&$.*$+.<<.2,5*$*0$+.)%'0-&$*&-*$<).5,(&-$6I$+&5&*.'%$*/&$<.')5$-*)*&$0<$*/&$+)*)6)-&$6&<0(&+&*).5&+$+.)%'0-.-$2)'$6&$1&(<0(3&+8

#()3&40(7-$ -,2/$ )-$ Y0O=$ [Y027=$ WY027=$ _)-IY027=$ DI1&3027=$ [Y027.*=$ C'.*.5-=$ Y027.*0=$ Y027)2/.'0=!04&(Y027$0($\/.'0$Y027-$&F.-*$*0$3)7&$*/&$1(02&--$0<$2(&)*.'%$)'+$,-.'%$20315&F$3027$06[&2*-$&)-.&(8

G""%&8#(P ^&/)J.0($+(.J&'$+&J&5013&'*P "&-.%'$6I$20'*()2*P i.-*$0<$-0<*4)(&$+&J&5013&'*$1/.50-01/.&-P i.-*$0<$,'.*$*&-*.'%$<()3&40(7-P Y027$06[&2*P 90<*4)(&$*&-*.'%P D&-*$2)-&P C'.*$*&-*.'%

IJ$".+&8%8*+@#P D&-*"(.J&'"&J&5013&'*$0'$U.7.U.7.U&6P D&-*$0($-1&2l$D&-*$)'+$-1&2l$D&-*$<(03$-1&2r$GAhH=$6I$^&(*()'+$Y&I&($Q9&1*&36&($>@@dRP Y.2(0-0<*$`.-,)5$9*,+.0$D&)3$D&-*$<(03$)$D""$)11(0)2/$GAjH

P U(.*&$Y).'*).')65&$C'.*$D&-*-$D/)*$U.55$9)J&$q0,$D.3&$L'+$D&)(-$GAfH

P M31(0J.'%$L115.2)*.0'$e,)5.*I$C-.'%$D&-*T"(.J&'$"&J&5013&'*$QD""R$GAgH

H";"."+7"#GAH ^&27=$c8$D&-*T"(.J&'$"&J&5013&'*$6I$_F)315&=$L++.-0'$U&-5&I=$>@@BG>H ]_F*(&3&$!(0%()33.'%]=$!"#$/+'&)"&06(Q0'5.'&R=$"&2&36&($>@@A=$4&61)%&:

E031,*&(40(5+T)11+&JTg>$ Q/**1:;$ ;$ 4448$ 2031,*&(40(5+8$ 203;$ -0<*4)(&*01.2-;$ -0<*4)(&;$ )11+&J;$ -*0(I;@=A@f@A=hhAg>=@@8$/*35R8GBH W&47.(7=$VU$)'+$`0(0'*-0J=$LL8$>'1+H7&*:'.(7':'0"$#'.+(*.(-*8&"1"4+(?LJ>=$Y.2(0-0<*$!(&--=$>@@d8GdH #&)*/&(-=$Y8$U0(7.'%$_<<&2*.J&5I$4.*/$i&%)2I$E0+&=$!(&'*.2&$Z)55=$>@@dG?H c0-7&5)=$i8$]D&-*$"(.J&':$D""$)'+$L22&1*)'2&$D""$<0($V)J)$"&J&501&(-]=$Y)''.'%$!,65.2)*.0'-=$>@@jGhH _(+0%3,-=$Z)7)'X$Y0(.-.0=$D0(2/.)'08$]N'$*/&$_<<&2*.J&'&--$0<$D&-*T<.(-*$L11(0)2/$*0$!(0%()33.'%]$Q/**1:;$;$..*T.*.8$'(2T2'(28$%28$2);

1,65.2)*.0'-;$'(2Tdjdd?p&8$/*35R8$!(02&&+.'%-$0<$*/&$M___$D()'-)2*.0'-$0'$90<*4)(&$_'%.'&&(.'%=$BAQAR8$V)',)(I$>@@?8$QW\E$djdd?R8$8\&*(.&J&+$>@@fT@ATAd8$]U&$<0,'+$*/)*$*&-*T<.(-*$-*,+&'*-$0'$)J&()%&$4(0*&$30(&$*&-*-$)'+=$.'$*,('=$-*,+&'*-$4/0$4(0*&$30(&$*&-*-$*&'+&+$*0$6&30(&$1(0+,2*.J&8]

GjH !(0<<.**=$V)2068$]D""$!(0J&'$_<<&2*.J&r$N($.-$.*l]$Q/**1:;$;$*/&(,'*.3&8$203;$650%-;$[)206;$)(2/.J&;$>@@f;$@A;$>>;$*++T1(0J&'T&<<&2*.J&T0(T.-T.*8)-1FR8$8$\&*(.&J&+$>@@fT@>T>A8$]90$D""b-$(&5)*.0'-/.1$*0$O,)5.*I$.-$1(065&3)*.2$)*$6&-*8$M*-$(&5)*.0'-/.1$*0$1(0+,2*.J.*I$.-$30(&$.'*&(&-*.'%8$M/01&$*/&(&b-$)$<05504T,1$-*,+I$6&2),-&$*/&$1(0+,2*.J.*I$',36&(-$-.315I$+0'b*$)++$,1$J&(I$4&55$*0$3&8$D/&(&$.-$)'$,'+&'.)65&$20((&5)*.0'6&*4&&'$1(0+,2*.J.*I$)'+$*/&$',36&($0<$*&-*-=$6,*$*/)*$20((&5)*.0'$.-$)2*,)55I$-*(0'%&($.'$*/&$'0'TD""$%(0,1$Q4/.2/$/)+$)$-.'%5&$0,*5.&(2031)(&+$*0$(0,%/5I$/)5<$0<$*/&$D""$%(0,1$6&.'%$0,*-.+&$*/&$g?s$6)'+R8]

GfH E5)(7=$Y.7&8$]D&-*T"(.J&'$"&J&5013&'*$4.*/$VC'.*$U0(7-/01]$Q/**1:;$;$25)(74)(&8$203;$20,(-&-;$D""U.*/VC'.*8$/*35R8$E5)(74)(&E0'-,5*.'%=$M'288$8$\&*(.&J&+$>@@jTAAT@A8$]M'$<)2*=$*&-*T+(.J&'$+&J&5013&'*$)2*,)55I$/&51-$I0,$3&&*$I0,($+&)+5.'&-$6I$&5.3.')*.'%$+&6,%%.'%*.3&=$3.'.3.K.'%$+&-.%'$-1&2,5)*.0'$)'+$(&T40(7=$)'+$(&+,2.'%$*/&$20-*$)'+$<&)($0<$2/)'%.'%$40(7.'%$20+&8]

GgH i501.-=$W0&5$Q>@$#&6(,)(I$>@@?R8$]9*&11.'%$D/(0,%/$*/&$i007.'%$S5)--:$D&-*T"(.J&'$S)3&$"&J&5013&'*$Q!)(*$AR]$Q/**1:;$;$4448$

%)3&-<(034.*/.'8$203;$)(*.25&-;$@?@>;$@@@@jB8$/*35R8$S)3&-$<(03$U.*/.'8$8$\&*(.&J&+$>@@jTAAT@A8$]E031)(.'%$GD""H$*0$*/&$'0'T*&-*T+(.J&'$+&J&5013&'*$)11(0)2/=$I0,b(&$(&15)2.'%$)55$*/&$3&'*)5$2/&27.'%$)'+$+&6,%%&($-*&11.'%$4.*/$20+&$*/)*$J&(.<.&-$*/)*$I0,($1(0%()3$+0&-$&F)2*5I

Page 13: Test-Driven Development Wikipedia Collection

D&-*T+(.J&'$+&J&5013&'* AA

4/)*$I0,$.'*&'+&+$.*$*0$+08]GA@H Yt55&(=$Y)**/.)-$Y8X$!)+6&(%=$#()'78$]L60,*$*/&$\&*,('$0'$M'J&-*3&'*$0<$D&-*T"(.J&'$"&J&5013&'*]$Q/**1:;$;$4448$.1+8$,7)8$+&;

3.*)(6&.*&(;$3,&55&(3;$1,65.2)*.0'-;$&+-&(@B8$1+<R$Q!"#R8$C'.J&(-.*u*$c)(5-(,/&=$S&(3)'I8$118$h8$8$\&*(.&J&+$>@@jTAAT@A8GAAH i0,%/()'=$9*&J&$QW0J&36&($h*/=$>@@hR8$]D&-*.'%]$Q/**1:;$;$1&015&8$)1)2/&8$0(%;$v-*&J&5;$-5.+&-;$*&-*.'%8$1+<R$Q!"#R8$Z!$i)60()*0(.&-8$8

\&*(.&J&+$>@@gT@fTA>8GA>H ^,(*0'=$\0--$QAA;A>;>@@BR8$]9,6J&(*.'%$V)J)$L22&--$!(0*&2*.0'$<0($C'.*$D&-*.'%]$Q/**1:;$;$4448$0'[)J)8$203;$1,6;$);$0'[)J);$>@@B;$AA;$A>;

(&<5&2*.0'8$/*35R8$Nb\&.55I$Y&+.)=$M'288$8$\&*(.&J&+$>@@gT@fTA>8GABH W&47.(7=$V)3&-$Qj$V,'&$>@@dR8$]D&-*.'%$!(.J)*&$Y&*/0+-;Y&36&($`)(.)65&-$T$9/0,5+$I0,$0($-/0,5+'b*$I0,]$Q/**1:;$;$650%-8$3-+'8$203;

[)3&-'&47.(7;$)(2/.J&;$>@@d;$@h;$@j;$A?@BhA8$)-1FR8$Y.2(0-0<*$E0(10()*.0'8$8$\&*(.&J&+$>@@gT@fTA>8GAdH 9*)55=$D.3$QA$Y)($>@@?R8$]Z04$*0$D&-*$!(.J)*&$)'+$!(0*&2*&+$3&*/0+-$.'$8W_D]$Q/**1:;$;$4448$20+&1(0[&2*8$203;$c^;$2-;

*&-*'0'1,65.23&36&(-8$)-1FR8$E0+&!(0[&2*8$8$\&*(.&J&+$>@@gT@fTA>8GA?H #045&(=$Y)(*.'$QAgggR8$M'4%8+"&*.2(H(@#$&":*.2(+,'(6'1*2.("4('K*1+*.2(8"6'8$^0-*0':$L++.-0'$U&-5&I$i0'%3)'=$M'288$M9^Wk@T>@ATdf?hjT>8GAhH /**1:;$;$4448$&.<<&58$203;$%&'&()5;$30'*/5Ip205,3';$>@@d;$-&1*&36&(8$/*35GAjH /**1:;$;$3-+'8$3.2(0-0<*8$203;$&'T,-;$5.6()(I;$3-Bjgh>?Q`98$f@R8$)-1FGAfH /**1:;$;$3-+'8$3.2(0-0<*8$203;$&'T,-;$3)%)K.'&;$22AhBhh?8$)-1FGAgH /**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+m>@

S"6&-*(.%K.*-"+%K"-"8(5)"+$S"6&-*(.%1.*-"+%1"-"8(5)"+$%Q0($SKKR$.-$)'$)%.5&$-0<*4)(&$+&J&5013&'*$*&2/'.O,&$*/)*$&'20,()%&-$2055)60()*.0'6&*4&&'$+&J&501&(-=$eL$)'+$'0'T*&2/'.2)5$0($6,-.'&--$1)(*.2.1)'*-$.'$)$-0<*4)(&$1(0[&2*8$M*$4)-$0(.%.')55I$')3&+$.'>@@B$ 6I$ ")'$ W0(*/GAH$ )-$ )$ (&-10'-&$ *0$ D&-*$ "(.J&'$ "&J&5013&'*=$ .'25,+.'%$ L22&1*)'2&$ D&-*$ 0($ E,-*03&($ D&-*"(.J&'$"&J&5013&'*$1()2*.2&-$)-$<0,'+$.'$_F*(&3&$!(0%()33.'%8$M*$/)-$&J05J&+$0J&($*/&$5)-*$<&4$I&)(-G>H$8N'$ */&$ ]L%.5&$91&2.<.2)*.0'-=$^""$)'+$D&-*.'%$&w2/)'%&]$ .'$W0J&36&($>@@g$ .'$i0'+0'=$")'$W0(*/GBH$ %)J&$ */&<05504.'%$+&<.'.*.0'$0<$^"":

^""$ .-$ )$ -&20'+T%&'&()*.0'=$ 0,*-.+&T.'=$ 1,55T6)-&+=$ 3,5*.15&T-*)7&/05+&(=$ 3,5*.15&T-2)5&=/.%/T),*03)*.0'=$ )%.5&$ 3&*/0+050%I8$ M*$ +&-2(.6&-$ )$ 2I25&$ 0<$ .'*&()2*.0'-$ 4.*/$ 4&55T+&<.'&+$ 0,*1,*-=(&-,5*.'%$.'$*/&$+&5.J&(I$0<$40(7.'%=$*&-*&+$-0<*4)(&$*/)*$3)**&(-8

^""$<02,-&-$0'$06*).'.'%$)$25&)($,'+&(-*)'+.'%$0<$+&-.(&+$-0<*4)(&$6&/)J.0,($*/(0,%/$+.-2,--.0'$4.*/$-*)7&/05+&(-8M*$ &F*&'+-$ D""$ 6I$ 4(.*.'%$ *&-*$ 2)-&-$ .'$ )$ ')*,()5$ 5)'%,)%&$ */)*$ '0'T1(0%()33&(-$ 2)'$ (&)+8$ ^&/)J.0(T+(.J&'+&J&501&(-$ ,-&$ */&.($ ')*.J&$ 5)'%,)%&$ .'$ 2036.')*.0'$ 4.*/$ */&$ /3*N/*+"/1( 0%.2/%2'( 0<$ +03).'$ +(.J&'$ +&-.%'$ *0+&-2(.6&$ */&$ 1,(10-&$ )'+$ 6&'&<.*$ 0<$ */&.($ 20+&8$ D/.-$ )5504-$ */&$ +&J&501&(-$ *0$ <02,-$ 0'$ 4/I$ */&$ 20+&$ -/0,5+$ 6&2(&)*&+=$()*/&($*/)'$*/&$*&2/'.2)5$+&*).5-=$)'+$3.'.3.K&-$*()'-5)*.0'$6&*4&&'$*/&$*&2/'.2)5$5)'%,)%&$.'$4/.2/$*/&$20+&.-$4(.**&'$)'+$*/&$+03).'$5)'%,)%&$-107&'$6I$*/&$6,-.'&--=$,-&(-=$-*)7&/05+&(-=$1(0[&2*$3)')%&3&'*=$&*28")'$W0(*/$2(&)*&+$*/&$<.(-*$&J&($^""$<()3&40(7=$V^&/)J&GAH$=$<05504&+$6I$)$-*0(IT5&J&5$^""$<()3&40(7$<0($\,6I2)55&+$\^&/)J&GdH$ 4/.2/$4)-$ 5)*&($ .'*&%()*&+$ .'*0$ */&$\91&2$ 1(0[&2*G?H$ 8$ Z&$ )5-0$40(7&+$4.*/$")J.+$E/&5.3-7I=L-5)7$Z&55&-xI$)'+$0*/&(-$*0$+&J&501$\91&2$)'+$)5-0$*0$4(.*&$]D/&$\91&2$^007:$^&/)J.0,($"(.J&'$"&J&5013&'*4.*/$\91&2=$E,2,36&(=$)'+$#(.&'+-]8$D/&$<.(-*$-*0(IT6)-&+$<()3&40(7$.'$\91&2$4)-$5)*&($(&15)2&+$6I$E,2,36&($GhH

3).'5I$+&J&501&+$6I$L-5)7$Z&55&-xI8M'$ >@@f=$E/(.-$Y)**-=$4/0$4)-$ .'J05J&+$ .'$ */&$ <.(-*$ +.-2,--.0'-$ )(0,'+$^""=$ 2)3&$ ,1$4.*/$ */&$ .+&)$ 0<$ #&)*,(&M'[&2*.0'GjH$ =$)5504.'%$^""$*0$20J&($*/&$)')5I-.-$-1)2&$)'+$1(0J.+&$)$<,55$*(&)*3&'*$0<$*/&$-0<*4)(&$5.<&2I25&$<(03J.-.0'$*/(0,%/$*0$20+&$)'+$(&5&)-&8

Page 14: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* A>

SKK%5.&7$*7"#D/&$1()2*.2&-$0<$^""$.'25,+&:P _-*)65.-/.'%$*/&$%0)5-$0<$+.<<&(&'*$-*)7&/05+&(-$(&O,.(&+$<0($)$J.-.0'$*0$6&$.315&3&'*&+P "()4.'%$0,*$<&)*,(&-$4/.2/$4.55$)2/.&J&$*/0-&$%0)5-$,-.'%$o#&)*,(&p.'[&2*.0'$<&)*,(&$.'[&2*.0'P M'J05J.'%$-*)7&/05+&(-$.'$*/&$.315&3&'*)*.0'$1(02&--$*/(0,%/$0,*-.+&T.'$-0<*4)(&$+&J&5013&'*P C-.'%$&F)315&-$*0$+&-2(.6&$*/&$6&/)J.0($0<$*/&$)115.2)*.0'=$0($0<$,'.*-$0<$20+&P L,*03)*.'%$*/0-&$&F)315&-$*0$1(0J.+&$O,.27$<&&+6)27$)'+$(&%(&--.0'$*&-*.'%P C-.'%$b-/0,5+b$4/&'$+&-2(.6.'%$*/&$6&/)J.0($0<$-0<*4)(&$*0$/&51$25)(.<I$(&-10'-.6.5.*I$)'+$)5504$*/&$-0<*4)(&b-

<,'2*.0')5.*I$*0$6&$O,&-*.0'&+P C-.'%$b&'-,(&b$4/&'$+&-2(.6.'%$(&-10'-.6.5.*.&-$0<$-0<*4)(&$*0$+.<<&(&'*.)*&$0,*203&-$.'$*/&$-201&$0<$*/&$20+&$.'

O,&-*.0'$<(03$-.+&T&<<&2*-$0<$0*/&($&5&3&'*-$0<$20+&8P C-.'%$3027-$*0$-*)'+T.'$<0($2055)60()*.'%$30+,5&-$0<$20+&$4/.2/$/)J&$'0*$I&*$6&&'$4(.**&'

?"&$'."%*+V"7$*(+L$2031)'I$3)I$/)J&$ -&J&()5$J.-.0'-$4/.2/$4.55$ +&5.J&($J)5,&$ *0$ */&$6,-.'&--=$ ,-,)55I$6I$3)7.'%$30'&I=$ -)J.'%30'&I$0($1(0*&2*.'%$30'&I8$N'2&$)$J.-.0'$.-$.+&'*.<.&+$6I$)$%(0,1$)-$6&.'%$*/&$6&-*$J.-.0'$<0($*/&$20'+.*.0'-=$*/&I4.55$'&&+$)++.*.0')5$/&51$*0$3)7&$*/&$J.-.0'$)$-,22&--8D/&$ 1(.3)(I$ -*)7&/05+&(-$ 4/0$ /)J&$ .+&'*.<.&+$ */&$ J.-.0'$ */&'$ 6(.'%$ .'$ .'2.+&'*)5$ -*)7&/05+&(-8$ _)2/$ -*)7&/05+&(+&<.'&-$*/&$%0)5-$*/&I$'&&+$*0$)2/.&J&$.'$0(+&($<0($*/&$J.-.0'$*0$6&$-,22&--<,58$#0($&F)315&=$)$5&%)5$+&1)(*3&'*$3.%/*)-7$<0($2&(*).'$(&%,5)*0(I$(&O,.(&3&'*-$*0$6&$3&*8$D/&$/&)+$0<$3)(7&*.'%$3.%/*$4)'*$*0$&'%)%&$*/&$2033,'.*I$4/04.55$6&$,-.'%$*/&$-0<*4)(&8$L$-&2,(.*I$&F1&(*$4.55$3)7&$-,(&$*/)*$*/&$-0<*4)(&$40'b*$6&$J,5'&()65&$*0$9ei$.'[&2*.0')**)27-8#(03$ */&-&$%0)5-=$6(0)+$ */&3&-$0($ <&)*,(&$ -&*-$)(&$+&<.'&+$4/.2/$4.55$ )2/.&J&$ */&3X$ <0($ .'-*)'2&=$ ])5504$,-&(-$ *0()'7$20'*(.6,*.0'-]$0($]),+.*$*()'-)2*.0'-]8#(03$*/&-&$*/&3&-=$,-&($<&)*,(&-$)'+$*/&$<.(-*$+&*).5-$0<$*/&$,-&($.'*&(<)2&$2)'$6&$&-*)65.-/&+8

,'$#*1"2*+^""$ .-$ +(.J&'$ 6I$ 6,-.'&--$ J)5,&GfH$ X$ */)*$ .-=$ */&$ 6&'&<.*$ *0$ */&$ 6,-.'&--$4/.2/$ )22(,&-$ 0'2&$ */&$ )115.2)*.0'$ .-$ .'1(0+,2*.0'8$D/&$0'5I$4)I$ .'$4/.2/$ */.-$6&'&<.*$ 2)'$6&$ (&)5.K&+$ .-$ */(0,%/$ */&$,-&($ .'*&(<)2&Q-R$ *0$ */&$)115.2)*.0'=,-,)55I$Q6,*$'0*$)54)I-R$)$SCM8M'$*/&$-)3&$4)I=$&)2/$1.&2&$0<$20+&=$-*)(*.'%$4.*/$*/&$CM=$2)'$6&$20'-.+&(&+$)$-*)7&/05+&($0<$*/&$0*/&($30+,5&-$0<20+&$4/.2/$.*$,-&-8$_)2/$&5&3&'*$0<$20+&$1(0J.+&-$-03&$)-1&2*$0<$6&/)J.0($4/.2/=$.'$2055)60()*.0'$4.*/$*/&$0*/&(&5&3&'*-=$1(0J.+&-$*/&$)115.2)*.0'$6&/)J.0(8D/&$<.(-*$1.&2&$0<$1(0+,2*.0'$20+&$*/)*$^""$+&J&501&(-$.315&3&'*$.-$*/&$CM8$"&J&501&(-$2)'$*/&'$6&'&<.*$<(03$O,.27<&&+6)27$)-$*0$4/&*/&($*/&$CM$5007-$)'+$6&/)J&-$)11(01(.)*&5I8$D/(0,%/$20+&=$)'+$,-.'%$1(.'2.15&-$0<$%00+$+&-.%')'+$(&<)2*0(.'%=$+&J&501&(-$+.-20J&($2055)60()*0(-$0<$ */&$CM=$)'+$0<$&J&(I$,'.*$0<$20+&$ */&(&)<*&(8$D/.-$/&51-$ */&3)+/&(&$ *0$ */&$ 1(.'2.15&$ 0<$qLSWM=$ -.'2&$ &)2/$ 1.&2&$ 0<$ 1(0+,2*.0'$ 20+&$ .-$ (&O,.(&+$ &.*/&($ 6I$ */&$ 6,-.'&--=$ 0($ 6I)'0*/&($1.&2&$0<$20+&$)5(&)+I$4(.**&'8

Page 15: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* AB

B558*7&$*(+%"J&)58"#D/&$(&O,.(&3&'*-$0<$)$(&*).5$)115.2)*.0'$3.%/*$6&=$]\&<,'+&+$0($(&15)2&+$.*&3-$-/0,5+$6&$(&*,('&+$*0$-*0278]M'$^""=$)$+&J&501&($0($eL$3.%/*$25)(.<I$*/&$(&O,.(&3&'*-$6I$6(&)7.'%$*/.-$+04'$.'*0$-1&2.<.2$&F)315&-=$&8%8

G7"+&.*(%MW%H";'+1"1%*$")#%#6('81%T"%."$'.+"1%$(%#$(7@P S.J&'$)$2,-*03&($6,I-$)$65)27$[,31&(P )'+$M$/)J&$*/(&&$65)27$[,31&(-$5&<*$.'$-*027P 4/&'$/&$(&*,('-$*/&$[,31&($<0($)$(&<,'+P */&'$M$-/0,5+$/)J&$<0,($65)27$[,31&(-$.'$-*027

G7"+&.*(%OW%H"58&7"1%*$")#%#6('81%T"%."$'.+"1%$(%#$(7@P S.J&'$*/)*$)$2,-*03&($6,I-$)$65,&$%)(3&'*P )'+$M$/)J&$*40$65,&$%)(3&'*-$.'$-*027P )'+$*/(&&$65)27$%)(3&'*-$.'$-*0278P U/&'$/&$(&*,('-$*/&$%)(3&'*$<0($)$(&15)2&3&'*$.'$65)27=P D/&'$M$-/0,5+$/)J&$*/(&&$65,&$%)(3&'*-$.'$-*027P )'+$*40$65)27$%)(3&'*-$.'$-*027_)2/$-2&')(.0$.-$)'$&F&315)(=$+&-.%'&+$*0$.55,-*()*&$)$-1&2.<.2$)-1&2*$0<$6&/)J.0($0<$*/&$)115.2)*.0'8U/&'$ +.-2,--.'%$ */&$ -2&')(.0-=$ 1)(*.2.1)'*-$ O,&-*.0'$ 4/&*/&($ */&$ 0,*203&-$ +&-2(.6&+$ )54)I-$ (&-,5*$ <(03$ */0-&&J&'*-$022,((.'%$.'$*/&$%.J&'$20'*&F*8$D/.-$2)'$/&51$*0$,'20J&($<,(*/&($-2&')(.0-$4/.2/$25)(.<I$*/&$(&O,.(&3&'*-GgH$8#0($ .'-*)'2&=$ )$ +03).'$ &F1&(*$ '0*.2.'%$ */)*$ (&<,'+&+$ .*&3-$ )(&$ '0*$ )54)I-$ (&*,('&+$ *0$ -*027$ 3.%/*$ (&40(+$ */&(&O,.(&3&'*-$)-$]\&<,'+&+$0($(&15)2&+$.*&3-$-/0,5+$6&$(&*,('&+$*0$-*027$,'5&--$<),5*I8]D/.-$.'$*,('$/&51-$1)(*.2.1)'*-$*0$1.'$+04'$*/&$-201&$0<$(&O,.(&3&'*-=$4/.2/$5&)+-$*0$6&**&($&-*.3)*&-$0<$/04$50'%*/0-&$(&O,.(&3&'*-$4.55$*)7&$*0$.315&3&'*8D/&$40(+-$S.J&'=$U/&'$)'+$D/&'$)(&$0<*&'$,-&+$*0$/&51$+(.J&$0,*$*/&$-2&')(.0-=$6,*$)(&$'0*$3)'+)*&+8D/&-&$-2&')(.0-$2)'$)5-0$6&$),*03)*&+=$.<$)'$)11(01(.)*&$*005$&F.-*-$*0$)5504$),*03)*.0'$)*$*/&$CM$5&J&58$M<$'0$-,2/*005$&F.-*-$*/&'$.*$3)I$6&$10--.65&$*0$),*03)*&$)*$*/&$'&F*$5&J&5$.'=$.&:$.<$)'$Y`E$+&-.%'$1)**&('$/)-$6&&'$,-&+=$*/&5&J&5$0<$*/&$E0'*(055&(8

9+*$28"-"8%"J&)58"#%&+1%T"6&-*(.D/&$-)3&$1(.'2.15&-$0<$&F)315&-=$,-.'%$20'*&F*-=$&J&'*-$)'+$0,*203&-$)(&$,-&+$*0$+(.J&$+&J&5013&'*$)*$)$,'.*$5&J&58#0($.'-*)'2&=$*/&$<05504.'%$&F)315&-$+&-2(.6&$)'$)-1&2*$0<$6&/)J.0($0<$)$5.-*:_F)315&$A:$W&4$5.-*-$)(&$&31*IP S.J&'$)$'&4$5.-*P D/&'$*/&$5.-*$-/0,5+$6&$&31*I8_F)315&$>:$i.-*-$4.*/$*/.'%-$.'$*/&3$)(&$'0*$&31*I8P S.J&'$)$'&4$5.-*P U/&'$4&$)++$)'$06[&2*P D/&'$*/&$5.-*$-/0,5+$'0*$6&$&31*I8^0*/$*/&-&$&F)315&-$)(&$(&O,.(&+$*0$+&-2(.6&$*/&$6&/)J.0($0<$*/&

!"#$%"#&'($)*+

3&*/0+=$)'+$*0$+&(.J&$*/&$6&'&<.*$0<$*/&$3&*/0+8$D/&-&$&F)315&-$)(&$,-,)55I$),*03)*&+$,-.'%$D""$<()3&40(7-8$M'^""$ */&-&$ &F)315&-$ )(&$ 0<*&'$ &'2)1-,5)*&+$ .'$ )$ -.'%5&$3&*/0+=$4.*/$ */&$ ')3&$ 0<$ */&$3&*/0+$ 6&.'%$ )$ 20315&*&

Page 16: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* Ad

+&-2(.1*.0'$0<$*/&$6&/)J.0(8$^0*/$&F)315&-$)(&$(&O,.(&+$<0($*/&$20+&$*0$6&$J)5,)65&=$)'+$&'2)1-,5)*.'%$*/&3$.'$*/.-4)I$3)7&-$.*$&)-I$*0$O,&-*.0'=$(&30J&$0($2/)'%&$*/&$6&/)J.0,(8#0($.'-*)'2&=$,-.'%$V)J)$)'+$VC'.*$d=$*/&$)60J&$&F)315&-$3.%/*$6&203&:

!"#$%&,&$'((,)%(*+,(*,-

,,,./0#$

,,,!"#$%&,12"3,#425!36728940$40:;$;#&'($)*+,-

,,,,,,<"#$,!"#$=,>,-,.,<"#$*+?

,,,,,,@##0:$/:50*!"#$=%"#&'($)*++?

,,,,,,<"#$,!"#$A,>,-,.,<"#$*+?

,,,,,,!"#$A%@33*-,.,BCD0E$*++?

,,,,,,@##0:$F@!#0*!"#$A%"#&'($)*++?

,,,G

G

N*/&($1()2*.*.0'&(-=$1)(*.2,5)(5I$.'$*/&$\,6I$2033,'.*I=$1(&<&($*0$-15.*$*/&-&$.'*0$*40$-&1)()*&$&F)315&-=$6)-&+$0'-&1)()*&$20'*&F*-$<0($4/&'$*/&$5.-*$.-$&31*I$0($/)-$.*&3-$.'8$D/.-$*&2/'.O,&$.-$6)-&+$0'$")J&$L-*&5-b$1()2*.2&=$]N'&)--&(*.0'$1&($*&-*GA@H$]8903&*.3&-$*/&$+.<<&(&'2&$6&*4&&'$*/&$20'*&F*=$&J&'*-$)'+$0,*203&-$.-$3)+&$30(&$&F15.2.*8$#0($.'-*)'2&:

!"#$%&,&$'((,/%-01.21-*31$4,5'6%13,-

,,,,./0#$

,,,,!"#$%&,12"3,#425!3H!2#09"7328#*+,-

,,,,,,,,

,,,,,,,,!!"#$%&'

,,,,,,,,9"7328H27$:2!,E27$:2!,>,-,.,9"7328H27$:2!*IJ),KF:@'0I+?

,,,,,,,,KF:@'0,L:@'0,>,-,.,KF:@'0*+?

,,,,,,,,

,,,,,,,,!!"()&'

,,,,,,,,E27$:2!%E!2#09"7328*+?

,,,,,,,,

,,,,,,,,!!"*)&'

,,,,,,,,07#5:0/4@$*ML:@'0%"#N428"7O*++?,,,,,,,

,,,,G

G

Z04&J&($ */&$&F)315&$ .-$1/()-&+=$ */&$&<<&2*$+&-2(.6&-$ */&$6&/)J.0($0<$ */&$20+&$ .'$O,&-*.0'8$#0($ .'-*)'2&=$ <(03$*/&&F)315&-$)60J&$0'&$2)'$+&(.J&:P i.-*$-/0,5+$7'04$4/&'$.*$.-$&31*IP U.'+04E0'*(05$-/0,5+$250-&$4.'+04-D/&$+&-2(.1*.0'$.-$.'*&'+&+$*0$6&$,-&<,5$.<$*/&$*&-*$<).5-=$)'+$*0$1(0J.+&$+02,3&'*)*.0'$0<$*/&$20+&b-$6&/)J.0(8$N'2&*/&$&F)315&-$/)J&$6&&'$4(.**&'$*/&I$)(&$*/&'$(,'$)'+$*/&$20+&$.315&3&'*&+$*0$3)7&$*/&3$40(7$.'$*/&$-)3&$4)I$)-D""8$D/&$&F)315&-$*/&'$6&203&$1)(*$0<$*/&$-,.*&$0<$(&%(&--.0'$*&-*-8

Page 17: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* A?

9#*+3%)(7@#^""$ 1(010'&'*-$ 25).3$ */)*$ */&$ ,-&$ 0<$ ]-/0,5+]$ )'+$ ]&'-,(&D/)*]$ .'$ ^""$ &F)315&-$ &'20,()%&-$ +&J&501&(-$ *0O,&-*.0'$ 4/&*/&($ */&$ (&-10'-.6.5.*.&-$ */&Ib(&$ )--.%'.'%$ *0$ */&.($ 25)--&-$ )(&$ )11(01(.)*&=$ 0($ 4/&*/&($ */&I$ 2)'$ 6&+&5&%)*&+$0($30J&+$*0$)'0*/&($25)--$&'*.(&5I8$!()2*.*.0'&(-$,-&$)'$06[&2*$4/.2/$.-$-.315&($*/)'$*/&$2055)60()*.'%$20+&=)'+$1(0J.+&-$ */&$ -)3&$ .'*&(<)2&$6,*$30(&$1(&+.2*)65&$6&/)J.0(8$D/.-$ .-$ .'[&2*&+$ .'*0$ */&$20+&$4/.2/$'&&+-$ .*=$ )'+&F)315&-$0<$*/)*$20+&b-$6&/)J.0($)(&$4(.**&'$,-.'%$*/.-$06[&2*$.'-*&)+$0<$*/&$1(0+,2*.0'$J&(-.0'8D/&-&$06[&2*-$2)'$&.*/&($6&$2(&)*&+$6I$/)'+=$0($2(&)*&+$,-.'%$)$3027.'%$<()3&40(7$-,2/$)-$Y027.*0=$Y0O=$WY027=\/.'0$Y027-=$VY027$0($_)-IY0278e,&-*.0'.'%$ (&-10'-.6.5.*.&-$ .'$ */.-$ 4)I=$ )'+$ ,-.'%$ 3027-$ *0$ <,5<.55$ */&$ (&O,.(&+$ (05&-$ 0<$ 2055)60()*.'%$ 25)--&-=&'20,()%&-$*/&$,-&$0<$\05&T6)-&+$M'*&(<)2&-8$M*$)5-0$/&51-$*0$7&&1$*/&$25)--&-$-3)55$)'+$500-&5I$20,15&+8

!((8#P V^&&$GAAH$T$V)J)P L991&2$GA>H$T$L2*.0'92(.1*$BP L&(0$GABH$T$!Z!$?P L,6&(%.'&$GAdH$T$8W_DP ^"02$GA?H$T$_F*()2*.'%$+02,3&'*)*.0'$<(03$,'.*$*&-*-=$-,110(*.'%$6&/)J.0($+(.J&'$+&J&5013&'*P ^""$.'$!I*/0'$GAhH$.-$20(&$30+,5&$+02*&-*$GAjH

P ^,365&6&&$GAfH$T$_F*()2*$+02,3&'*)*.0'$<(03$VC'.*$*&-*-$4.*/$-,110(*$<0($)++.'%$*&F*=$20+&T-'.11&*-=$-2(&&'-/0*-)'+$30(&8$!,*-$<02,-$0'$*/&$&'+T,-&(8

P 6&)'91&2$GAgH$T$V)J)P E1191&2$G>@H$T$EyyP 2<91&2$G>AH$T$E05+#,-.0'P E91&2$G>>H$T$EP +91&2$G>BH$T$"&51/.P E0'20(+.0'$G>dH$T$)$V)J)$),*03)*&+$*&-*.'%$*005$<0($^""$*/)*$,-&-$15).'$_'%5.-/$*0$+&-2(.6&$6&/)J.0(-8P E,2,36&($GhH$T$!5).'$*&F*$y$\,6I8$U0(7-$)%).'-*$V)J)=$8W_D=$\,6I=$#5&F$0($)'I$4&6$)115.2)*.0'$J.)$U)*.($0(

9&5&'.,38P &)-I6$G>?H$T$S(00JI;V)J)P _)-I91&2$G>hH$T$S(00JI=$,-)65&$.'$V)J)8$"&J&501&($)5-0$40(7.'%$0'$!&(2&1*.0'$G>jH$)$*005$<0($+0.'%

E0'*&F*;91&2.<.2)*.0'$(&10(*.'%$<0($3)'I$+.<<&(&'*$*005-8P #.*W&--&$G>fH$T$V)J)=$8W_D=$Eyy=$"&51/.=$!I*/0'=$\,6I=$93)55*)57=$!&(58$W04$-,110(*-$^""$+.(&2*5I$4.*/$15).'

*&F*$*)65&-$)'+$-2&')(.0-8P #(&-/&'$G>gH$T$!I*/0'$T$250'&$0<$*/&$E,2,36&($^""$<()3&40(7P S.JU&'n&'$GB@H$T$V)J)$)'+$#.*W&--&P S.JU&'n&'$<0($#5&F$)'+$L2*.0'92(.1*B$GBAH$T$#5&F$20,-.'$0<$V)J)$S.JU&'n&'P S91&2$GB>H$T$S(00JIP M%500$GBBH$T$EyyP M'-*.'2*$GBdH$T$V)J)P V)-3.'&$GB?H$T$V)J)92(.1*$T$<()3&40(7T.'+&1&'+&'*$^""$4.*/$&)-I$EM$.'*&%()*.0'P V)J)9*,6-$GBhH$T$V)J)$T$^""$<()3&40(7$-,110(*.'%$1)(*.)5T3027.'%;3&*/0+$-*,66.'%P V^&/)J&$GBjH$T$V)J)P V")J&$GBfH$T$V)J)P V#w*()-$D&-*$GBgH$T$V)J)#wP V91&2$Gd@H$T$V)J)92(.1*$T$^""$<()3&40(7$.'+&1&'+&'*=$)-I'2$-,110(*=$3,5*.15&$(&10(*&(-$Q*&(3.')5=$+03=$-&(J&(=

20'-05&=$&*28R=$\/.'0$-,110(*=$0J&($?@$3)*2/&(-$)'+$3,2/$30(&

Page 18: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* Ah

P V991&2$GdAH$T$V)J)92(.1*P Y0(&5.)$:*&*6*1$Gd>H$T$E,2,36&($250'&$<0($!I*/0'P Y91&2$GdBH$T$8W_DP W^&/)J&$GddH$T$8W_DP W91&2$Gd?H$T$8W_DP WC'.*$GdhH$T$L$D""$<()3&40(7$.'$8W_D$4/.2/$2)'$6&$,-&+$<0($^""$&F)315&-$)'+$-2&')(.0-P N6[&2*.J&Y)*2/I$GdjH$T$.!/0'&$T$L$Y)*2/&($9I-*&3$<0($.!/0'&$+&J&5013&'*8P !I22,()2I$GdfH$T$^&/)J.0(T+(.J&'$<()3&40(7$.'$!I*/0'8P !I/.-*0(.)'$GdgH$T$S&'&()5$1,(10-&$^""$9*0(I$\,''&($.'$!I*/0'$Q.'*&(')5$"9i=$'0*$15).'T*&F*RP !IE,7&-$G?@H$T$E,2,36&(T5.7&$^""$*005$6,.5*$0'$*01$0<$!I/.-*0(.)'P \060*$#()3&40(7$G?AH$T$S&'&(.2$7&I40(+T+(.J&'$*&-*$),*03)*.0'$<()3&40(7$<0($)22&1*)'2&$5&J&5$*&-*.'%$)'+

)22&1*)'2&$*&-*T+(.J&'$+&J&5013&'*$QLD""R$4(.**&'$.'$!I*/0'P \91&2$G?>H$T$\,6IP 91027$G?BH$T$91027$.-$)$*&-*.'%$)'+$-1&2.<.2)*.0'$<()3&40(7$<0($V)J)$)'+$S(00JIP 91&2#504$G?dH$T$91&2#504$.-$.'-1.(&+$6I$E,2,36&($)'+$*/&$2033,'.*I$)(0,'+$.*8$^.'+.'%$6,-.'&--$(&O,.(&3&'*-

*0$8W_D$20+&P -2(&4T,'.*$G??H$T$V)J)92(.1*P 92)5)D&-*$G?hH$T$92)5)P -1&2-$G?jH$T$92)5)P -1&2T211$G?fH$T$EyyP 91&2*)2,5)($G?gH$T$N1&'$-0,(2&$^""$)'+$LD""$*005$.'20(10()*.'%$-&J&()5$*I1&-$0<$*&-*-$.'$)$-.'%5&$+02,3&'*$)'+

.'*(0+,2&-$_F&2,*)65&$C-&$E)-&-P 91&2*&($Gh@H$T$L'0*/&($.315&3&'*)*.0'$0<$^""$<()3&40(7$.'$8W_D$4.*/$<02,-$0'$-1&2.<.2)*.0'$(&)+)6.5.*IP 9*0(Ie$GhAH$T$8W_D$B8?=$2)'$6&$.'*&%()*&+$4.*/$WC'.*$*0$1(0J.+&$60*/$-1&2.<.2)*.0'$(&)+)6.5.*I$)'+$*&-*.'%P *-1&2$Gh>H$T$S(00JI;V)J)$QD/).$-I'*)FRP D4.-*$GhBH$T$E033&(2.)5$_25.1-&T6)-&+$*005$<0($2(&)*.'%$&F&2,*)65&$-1&2.<.2)*.0'-P `04-$GhdH$T$V)J)92(.1*P w91&2$Gh?H$T$w!)*/=$w9iD$)'+$we,&(I

IJ$".+&8%8*+@#P ")'$W0(*/b-$)(*.25&$.'*(0+,2.'%$^""$GhhH

P M'*(0+,2*.0'$*0$^&/)J.0($"(.J&'$"&J&5013&'*$GhjH

P ^&/)J.0($"(.J&'$"&J&5013&'*$C-.'%$\,6I$Q!)(*$AR$GhfH

P ^&/)J.0(T"(.J&'$"&J&5013&'*$C-.'%$\,6I$Q!)(*$>R$GhgH

P M'$1,(-,.*$0<$20+&$O,)5.*I:$L+J&'*,(&-$.'$6&/)J.0(T+(.J&'$+&J&5013&'*$6I$L'+(&4$S50J&($Gj@H

P ^&/)J.0($"(.J&'$")*)6)-&$"&J&5013&'*$6I$!()30+7,3)($9)+)5)%&$GjAH

P D/&$\91&2$^007:$^&/)J.0,($"(.J&'$"&J&5013&'*$4.*/$\91&2=$E,2,36&(=$)'+$#(.&'+-$Gj>H

P S00+$D&-*=$^&**&($E0+&$5+#(03$C'.*$D&-*.'%$*0$^&/)J.0(T"(.J&'$"&J&5013&'*$GjBH

P ^""$.'$1()2*.2&$GjdH

P ^""$-&2*.0'$.'$*/&$90<*4)(&$"&J&5013&'*$D005-$".(&2*0(I$Gj?H

Page 19: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* Aj

H";"."+7"#GAH "8W0(*/=$M'*(0+,2.'%$^&/)J.0,($"(.J&'$"&J&5013&'*$Q/**1:;$;$+)''0(*/8$'&*;$.'*(0+,2.'%T6++RG>H "8W0(*/=$2033&'*-=$D/&$\91&2$^007$T$e,&-*.0'$)60,*$E/)1*&($AA:$U(.*.'%$-0<*4)(&$*/)*$3)**&(-$Q/**1:;$;$<0(,3-8$1()%1(0%8$203;$<0(,3-;$g?;

*01.2-;$B@B?RGBH ")'$W0(*/:$Z04$*0$-&55$^""$*0$*/&$6,-.'&--$Q/**1:;$;$-7.55-3)**&(8$203;$10+2)-*;$[)J)T[&&;$/04T*0T-&55T6++T*0T*/&T6,-.'&--RGdH "8W0(*/=$M'*(0+,2.'%$\^&/)J&$Q/**1:;$;$+)''0(*/8$'&*;$>@@j;$@h;$.'*(0+,2.'%T(6&/)J&RG?H 98Y.55&(=$M'<0e:$\91&2$.'20(10()*&-$\^&/)J&$Q/**1:;$;$4448$.'<0O8$203;$'&4-;$>@@j;$A@;$\91&2T.'20(10()*&-T\^&/)J&RGhH /**1:;$;$2,7&-8$.'<0;GjH E/(.-$Y)**-=$#&)*,(&$M'[&2*.0'$Q/**1:;$;$1.2)-)4&68$%00%5&8$208$,7;$2/(.-8$3)**-;$#&)*,(&M'[&2*.0'oRGfH _8c&0%/=$^""$T$D""$+0'&$4&55l$Q/**1:;$;$5.K7&0%/8$203;$>@@j;$@h;$AB;$6++T*++T+0'&T4&55;$RGgH "8W0(*/=$U/)*b-$.'$)$9*0(I$Q/**1:;$;$+)''0(*/8$'&*;$4/)*-T.'T)T-*0(IRGA@H "8$L-*&5-=$N'&$)--&(*.0'$1&($*&-*$Q/**1:;$;$*&2/650%8$+)J&)-*&5-8$203;$*)%;$6++;$RGAAH /**1:;$;$-.*&-8$%00%5&8$203;$-.*&;$[6&&*&-*;GA>H /**1:;$;$4448$%0.'*&()2*.J&8$-&;$)(*.25&-;$)--1&28$/*35GABH /**1:;$;$20+&8$%00%5&8$203;$1;$)&(0T1/1;GAdH /**1:;$;$4.7.8$%.*/,68$203;$D0V)'-;$L,6&(%.'&;GA?H /**1:;$;$6+028$%00%5&20+&8$203GAhH /**1:;$;$650%8$.)'6.27.'%8$0(%;$6&/)J.0(T+(.J&'T1(0%()33.'%8$/*35GAjH /**1:;$;$1I*/0'8$0(%;$+02;$2,((&'*;$5.6;$30+,5&T+02*&-*8$/*35GAfH /**1:;$;$)%.2)58$203;$6,365&6&&;$6,365&6&&p+028$/*35GAgH /**1:;$;$-0,(2&<0(%&8$'&*;$1(0[&2*-;$6&)'-1&2G>@H /**1:;$;$4448$5),%/.'%1)'+)8$0(%;$1(0[&2*-;$211-1&2G>AH /**1:;$;$2<-1&28$(.)<0(%&8$0(%;G>>H /**1:;$;$%.*/,68$203;$J.-.0'3&+.);$2-1&2G>BH /**1:;$;$-0,(2&<0(%&8$'&*;$1(0[&2*-;$+-1&2;G>dH /**1:;$;$4448$20'20(+.0'8$0(%G>?H /**1:;$;$4448$&)-I68$0(%;G>hH /**1:;$;$20+&8$%00%5&8$203;$1;$&)-I-1&2;G>jH /**1:;$;$20+&8$%00%5&8$203;$1;$1&(2&1*.0';G>fH /**1:;$;$4448$<.*'&--&8$0(%G>gH /**1:;$;$%.*/,68$203;$(5.-)%0(;$<(&-/&'GB@H /**1:;$;$20+&8$%00%5&8$203;$1;$%.J4&'K&';GBAH /**1:;$;$6.*6,27&*8$0(%;$5003.-;$%.J4&'K&'T<5&FGB>H /**1:;$;$%(00JI8$20+&/),-8$0(%;$C-.'%y$S91&2y$4.*/y$S(00JIGBBH /**1:;$;$.%500T*&-*.'%8$0(%;GBdH /**1:;$;$20+&8$%00%5&8$203;$1;$.'-*.'2*;GB?H /**1:;$;$1.J0*)58$%.*/,68$203;$[)-3.'&GBhH /**1:;$;$[)J)-*,6-8$-0,(2&<0(%&8$'&*;GBjH /**1:;$;$[6&/)J&8$0(%;GBfH /**1:;$;$4448$[+)J&8$0(%;GBgH /**1:;$;$20+&8$%00%5&8$203;$1;$[<F*()-;Gd@H /**1:;$;$[-1&28$.'<0GdAH /**1:;$;$[)'.)8$1&8$7(;$)4;$30.'8$2%.;$V991&2Gd>H /**1:;$;$2>8$203;$2%.;$4.7.lY0(&5.)`.(.+.-GdBH /**1:;$;$%.*/,68$203;$3)2/.'&;$3)2/.'&8$-1&2.<.2)*.0'-GddH /**1:;$;$'6&/)J&8$%00%5&20+&8$203;Gd?H /**1:;$;$'-1&28$*.%(.-8$0(%;GdhH /**1:;$;$4448$','.*8$0(%;$.'+&F8$1/1l1m/03&GdjH /**1:;$;$%.*/,68$203;$3/&''&3&I&(;$06[&2*.J&3)*2/IGdfH /**1:;$;$4448$1I22,()2I8$0(%;GdgH /**1:;$;$%.*/,68$203;$/,%06(;$1I/.-*0(.)'G?@H /**1:;$;$%.*/,68$203;$/,%06(;$1I2,7&-G?AH /**1:;$;$20+&8$%00%5&8$203;$1;$(060*<()3&40(7;G?>H /**1:;$;$(-1&28$.'<0;G?BH /**1:;$;$20+&8$%00%5&8$203;$1;$-1027;G?dH /**1:;$;$-1&2<5048$0(%;G??H /**1:;$;$%.*/,68$203;$'7)55&';$-2(&4T,'.*G?hH /**1:;$;$4448$-2)5)*&-*8$0(%;

Page 20: Test-Driven Development Wikipedia Collection

^&/)J.0($"(.J&'$"&J&5013&'* Af

G?jH /**1:;$;$20+&8$%00%5&8$203;$1;$-1&2-;G?fH /**1:;$;$+&)'6&((.-8$203;$-1&2T211G?gH /**1:;$;$-1&2*)2,5)(8$%00%5&20+&8$203;Gh@H /**1:;$;$-1&2*&(8$-<8$'&*;$;GhAH /**1:;$;$4448$20+&15&F8$203;$9*0(Ie;Gh>H /**1:;$;$%.*/,68$203;$2/)'4.*;$*-1&2;$*(&&;$3)-*&(GhBH /**1:;$;$-*,+.0-8$*/0,%/*40(7-8$203;$*4.-*GhdH /**1:;$;$J04-[-8$0(%;Gh?H /**1:;$;$F-1&28$%00%5&20+&8$203;GhhH /**1:;$;$+)''0(*/8$'&*;$.'*(0+,2.'%T6++GhjH /**1:;$;$6&/)J.0(T+(.J&'8$0(%;GhfH /**1:;$;$4448$0(&.55I'&*8$203;$1,6;$);$(,6I;$>@@j;$@f;$@g;$6&/)J.0(T+(.J&'T+&J&5013&'*T,-.'%T(,6IT1)(*TA8$/*35GhgH /**1:;$;$4448$0(&.55I'&*8$203;$1,6;$);$(,6I;$>@@j;$@f;$B@;$6&/)J.0(T+(.J&'T+&J&5013&'*T,-.'%T(,6IT1)(*T>8$/*35Gj@H /**1:;$;$4448$.638$203;$+&J&501&(40(7-;$[)J);$5.6()(I;$[T2O@gAfj;$.'+&F8$/*35GjAH /**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+mjfGj>H /**1:;$;$4448$1()%1(0%8$203;$*.*5&-;$)2/6+;$*/&T(-1&2T6007GjBH /**1:;$;$4448$*J)%.5&8$203;$>@@g;$@f;$AB;$%00+T*&-*T6&**&(T20+&T<(03T,'.*T*&-*.'%T*0T6&/)J.0(T+(.J&'T+&J&5013&'*;GjdH /**1:;$;$/,3)'3)**&(-8$*,365(8$203;$10-*;$BgB?hghA>;$4/I.-*)(*&+,-.'%6&/)J.0(+(.J&'+&J&5013&'*)*40(7Gj?H /**1:;$;$4448$-0<*+&J*005-8$203;$30+,5&-;$4&65.'7-;$J.&42)*8$1/1l2.+mA>f

B77"5$&+7"%$"#$M'$&'%.'&&(.'%$)'+$.*-$J)(.0,-$-,6+.-2.15.'&-=$&77"5$&+7"%$"#$*+3% .-$65)27T60F$*&-*.'%$1&(<0(3&+$0'$)$-I-*&3$Q&8%8-0<*4)(&=$ 50*-$0<$3)',<)2*,(&+$3&2/)'.2)5$1)(*-=$0($6)*2/&-$0<$2/&3.2)5$1(0+,2*-R$1(.0($ *0$.*-$+&5.J&(I8GAH$ M*$ .-$)5-07'04'$ )-$ <,'2*.0')5$ *&-*.'%=$ 65)27T60F$ *&-*.'%=$ (&5&)-&$ )22&1*)'2&=$ eL$ *&-*.'%=$ )115.2)*.0'$ *&-*.'%=$ 20'<.+&'2&*&-*.'%=$<.')5$*&-*.'%=$J)5.+)*.0'$*&-*.'%=$0($<)2*0(I$)22&1*)'2&$*&-*.'%8M'$-0<*4)(&$+&J&5013&'*=$&77"5$&+7"%$"#$*+3%6I$*/&$-I-*&3$1(0J.+&($.-$0<*&'$+.-*.'%,.-/&+$<(03$)22&1*)'2&$*&-*.'%6I$ */&$ 2,-*03&($ Q*/&$ ,-&($ 0($ 25.&'*R$ 1(.0($ *0$ )22&1*.'%$ *()'-<&($ 0<$ 04'&(-/.18$ M'$ -,2/$ &'J.(0'3&'*-=$ )22&1*)'2&*&-*.'%$ 1&(<0(3&+$ 6I$ */&$ 2,-*03&($ .-$ 7'04'$ )-$ ,-&($ )22&1*)'2&$ *&-*.'%$ QCLDR8$ D/.-$ .-$ )5-0$ 7'04'$ )-$ &'+T,-&(*&-*.'%=$-.*&$Q)22&1*)'2&R$*&-*.'%=$0($<.&5+$Q)22&1*)'2&R$*&-*.'%8L$-307&$*&-*$.-$,-&+$)-$)'$)22&1*)'2&$*&-*$1(.0($*0$.'*(0+,2.'%$)$6,.5+$*0$*/&$3).'$*&-*.'%$1(02&--8

,-".-*"/L22&1*)'2&$*&-*.'%$%&'&()55I$.'J05J&-$(,''.'%$)$-,.*&$0<$*&-*-$0'$*/&$20315&*&+$-I-*&38$_)2/$.'+.J.+,)5$*&-*=$7'04')-$)$2)-&=$&F&(2.-&-$)$1)(*.2,5)($01&()*.'%$20'+.*.0'$0<$*/&$,-&(b-$&'J.(0'3&'*$0($<&)*,(&$0<$*/&$-I-*&3=$)'+$4.55$(&-,5*.'$)$1)--$0($ <).5=$0($6005&)'=$0,*203&8$D/&(&$ .-$%&'&()55I$'0$+&%(&&$0<$ -,22&--$0($ <).5,(&8$D/&$ *&-*$&'J.(0'3&'*$ .-,-,)55I$+&-.%'&+$*0$6&$.+&'*.2)5=$0($)-$250-&$)-$10--.65&=$*0$*/&$)'*.2.1)*&+$,-&(b-$&'J.(0'3&'*=$.'25,+.'%$&F*(&3&-$0<-,2/8$D/&-&$*&-*$2)-&-$3,-*$&)2/$6&$)22031)'.&+$6I$*&-*$2)-&$.'1,*$+)*)$0($)$<0(3)5$+&-2(.1*.0'$0<$*/&$01&()*.0')5)2*.J.*.&-$Q0($60*/R$*0$6&$1&(<0(3&+8.'*&'+&+$*0$*/0(0,%/5I$&F&(2.-&$*/&$-1&2.<.2$2)-&8)'+$)$<0(3)5$+&-2(.1*.0'$0<*/&$&F1&2*&+$(&-,5*-8L22&1*)'2&$D&-*-;E(.*&(.)$Q.'$L%.5&$90<*4)(&$"&J&5013&'*R$)(&$,-,)55I$2(&)*&+$6I$6,-.'&--$2,-*03&(-$)'+$&F1(&--&+.'$)$6,-.'&--$+03).'$5)'%,)%&8$D/&-&$)(&$/.%/$5&J&5$*&-*-$*0$*&-*$*/&$20315&*&'&--$0<$)$,-&($-*0(I$0($-*0(.&-$b15)I&+b+,(.'%$ )'I$ -1(.'*;.*&()*.0'8$ D/&-&$ *&-*-$ )(&$ 2(&)*&+$ .+&)55I$ */(0,%/$ 2055)60()*.0'$ 6&*4&&'$ 6,-.'&--$ 2,-*03&(-=6,-.'&--$)')5I-*-=$*&-*&(-$)'+$+&J&501&(-=$/04&J&($*/&$6,-.'&--$2,-*03&(-$Q1(0+,2*$04'&(-R$)(&$*/&$1(.3)(I$04'&(-0<$*/&-&$*&-*-8$L-$*/&$,-&($-*0(.&-$1)--$*/&.($)22&1*)'2&$2(.*&(.)=$*/&$6,-.'&--$04'&(-$2)'$6&$-,(&$0<$*/&$<)2*$*/)*$*/&+&J&501&(-$ )(&$ 1(0%(&--.'%$ .'$ */&$ (.%/*$ +.(&2*.0'$ )60,*$ /04$ */&$ )115.2)*.0'$ 4)-$ &'J.-)%&+$ *0$ 40(7$ )'+$ -0$ .*b-&--&'*.)5$*/)*$*/&-&$*&-*-$.'25,+&$60*/$6,-.'&--$50%.2$*&-*-$)-$4&55$)-$CM$J)5.+)*.0'$&5&3&'*-$Q.<$'&&+$6&R8L22&1*)'2&$*&-*$2)(+-$)(&$.+&)55I$2(&)*&+$+,(.'%$-1(.'*$15)''.'%$0($ .*&()*.0'$15)''.'%$3&&*.'%=$6&<0(&$+&J&5013&'*6&%.'-$ -0$ */)*$ */&$+&J&501&(-$/)J&$)$25&)($ .+&)$0<$4/)*$ *0$+&J&5018$903&*.3&-$ Q+,&$ *0$6)+$15)''.'%rR$)22&1*)'2&

Page 21: Test-Driven Development Wikipedia Collection

L22&1*)'2&$*&-* Ag

*&-*-$3)I$-1)'$3,5*.15&$-*0(.&-$Q*/)*$)(&$'0*$.315&3&'*&+$.'$*/&$-)3&$-1(.'*R$)'+$*/&(&$)(&$+.<<&(&'*$4)I-$*0$*&-*$*/&30,*$+,(.'%$)2*,)5$-1(.'*-8$N'&$101,5)($*&2/'.O,&$.-$*0$3027$&F*&(')5$.'*&(<)2&-$0($+)*)$*0$3.3.27$0*/&($-*0(.&-$4/.2/3.%/*$'0*$6&$15)I&+$0,*$+,(.'%$)'$.*&()*.0'$Q)-$*/0-&$-*0(.&-$3)I$/)J&$6&&'$(&5)*.J&5I$504&($6,-.'&--$1(.0(.*IR8$L$,-&(-*0(I$.-$'0*$20'-.+&(&+$20315&*&$,'*.5$*/&$)22&1*)'2&$*&-*-$/)J&$1)--&+8

A.(7"##D/&$)22&1*)'2&$*&-*$-,.*&$.-$(,'$)%).'-*$*/&$-,115.&+$.'1,*$+)*)$0($,-.'%$)'$)22&1*)'2&$*&-*$-2(.1*$*0$+.(&2*$*/&$*&-*&(-8D/&'$*/&$(&-,5*-$06*).'&+$)(&$2031)(&+$4.*/$*/&$&F1&2*&+$(&-,5*-8$M<$*/&(&$.-$)$20((&2*$3)*2/$<0($&J&(I$2)-&=$*/&$*&-*-,.*&$.-$-).+$*0$1)--8$M<$'0*=$*/&$-I-*&3$3)I$&.*/&($6&$(&[&2*&+$0($)22&1*&+$0'$20'+.*.0'-$1(&J.0,-5I$)%(&&+$6&*4&&'*/&$-10'-0($)'+$*/&$3)',<)2*,(&(8D/&$06[&2*.J&$.-$*0$1(0J.+&$20'<.+&'2&$*/)*$*/&$+&5.J&(&+$-I-*&3$3&&*-$*/&$6,-.'&--$(&O,.(&3&'*-$0<$60*/$-10'-0(-)'+$,-&(-8$D/&$)22&1*)'2&$1/)-&$3)I$)5-0$)2*$)-$*/&$<.')5$O,)5.*I$%)*&4)I=$4/&(&$)'I$O,)5.*I$+&<&2*-$'0*$1(&J.0,-5I+&*&2*&+$3)I$6&$,'20J&(&+8L$ 1(.'2.1)5$ 1,(10-&$ 0<$ )22&1*)'2&$ *&-*.'%$ .-$ */)*=$ 0'2&$ 20315&*&+$ -,22&--<,55I=$ )'+$ 1(0J.+&+$ 2&(*).'$ )++.*.0')5Q20'*()2*,)55I$ )%(&&+R$ )22&1*)'2&$ 2(.*&(.)$ )(&$3&*=$ */&$ -10'-0(-$4.55$ */&'$ -.%'$ 0<<$ 0'$ */&$ -I-*&3$ )-$ -)*.-<I.'%$ */&20'*()2*$Q1(&J.0,-5I$)%(&&+$6&*4&&'$-10'-0($)'+$3)',<)2*,(&(R=$)'+$+&5.J&($<.')5$1)I3&'*8

9#".%&77"5$&+7"%$"#$*+39#".%B77"5$&+7"%!"#$*+3%QCLDR$.-$)$1(02&--$*0$06*).'$20'<.(3)*.0'$6I$)$9,6[&2*$Y)**&($_F1&(*$Q9Y_R=$1(&<&()65I*/&$ 04'&($ 0($ 25.&'*$ 0<$ */&$ 06[&2*$ ,'+&($ *&-*=$ */(0,%/$ *(.)5$ 0($ (&J.&4=$ */)*$ )$ -I-*&3$3&&*-$ 3,*,)55I$ )%(&&+T,10'(&O,.(&3&'*-8$M'$-0<*4)(&$+&J&5013&'*=$CLD$.-$0'&$0<$*/&$<.')5$-*)%&-$0<$)$1(0[&2*$)'+$0<*&'$022,(-$6&<0(&$)$25.&'*$0(2,-*03&($)22&1*-$*/&$'&4$-I-*&38C-&(-$0<$*/&$-I-*&3$1&(<0(3$*/&-&$*&-*-=$4/.2/$+&J&501&(-$+&(.J&$<(03$*/&$25.&'*b-$20'*()2*$0($*/&$,-&($(&O,.(&3&'*--1&2.<.2)*.0'8D&-*$+&-.%'&(-$+()4$,1$<0(3)5$*&-*-$)'+$+&J.-&$)$()'%&$0<$-&J&(.*I$5&J&5-8$M*$.-$1(&<&()65&$*/)*$*/&$+&-.%'&($0<$*/&$,-&()22&1*)'2&$*&-*-$'0*$6&$*/&$2(&)*0($0<$*/&$<0(3)5$.'*&%()*.0'$)'+$-I-*&3$*&-*$2)-&-$<0($*/&$-)3&$-I-*&3=$/04&J&($*/&(&)(&$ -03&$-.*,)*.0'-$4/&(&$ */.-$3)I$'0*$6&$)J0.+&+8$D/&$CLD$)2*-$ )-$)$ <.')5$J&(.<.2)*.0'$0<$ */&$ (&O,.(&+$6,-.'&--<,'2*.0'$)'+$1(01&($<,'2*.0'.'%$0<$*/&$-I-*&3=$&3,5)*.'%$(&)5T40(5+$,-)%&$20'+.*.0'-$0'$6&/)5<$0<$*/&$1)I.'%$25.&'*0($ )$ -1&2.<.2$ 5)(%&$ 2,-*03&(8$ M<$ */&$ -0<*4)(&$ 40(7-$ )-$ .'*&'+&+$ )'+$ 4.*/0,*$ .--,&-$ +,(.'%$ '0(3)5$ ,-&=$ 0'&$ 2)'(&)-0')65I$ .'<&($ */&$ -)3&$ 5&J&5$ 0<$ -*)6.5.*I$ .'$ 1(0+,2*.0'8$D/&-&$ *&-*-=$4/.2/$ )(&$ ,-,)55I$ 1&(<0(3&+$ 6I$ 25.&'*-$ 0(&'+T,-&(-=$)(&$'0*$,-,)55I$<02,-&+$0'$.+&'*.<I.'%$-.315&$1(065&3-$-,2/$)-$-1&55.'%$&((0(-$)'+$20-3&*.2$1(065&3-=$'0(-/04$-*011&($+&<&2*-=$-,2/$)-$-0<*4)(&$2()-/&-X$*&-*&(-$)'+$+&J&501&(-$1(&J.0,-5I$.+&'*.<I$)'+$<.F$*/&-&$.--,&-$+,(.'%&)(5.&($,'.*$*&-*.'%=$.'*&%()*.0'$*&-*.'%=$)'+$-I-*&3$*&-*.'%$1/)-&-8D/&$(&-,5*-$0<$*/&-&$*&-*-$%.J&$20'<.+&'2&$*0$*/&$25.&'*-$)-$*0$/04$*/&$-I-*&3$4.55$1&(<0(3$.'$1(0+,2*.0'8$D/&(&$3)I)5-0$6&$5&%)5$0($20'*()2*,)5$(&O,.(&3&'*$<0($)22&1*)'2&$0<$*/&$-I-*&38

X29B!%2%X'&+$*;*"1%9#".%B77"5$&+7"%!"#$*+3X'&+$*;*"1%9#".%B77"5$&+7"%!"#$*+3% QeTCLD$0(=$30(&$ -.315I=$ */&$e,)'*.<.&+$L11(0)2/R$ .-$ )$ (&J.-&+$^,-.'&--L22&1*)'2&$D&-*.'%$ 1(02&--$4/.2/$ ).3-$ *0$ 1(0J.+&$ )$ -3)(*&($ )'+$ <)-*&($ )5*&(')*.J&$ *0$ */&$ *()+.*.0')5$CLD$1/)-&8"&1*/T*&-*.'%$ .-$ 2)((.&+$ 0,*$ )%).'-*$ ^,-.'&--$ \&O,.(&3&'*$ 0'5I$ )*$ -1&2.<.2$ 15)''&+$ 10.'*-$ .'$ */&$ )115.2)*.0'$ 0(-&(J.2&$ ,'+&($ *&-*8$ L$ (&5.)'2&$ 0'$ 6&**&($ O,)5.*I$ 20+&$ +&5.J&(I$ <(03$ "&J&5013&'*;^,.5+$ 1/)-&$ .-$ )--,3&+$ )'+$ )20315&*&$ ,'+&(-*)'+.'%$ 0<$ */&$ )11(01(.)*&$ ^,-.'&--$ !(02&--$ .-$ )$ 1(&T(&O,.-.*&8$ D/.-$ 3&*/0+050%I$ .<$ 2)((.&+$ 0,*20((&2*5I$(&-,5*-$.'$)$O,.27$*,(')(0,'+$)%).'-*$15)'=$)$+&2(&)-&+$',36&($0<$*&-*$-2&')(.0-$4/.2/$)(&$30(&$20315&F)'+$ 4.+&($ .'$ 6(&)+*/$ */)'$ *()+.*.0')5$ CLD$ )'+$ ,5*.3)*&5I$ */&$ &O,.J)5&'*$ 20'<.+&'2&$ 5&J&5$ )**).'&+$ J.)$ )$ -/0(*&(+&5.J&(I$4.'+04=$)5504.'%$1(0+,2*-;2/)'%&-$*0$6&$6(0,%/*$*0$3)(7&*$O,.27&(8

Page 22: Test-Driven Development Wikipedia Collection

L22&1*)'2&$*&-* >@

D/&$L11(0)2/$.-$6)-&+$0'$)$b%)*&+b$BT+.3&'-.0')5$30+&5$*/&$7&I$20'2&1*-$0<$4/.2/$)(&:P i.'&)($D&-*.'%$QiD=$*/&$A-*$+.3&'-.0'RP \&2,(-.J&$D&-*.'%$Q\D=$*/&$>'+$+.3&'-.0'RP L+)1*.J&$D&-*.'%$QLD=$*/&$B(+$+.3&'-.0'R8D/&$ <0,($ b%)*&-b$ 4/.2/$ 20'[0.'$ )'+$ -,110(*$ */&$ BT+.3&'-.0')5$ 30+&5$ )2*$ )-$ O,)5.*I$ -)<&%,)(+-$ )'+$ .'25,+&20'*&310()(I$*&-*.'%$20'2&1*-$-,2/$)-:P M'*&(')5$E0'-.-*&'2I$E/&27-$QME9RP Y)[0($9I-*&3-;9&(J.2&-$E/&27-$QY9ERP \&)5*.3&;\&)2*.J&$\&%(&--.0'$Q\D\R8D/&$e,)'*.<.&+$L11(0)2/$4)-$ -/)1&+$ 6I$ */&$ <0(3&($ ]%,&(.55)]$3&*/0+$ 0<$L22&1*)'2&$D&-*.'%$4/.2/$4)-$ .*-&5<$ )(&-10'-&$*0$*&-*.'%$1/)-&-$4/.2/$1(0J&+$*00$20-*5I$*0$6&$-,-*).')65&$<0($3)'I$-3)55;3&+.,3T-2)5&$1(0[&2*-8

B77"5$&+7"%$"#$*+3%*+%IJ$.")"%A.(3.&))*+3L22&1*)'2&$*&-*.'%$.-$)$*&(3$,-&+$.'$)%.5&$-0<*4)(&$+&J&5013&'*$3&*/0+050%.&-=$1)(*.2,5)(5I$_F*(&3&$!(0%()33.'%=(&<&((.'%$*0$*/&$<,'2*.0')5$*&-*.'%$0<$)$,-&($-*0(I$6I$*/&$-0<*4)(&$+&J&5013&'*$*&)3$+,(.'%$*/&$.315&3&'*)*.0'$1/)-&8D/&$2,-*03&($-1&2.<.&-$-2&')(.0-$*0$*&-*$4/&'$)$,-&($-*0(I$/)-$6&&'$20((&2*5I$.315&3&'*&+8$L$-*0(I$2)'$/)J&$0'&$0(3)'I$)22&1*)'2&$ *&-*-=$4/)*&J&($ .*$ *)7&-$ *0$&'-,(&$ */&$<,'2*.0')5.*I$40(7-8$L22&1*)'2&$ *&-*-$)(&$65)27$60F$-I-*&3*&-*-8$_)2/$)22&1*)'2&$*&-*$(&1(&-&'*-$-03&$&F1&2*&+$(&-,5*$<(03$*/&$-I-*&38$E,-*03&(-$)(&$(&-10'-.65&$<0($J&(.<I.'%*/&$20((&2*'&--$0<$*/&$)22&1*)'2&$*&-*-$)'+$(&J.&4.'%$*&-*$-20(&-$*0$+&2.+&$4/.2/$<).5&+$*&-*-$)(&$0<$/.%/&-*$1(.0(.*I8L22&1*)'2&$ *&-*-$ )(&$ )5-0$ ,-&+$ )-$ (&%(&--.0'$ *&-*-$ 1(.0($ *0$ )$ 1(0+,2*.0'$ (&5&)-&8$ L$ ,-&($ -*0(I$ .-$ '0*$ 20'-.+&(&+20315&*&$ ,'*.5$ .*$ /)-$ 1)--&+$ .*-$ )22&1*)'2&$ *&-*-8$ D/.-$3&)'-$ */)*$ '&4$ )22&1*)'2&$ *&-*-$3,-*$ 6&$ 2(&)*&+$ <0($ &)2/.*&()*.0'$0($*/&$+&J&5013&'*$*&)3$4.55$(&10(*$K&(0$1(0%(&--8G>H

!D5"#%(;%&77"5$&+7"%$"#$*+3DI1.2)5$*I1&-$0<$)22&1*)'2&$*&-*.'%$.'25,+&$*/&$<05504.'%C-&($)22&1*)'2&$*&-*.'%

D/.-$3)I$.'25,+&$<)2*0(I$)22&1*)'2&$*&-*.'%=$.8&8$*/&$*&-*.'%$+0'&$6I$<)2*0(I$,-&(-$6&<0(&$*/&$<)2*0(I$.-$30J&+*0$.*-$04'$-.*&=$)<*&($4/.2/$-.*&$)22&1*)'2&$*&-*.'%$3)I$6&$1&(<0(3&+$6I$*/&$,-&(-$)*$*/&$-.*&8

N1&()*.0')5$)22&1*)'2&$*&-*.'%L5-0$ 7'04'$ )-$ 01&()*.0')5$ (&)+.'&--$ *&-*.'%=$ */.-$ (&<&(-$ *0$ */&$ 2/&27.'%$ +0'&$ *0$ )$ -I-*&3$ *0$ &'-,(&$ */)*1(02&--&-$)'+$1(02&+,(&-$)(&$.'$15)2&$*0$)5504$*/&$-I-*&3$*0$6&$,-&+$)'+$3).'*).'&+8$D/.-$3)I$.'25,+&$2/&27-+0'&$ *0$6)27T,1$ <)2.5.*.&-=$ 1(02&+,(&-$ <0($+.-)-*&($ (&20J&(I=$ *().'.'%$ <0($ &'+$,-&(-=$3).'*&')'2&$1(02&+,(&-=)'+$-&2,(.*I$1(02&+,(&-8

E0'*()2*$)'+$(&%,5)*.0'$)22&1*)'2&$*&-*.'%M'$ 20'*()2*$ )22&1*)'2&$ *&-*.'%=$ )$ -I-*&3$ .-$ *&-*&+$ )%).'-*$ )22&1*)'2&$ 2(.*&(.)$ )-$ +02,3&'*&+$ .'$ )$ 20'*()2*=6&<0(&$ */&$ -I-*&3$ .-$ )22&1*&+8$ M'$ (&%,5)*.0'$ )22&1*)'2&$ *&-*.'%=$ )$ -I-*&3$ .-$ *&-*&+$ *0$ &'-,(&$ .*$ 3&&*-%0J&('3&'*)5=$5&%)5$)'+$-)<&*I$-*)'+)(+-8

L51/)$)'+$6&*)$*&-*.'%L51/)$*&-*.'%$*)7&-$15)2&$)*$+&J&501&(-b$-.*&-=$)'+$.'J05J&-$*&-*.'%$0<$*/&$01&()*.0')5$-I-*&3$6I$.'*&(')5$-*)<<=6&<0(&$.*$.-$(&5&)-&+$*0$&F*&(')5$2,-*03&(-8$^&*)$*&-*.'%$*)7&-$15)2&$)*$2,-*03&(-b$-.*&-=$)'+$.'J05J&-$*&-*.'%$6I$)%(0,1$ 0<$ 2,-*03&(-$4/0$ ,-&$ */&$ -I-*&3$ )*$ */&.($ 04'$ 502)*.0'-$ )'+$ 1(0J.+&$ <&&+6)27=$ 6&<0(&$ */&$ -I-*&3$ .-(&5&)-&+$*0$0*/&($2,-*03&(-8$D/&$5)**&($.-$0<*&'$2)55&+$6<.&5+$*&-*.'%78

Page 23: Test-Driven Development Wikipedia Collection

L22&1*)'2&$*&-* >A

E*#$%(;%1"-"8(5)"+$%$(%5.(1'7$*(+%<$"#$*+3=%"+-*.(+)"+$#P KIF=$"&J&5013&'*$_'J.(0'3&'*$GAHP K!I=$"&J&5013&'*$D&-*.'%$_'J.(0'3&'*P XB=$e,)5.*I$L--,()'2&$QD&-*.'%$_'J.(0'3&'*R$G>HP K:!=$"&J&5013&'*$M'*&%()*.0'$D&-*.'%P KG!=$"&J&5013&'*$9I-*&3$D&-*.'%P G:!=$9I-*&3$M'*&%()*.0'$D&-*.'%P 9B!=$C-&($L22&1*)'2&$D&-*.'%$GBHP ,B!=$N1&()*.0'-$L22&1*)'2&$D&-*.'%P AH,K=$!(0+,2*.0'$_'J.(0'3&'*$GdHGATdH$C-,)5$+&J&5013&'*$&'J.(0'3&'*$-*)%&-$.'$3&+.,3$-.K&+$+&J&5013&'*$1(0[&2*-8

E*#$%(;%B77"5$&+7"%!"#$*+3%?.&)"/(.@#P #()3&40(7$<0($M'*&%()*&+$D&-*$QO*+RP #.*W&--&=$)$<0(7$0<$#.*P M*-W)*$V)J)$LVLw$4&6$<()3&40(7$4.*/$6,.5*T.'=$-&(J&($6)-&+=$<,'2*.0')5$4&6$*&-*.'%$2)1)6.5.*.&-8P 9&5&'.,3$Q-0<*4)(&RP .Y)2(0-P \)'0(&FP U)*.(P D&-*$L,*03)*.0'$#w

G""%&8#(P ^5)27$60F$*&-*.'%P "&J&5013&'*$-*)%&P "I')3.2$*&-*.'%P 90<*4)(&$*&-*.'%P D&-*T+(.J&'$+&J&5013&'*P U/.*&$60F$*&-*.'%P C'.*$*&-*.'%P 9I-*&3$*&-*.'%

IJ$".+&8%8*+@#P L22&1*)'2&$D&-*$_'%.'&&(.'%$S,.+&$GBH$6I$Y.2(0-0<*$1)**&('-$a$1()2*.2&-$GdH

P L(*.25&$C-.'%$E,-*03&($D&-*-$*0$"(.J&$"&J&5013&'*$G?H$<(03$Y&*/0+-$a$D005-$GhH

P L(*.25&$L22&1*)'2&$D""$_F15).'&+$GjH$<(03$Y&*/0+-$a$D005-$GhH

P MDMi$"&<.'.*.0'$T$H"8"&#"%B77"5$&+7"%Q)$-,6$1(02&--$0<$H"8"&#"%Y&+&3")"+$R$TT$D/&$L2*.J.*I$(&-10'-.65&$<0(*&-*.'%$)$\&5&)-&=$)'+$.*-$.315&3&'*)*.0'$)'+$^)27T0,*$!5)'-=$*0$&'-,(&$*/&I$3&&*$*/&$)%(&&+$^,-.'&--$)'+$MDN1&()*.0'-$\&O,.(&3&'*-8

Page 24: Test-Driven Development Wikipedia Collection

L22&1*)'2&$*&-* >>

H";"."+7"#GAH ^5)27=$\&F$QL,%,-*$>@@gR8$-%.%2*.2(+,'(>'1+*.2(9&"8'11;(9&%8+*8%0(>""01(%.6(>'8,.*N/'1(4"&(-%.%2*.2(A%&6)%&'(%.6(="4+)%&'(>'1+*.28

Z0607&'=$WV:$U.5&I8$M9^Wk@dj@d@dA?g8G>H L22&1*)'2&$D&-*-$Q/**1:;$;$4448$&F*(&3&1(0%()33.'%8$0(%;$(,5&-;$<,'2*.0')5*&-*-8$/*35RGBH /**1:;$;$*&-*.'%%,.+)'2&8$20+&15&F8$203GdH /**1:;$;$3-+'8$203;$1()2*.2&-G?H /**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+m>BGhH /**1:;$;$4448$3&*/0+-)'+*005-8$203;GjH /**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+mj>

:+$"3.&$*(+%$"#$*+3:+$"3.&$*(+%$"#$*+3%Q-03&*.3&-$2)55&+$M'*&%()*.0'$)'+$D&-*.'%=$)66(&J.)*&+$]MaD]R$.-$*/&$1/)-&$.'$-0<*4)(&$*&-*.'%$.'4/.2/$.'+.J.+,)5$-0<*4)(&$30+,5&-$)(&$2036.'&+$)'+$*&-*&+$)-$)$%(0,18$M*$022,(-$)<*&($,'.*$*&-*.'%$)'+$6&<0(&$-I-*&3*&-*.'%8$ M'*&%()*.0'$ *&-*.'%$ *)7&-$)-$ .*-$ .'1,*$30+,5&-$ */)*$/)J&$6&&'$,'.*$ *&-*&+=$%(0,1-$ */&3$.'$ 5)(%&($)%%(&%)*&-=)115.&-$*&-*-$+&<.'&+$.'$)'$.'*&%()*.0'$*&-*$15)'$*0$*/0-&$)%%(&%)*&-=$)'+$+&5.J&(-$)-$.*-$0,*1,*$*/&$.'*&%()*&+$-I-*&3(&)+I$<0($-I-*&3$*&-*.'%8

A'.5(#"D/&$1,(10-&$0<$.'*&%()*.0'$*&-*.'%$.-$*0$J&(.<I$<,'2*.0')5=$1&(<0(3)'2&=$)'+$(&5.)6.5.*I$(&O,.(&3&'*-$15)2&+$0'$3)[0(+&-.%'$.*&3-8$D/&-&$]+&-.%'$.*&3-]=$.8&8$)--&365)%&-$Q0($%(0,1-$0<$,'.*-R=$)(&$&F&(2.-&+$*/(0,%/$*/&.($.'*&(<)2&-$,-.'%^5)27$ 60F$ *&-*.'%=$ -,22&--$ )'+$ &((0($ 2)-&-$ 6&.'%$ -.3,5)*&+$ J.)$ )11(01(.)*&$ 1)()3&*&($ )'+$ +)*)$ .'1,*-8$ 9.3,5)*&+,-)%&$ 0<$ -/)(&+$ +)*)$ )(&)-$ )'+$ .'*&(T1(02&--$ 2033,'.2)*.0'$ .-$ *&-*&+$ )'+$ .'+.J.+,)5$ -,6-I-*&3-$ )(&$ &F&(2.-&+*/(0,%/$ */&.($ .'1,*$ .'*&(<)2&8$ D&-*$ 2)-&-$ )(&$ 20'-*(,2*&+$ *0$ *&-*$ */)*$ )55$ 20310'&'*-$ 4.*/.'$ )--&365)%&-$ .'*&()2*20((&2*5I=$<0($&F)315&$)2(0--$1(02&+,(&$2)55-$0($1(02&--$)2*.J)*.0'-=$)'+$*/.-$.-$+0'&$)<*&($*&-*.'%$.'+.J.+,)5$30+,5&-=.8&8$ ,'.*$ *&-*.'%8$ D/&$ 0J&()55$ .+&)$ .-$ )$ ]6,.5+.'%$ 65027]$ )11(0)2/=$ .'$ 4/.2/$ J&(.<.&+$ )--&365)%&-$ )(&$ )++&+$ *0$ )J&(.<.&+$6)-&$4/.2/$.-$*/&'$,-&+$*0$-,110(*$*/&$.'*&%()*.0'$*&-*.'%$0<$<,(*/&($)--&365)%&-8903&$+.<<&(&'*$*I1&-$0<$.'*&%()*.0'$*&-*.'%$)(&$6.%$6)'%=$*01T+04'=$)'+$60**03T,18

S*3%S&+3M'$*/.-$)11(0)2/=$)55$0($30-*$0<$*/&$+&J&501&+$30+,5&-$)(&$20,15&+$*0%&*/&($*0$<0(3$)$20315&*&$-0<*4)(&$-I-*&3$0(3)[0($1)(*$0<$*/&$-I-*&3$)'+$*/&'$,-&+$<0($.'*&%()*.0'$*&-*.'%8$D/&$^.%$^)'%$3&*/0+$.-$J&(I$&<<&2*.J&$<0($-)J.'%$*.3&.'$ */&$ .'*&%()*.0'$ *&-*.'%$1(02&--8$Z04&J&(=$ .<$ */&$ *&-*$2)-&-$)'+$ */&.($ (&-,5*-$)(&$'0*$ (&20(+&+$1(01&(5I=$ */&$&'*.(&.'*&%()*.0'$1(02&--$4.55$6&$30(&$20315.2)*&+$)'+$3)I$1(&J&'*$*/&$*&-*.'%$*&)3$<(03$)2/.&J.'%$*/&$%0)5$0<$.'*&%()*.0'*&-*.'%8L$ *I1&$ 0<$^.%$^)'%$ M'*&%()*.0'$ *&-*.'%$ .-$ 2)55&+$9#&3"%Y(1"8% $"#$*+38$C-)%&$Y0+&5$ *&-*.'%$ 2)'$ 6&$ ,-&+$ .'$ 60*/-0<*4)(&$ )'+$ /)(+4)(&$ .'*&%()*.0'$ *&-*.'%8$ D/&$ 6)-.-$ 6&/.'+$ */.-$ *I1&$ 0<$ .'*&%()*.0'$ *&-*.'%$ .-$ *0$ (,'$ ,-&(T5.7&40(750)+-$ .'$ .'*&%()*&+$ ,-&(T5.7&$ &'J.(0'3&'*-8$ M'$ +0.'%$ */&$ *&-*.'%$ .'$ */.-$3)''&(=$ */&$ &'J.(0'3&'*$ .-$ 1(00<&+=4/.5&$ */&$ .'+.J.+,)5$20310'&'*-$)(&$1(00<&+$ .'+.(&2*5I$ */(0,%/$*/&.($,-&8$C-)%&$Y0+&5$ *&-*.'%$ *)7&-$)'$01*.3.-*.2)11(0)2/$ *0$ *&-*.'%=$ 6&2),-&$ .*$ &F1&2*-$ *0$ /)J&$ <&4$1(065&3-$4.*/$ */&$ .'+.J.+,)5$ 20310'&'*-8$D/&$ -*()*&%I$ (&5.&-/&)J.5I$0'$*/&$20310'&'*$+&J&501&(-$*0$+0$*/&$.-05)*&+$,'.*$*&-*.'%$<0($*/&.($1(0+,2*8$D/&$%0)5$0<$*/&$-*()*&%I$.-$*0)J0.+$ (&+0.'%$ */&$ *&-*.'%$+0'&$6I$ */&$+&J&501&(-=$ )'+$ .'-*&)+$ <5&-/$0,*$1(065&3-$2),-&+$6I$ */&$ .'*&()2*.0'$0<$ */&20310'&'*-$ .'$ */&$ &'J.(0'3&'*8$ #0($ .'*&%()*.0'$ *&-*.'%=$C-)%&$Y0+&5$ *&-*.'%$ 2)'$ 6&$30(&$ &<<.2.&'*$ )'+$ 1(0J.+&-6&**&($ *&-*$20J&()%&$ */)'$ *()+.*.0')5$ <02,-&+$ <,'2*.0')5$ .'*&%()*.0'$ *&-*.'%8$D0$6&$30(&$&<<.2.&'*$)'+$)22,()*&=$2)(&3,-*$6&$,-&+$.'$+&<.'.'%$*/&$,-&(T5.7&$40(750)+-$<0($2(&)*.'%$(&)5.-*.2$-2&')(.0-$.'$&F&(2.-.'%$*/&$&'J.(0'3&'*8$D/.-%.J&-$*/)*$*/&$.'*&%()*&+$&'J.(0'3&'*$4.55$40(7$)-$&F1&2*&+$<0($*/&$*)(%&*$2,-*03&(-8

Page 25: Test-Driven Development Wikipedia Collection

M'*&%()*.0'$*&-*.'% >B

!(521(/+%&+1%S($$()2'5S($$()%95%!"#$*+3%.-$)'$)11(0)2/$*0$.'*&%()*&+$*&-*.'%$4/&(&$*/&$504&-*$5&J&5$20310'&'*-$)(&$*&-*&+$<.(-*=$*/&'$,-&+*0$ <)2.5.*)*&$ */&$ *&-*.'%$0<$/.%/&($ 5&J&5$ 20310'&'*-8$D/&$1(02&--$ .-$ (&1&)*&+$,'*.5$ */&$ 20310'&'*$ )*$ */&$ *01$0<$ */&/.&()(2/I$.-$*&-*&+8L55$ */&$60**03$0($ 504T5&J&5$30+,5&-=$1(02&+,(&-$0($ <,'2*.0'-$)(&$ .'*&%()*&+$)'+$ */&'$ *&-*&+8$L<*&($ */&$ .'*&%()*.0'*&-*.'%$0<$504&($5&J&5$.'*&%()*&+$30+,5&-=$*/&$'&F*$5&J&5$0<$30+,5&-$4.55$6&$<0(3&+$)'+$2)'$6&$,-&+$<0($.'*&%()*.0'*&-*.'%8$D/.-$)11(0)2/$.-$/&51<,5$0'5I$4/&'$)55$0($30-*$0<$*/&$30+,5&-$0<$*/&$-)3&$+&J&5013&'*$5&J&5$)(&$(&)+I8$D/.-3&*/0+$)5-0$/&51-$*0$+&*&(3.'&$*/&$5&J&5-$0<$-0<*4)(&$+&J&501&+$)'+$3)7&-$.*$&)-.&($*0$(&10(*$*&-*.'%$1(0%(&--$.'$*/&<0(3$0<$)$1&(2&'*)%&8!(5%K(/+%!"#$*+3%.-$)'$)11(0)2/$*0$.'*&%()*&+$*&-*.'%$4/&(&$*/&$*01$.'*&%()*&+$30+,5&-$)(&$*&-*&+$)'+$*/&$6()'2/$0<*/&$30+,5&$.-$*&-*&+$-*&1$6I$-*&1$,'*.5$*/&$&'+$0<$*/&$(&5)*&+$30+,5&8G&+1/*76%!"#$*+3%.-$)'$)11(0)2/$*0$2036.'&$*01$+04'$*&-*.'%$4.*/$60**03$,1$*&-*.'%8D/&$3).'$)+J)'*)%&$0<$*/&$^0**03TC1$)11(0)2/$.-$*/)*$6,%-$)(&$30(&$&)-.5I$<0,'+8$U.*/$D01T"04'=$.*$.-$&)-.&($*0<.'+$)$3.--.'%$6()'2/$5.'78

E*)*$&$*(+#L'I$20'+.*.0'-$'0*$-*)*&+$.'$-1&2.<.&+$.'*&%()*.0'$*&-*-=$0,*-.+&$0<$*/&$20'<.(3)*.0'$0<$*/&$&F&2,*.0'$0<$+&-.%'$.*&3-=4.55$%&'&()55I$'0*$6&$*&-*&+8

G""%&8#(P "&-.%'$1(&+.2)*&-P 90<*4)(&$*&-*.'%P 9I-*&3$*&-*.'%P C'.*$*&-*.'%

Page 26: Test-Driven Development Wikipedia Collection

C'.*$*&-*.'% >d

9+*$%$"#$*+3M'$2031,*&($1(0%()33.'%=$'+*$%$"#$*+3%.-$)$3&*/0+$6I$4/.2/$.'+.J.+,)5$,'.*-$0<$-0,(2&$20+&$)(&$*&-*&+$*0$+&*&(3.'&.<$*/&I$)(&$<.*$<0($,-&8$L$,'.*$.-$*/&$-3)55&-*$*&-*)65&$1)(*$0<$)'$)115.2)*.0'8$M'$1(02&+,()5$1(0%()33.'%$)$,'.*$3)I$6&)'$.'+.J.+,)5$<,'2*.0'$0($1(02&+,(&8$C'.*$*&-*-$)(&$2(&)*&+$6I$1(0%()33&(-$0($022)-.0')55I$6I$4/.*&$60F$*&-*&(-8M+&)55I=$&)2/$*&-*$2)-&$.-$.'+&1&'+&'*$<(03$*/&$0*/&(-:$-,6-*.*,*&-$5.7&$3&*/0+$-*,6-=$3027$06[&2*-=GAH$<)7&-$)'+$*&-*/)('&--&-$ 2)'$6&$,-&+$ *0$ )--.-*$ *&-*.'%$ )$30+,5&$ .'$ .-05)*.0'8$C'.*$ *&-*-$ )(&$ *I1.2)55I$4(.**&'$ )'+$ (,'$6I$ -0<*4)(&+&J&501&(-$ *0$&'-,(&$ */)*$ 20+&$3&&*-$ .*-$+&-.%'$)'+$6&/)J&-$)-$ .'*&'+&+8$ M*-$ .315&3&'*)*.0'$2)'$J)(I$ <(03$6&.'%J&(I$3)',)5$Q1&'2.5$)'+$1)1&(R$*0$6&.'%$<0(3)5.K&+$)-$1)(*$0<$6,.5+$),*03)*.0'8

S"+";*$#D/&$%0)5$0<$,'.*$*&-*.'%$.-$*0$.-05)*&$&)2/$1)(*$0<$*/&$1(0%()3$)'+$-/04$*/)*$*/&$.'+.J.+,)5$1)(*-$)(&$20((&2*8G>H$L$,'.**&-*$1(0J.+&-$)$-*(.2*=$4(.**&'$20'*()2*$*/)*$*/&$1.&2&$0<$20+&$3,-*$-)*.-<I8$L-$)$(&-,5*=$.*$)<<0(+-$-&J&()5$6&'&<.*-8$C'.**&-*-$<.'+$1(065&3-$&)(5I$.'$*/&$+&J&5013&'*$2I25&8

?&7*8*$&$"#%76&+3"C'.*$*&-*.'%$)5504-$*/&$1(0%()33&($*0$(&<)2*0($20+&$)*$)$5)*&($+)*&=$)'+$3)7&$-,(&$*/&$30+,5&$-*.55$40(7-$20((&2*5IQ.8&8=$(&%(&--.0'$*&-*.'%R8$D/&$1(02&+,(&$.-$*0$4(.*&$*&-*$2)-&-$<0($)55$<,'2*.0'-$)'+$3&*/0+-$-0$*/)*$4/&'&J&($)$2/)'%&2),-&-$)$<),5*=$.*$2)'$6&$O,.275I$.+&'*.<.&+$)'+$<.F&+8\&)+.5IT)J).5)65&$ ,'.*$ *&-*-$ 3)7&$ .*$ &)-I$ <0($ */&$ 1(0%()33&($ *0$ 2/&27$ 4/&*/&($ )$ 1.&2&$ 0<$ 20+&$ .-$ -*.55$ 40(7.'%1(01&(5I8M'$ 20'*.',0,-$ ,'.*$ *&-*.'%$ &'J.(0'3&'*-=$ */(0,%/$ */&$ .'/&(&'*$ 1()2*.2&$ 0<$ -,-*).'&+$ 3).'*&')'2&=$ ,'.*$ *&-*-$ 4.5520'*.',&$*0$)22,()*&5I$(&<5&2*$*/&$.'*&'+&+$,-&$0<$*/&$&F&2,*)65&$)'+$20+&$.'$*/&$<)2&$0<$)'I$2/)'%&8$"&1&'+.'%$,10'&-*)65.-/&+$+&J&5013&'*$1()2*.2&-$)'+$,'.*$*&-*$20J&()%&=$,1T*0T*/&T-&20'+$)22,()2I$2)'$6&$3).'*).'&+8

G*)58*;*"#%*+$"3.&$*(+C'.*$*&-*.'%$3)I$(&+,2&$,'2&(*).'*I$.'$*/&$,'.*-$*/&3-&5J&-$)'+$2)'$6&$,-&+$.'$)$60**03T,1$*&-*.'%$-*I5&$)11(0)2/8^I$*&-*.'%$*/&$1)(*-$0<$)$1(0%()3$<.(-*$)'+$*/&'$*&-*.'%$*/&$-,3$0<$.*-$1)(*-=$.'*&%()*.0'$*&-*.'%$6&203&-$3,2/$&)-.&(8L'$&5)60()*&$/.&()(2/I$0<$,'.*$*&-*-$+0&-$'0*$&O,)5$.'*&%()*.0'$*&-*.'%8$M'*&%()*.0'$*&-*.'%$2)''0*$6&$<,55I$),*03)*&+)'+$*/,-$-*.55$(&5.&-$/&)J.5I$0'$/,3)'$*&-*&(-8

K(7')"+$&$*(+C'.*$*&-*.'%$1(0J.+&-$)$-0(*$0<$5.J.'%$+02,3&'*)*.0'$0<$*/&$-I-*&38$"&J&501&(-$5007.'%$*0$5&)('$4/)*$<,'2*.0')5.*I$.-1(0J.+&+$6I$)$,'.*$)'+$/04$*0$,-&$.*$2)'$5007$)*$*/&$,'.*$*&-*-$*0$%).'$)$6)-.2$,'+&(-*)'+.'%$0<$*/&$,'.*$L!M8C'.*$ *&-*$2)-&-$&360+I$2/)()2*&(.-*.2-$*/)*$)(&$2(.*.2)5$ *0$*/&$-,22&--$0<$*/&$,'.*8$D/&-&$2/)()2*&(.-*.2-$2)'$.'+.2)*&)11(01(.)*&;.')11(01(.)*&$,-&$0<$)$,'.*$)-$4&55$)-$'&%)*.J&$6&/)J.0(-$ */)*$)(&$ *0$6&$ *()11&+$6I$*/&$,'.*8$L$,'.*$ *&-*2)-&=$.'$)'+$0<$.*-&5<=$+02,3&'*-$*/&-&$2(.*.2)5$2/)()2*&(.-*.2-=$)5*/0,%/$3)'I$-0<*4)(&$+&J&5013&'*$&'J.(0'3&'*-$+0'0*$(&5I$-05&5I$,10'$20+&$*0$+02,3&'*$*/&$1(0+,2*$.'$+&J&5013&'*8N'$*/&$0*/&($/)'+=$0(+.')(I$')(()*.J&$+02,3&'*)*.0'$.-$30(&$-,-2&1*.65&$*0$+(.<*.'%$<(03$*/&$.315&3&'*)*.0'$0<$*/&1(0%()3$)'+$4.55$*/,-$6&203&$0,*+)*&+$Q&8%8=$+&-.%'$2/)'%&-=$<&)*,(&$2(&&1=$(&5)F&+$1()2*.2&-$.'$7&&1.'%$+02,3&'*-,1T*0T+)*&R8

Page 27: Test-Driven Development Wikipedia Collection

C'.*$*&-*.'% >?

K"#*3+U/&'$-0<*4)(&$.-$+&J&501&+$,-.'%$)$*&-*T+(.J&'$)11(0)2/=$*/&$,'.*$*&-*$3)I$*)7&$*/&$15)2&$0<$<0(3)5$+&-.%'8$_)2/$,'.**&-*$ 2)'$ 6&$ -&&'$ )-$ )$ +&-.%'$ &5&3&'*$ -1&2.<I.'%$ 25)--&-=$3&*/0+-=$ )'+$ 06-&(J)65&$ 6&/)J.0,(8$ D/&$ <05504.'%$ V)J)&F)315&$4.55$/&51$.55,-*()*&$*/.-$10.'*8Z&(&$.-$)$*&-*$25)--$*/)*$-1&2.<.&-$)$',36&($0<$&5&3&'*-$0<$*/&$.315&3&'*)*.0'8$#.(-*=$*/)*$*/&(&$3,-*$6&$)'$.'*&(<)2&2)55&+$L++&(=$)'+$)'$.315&3&'*.'%$25)--$4.*/$)$K&(0T)(%,3&'*$20'-*(,2*0($2)55&+$L++&(M3158$M*$%0&-$0'$*0$)--&(*$*/)**/&$L++&($.'*&(<)2&$-/0,5+$/)J&$)$3&*/0+$2)55&+$)++=$4.*/$*40$.'*&%&($1)()3&*&(-=$4/.2/$(&*,('-$)'0*/&($.'*&%&(8$M*)5-0$-1&2.<.&-$*/&$6&/)J.0,($0<$*/.-$3&*/0+$<0($)$-3)55$()'%&$0<$J)5,&-8

!"#$%&,&$'((,+,(*700,3,-

,,,,!"#$%&,12"3,$0#$N5'*+,-

,,,,,,,,K330:,@330:,>,-,.,K330:;'(!*+?

,,,,,,,,'((,3**@330:%@33*=P,=+,>>,A+?

,,,,,,,,'((,3**@330:%@33*=P,A+,>>,Q+?

,,,,,,,,'((,3**@330:%@33*AP,A+,>>,R+?

,,,,,,,,'((,3**@330:%@33*SP,S+,>>,S+?

,,,,,,,,'((,3**@330:%@33*T=P,TA+,>>,TQ+?

,,,,,,,,'((,3**@330:%@33*T=P,=+,>>,S+?

,,,,,,,,'((,3**@330:%@33*=AQRP,UVV+,>>,AAAA+?

,,,,G

G

M'$*/.-$2)-&$*/&$,'.*$*&-*=$/)J.'%$6&&'$4(.**&'$<.(-*=$)2*-$)-$)$+&-.%'$+02,3&'*$-1&2.<I.'%$*/&$<0(3$)'+$6&/)J.0,($0<$)+&-.(&+$ -05,*.0'=$ 6,*$ '0*$ */&$ .315&3&'*)*.0'$ +&*).5-=$ 4/.2/$ )(&$ 5&<*$ <0($ */&$ 1(0%()33&(8$ #05504.'%$ */&$ ]+0$ */&-.315&-*$*/.'%$*/)*$20,5+$10--.65I$40(7]$1()2*.2&=$*/&$&)-.&-*$-05,*.0'$*/)*$4.55$3)7&$*/&$*&-*$1)--$.-$-/04'$6&5048

%-*,38'&,,700,3,-

,,,,"7$,@33*"7$,@P,"7$,C+?

G

&$'((,700,39:!$,%:!$,:,-*(,K330:,-

,,,,"7$,@33*"7$,@P,"7$,C+,-

,,,,,,,,3,*"3-,@,W,C?

,,,,G

G

C'5.7&$0*/&($+.)%()3T6)-&+$+&-.%'$3&*/0+-=$,-.'%$)$,'.*T*&-*$)-$)$+&-.%'$/)-$0'&$-.%'.<.2)'*$)+J)'*)%&8$D/&$+&-.%'+02,3&'*$Q*/&$,'.*T*&-*$.*-&5<R$2)'$6&$,-&+$*0$J&(.<I$*/)*$*/&$.315&3&'*)*.0'$)+/&(&-$*0$*/&$+&-.%'8$U.*/$*/&$,'.*T*&-*+&-.%'$3&*/0+=$*/&$*&-*-$4.55$'&J&($1)--$.<$*/&$+&J&501&($+0&-$'0*$.315&3&'*$*/&$-05,*.0'$)220(+.'%$*0$*/&$+&-.%'8M*$.-$*(,&$*/)*$,'.*$*&-*.'%$5)27-$-03&$0<$*/&$)22&--.6.5.*I$0<$)$+.)%()3=$6,*$CYi$+.)%()3-$)(&$'04$&)-.5I$%&'&()*&+<0($30-*$30+&('$5)'%,)%&-$6I$<(&&$*005-$Q,-,)55I$)J).5)65&$)-$&F*&'-.0'-$*0$M"_-R8$#(&&$*005-=$5.7&$*/0-&$6)-&+$0'$*/&FC'.*$<()3&40(7=$0,*-0,(2&$*0$)'0*/&($-I-*&3$*/&$%()1/.2)5$(&'+&(.'%$0<$)$J.&4$<0($/,3)'$20'-,31*.0'8

G"5&.&$*(+%(;%*+$".;&7"%;.()%*)58")"+$&$*(+^&2),-&$ -03&$ 25)--&-$3)I$ /)J&$ (&<&(&'2&-$ *0$ 0*/&($ 25)--&-=$ *&-*.'%$ )$ 25)--$ 2)'$ <(&O,&'*5I$ -1.55$ 0J&($ .'*0$ *&-*.'%$)'0*/&($25)--8$L$20330'$&F)315&$0<$*/.-$.-$25)--&-$*/)*$+&1&'+$0'$)$+)*)6)-&:$.'$0(+&($*0$*&-*$ */&$25)--=$ */&$*&-*&($0<*&'$4(.*&-$20+&$*/)*$.'*&()2*-$4.*/$*/&$+)*)6)-&8$D/.-$.-$)$3.-*)7&=$6&2),-&$)$,'.*$*&-*$-/0,5+$,-,)55I$'0*$%0$0,*-.+&$0<$ .*-$ 04'$ 25)--$ 60,'+)(I=$ )'+$ &-1&2.)55I$ -/0,5+$ '0*$ 2(0--$ -,2/$ 1(02&--;'&*40(7$ 60,'+)(.&-$ 6&2),-&$ */.-$ 2)'$.'*(0+,2&$,')22&1*)65&$1&(<0(3)'2&$1(065&3-$ *0$ */&$,'.*$ *&-*T-,.*&8$E(0--.'%$ -,2/$,'.*$60,'+)(.&-$ *,('-$,'.*$ *&-*-

Page 28: Test-Driven Development Wikipedia Collection

C'.*$*&-*.'% >h

.'*0$.'*&%()*.0'$*&-*-=$)'+$4/&'$*&-*$2)-&-$<).5=$3)7&-$.*$5&--$25&)($4/.2/$20310'&'*$.-$2),-.'%$*/&$<).5,(&8$9&&$)5-0#)7&-=$3027-$)'+$.'*&%()*.0'$*&-*-M'-*&)+=$*/&$-0<*4)(&$+&J&501&($-/0,5+$2(&)*&$)'$)6-*()2*$.'*&(<)2&$)(0,'+$*/&$+)*)6)-&$O,&(.&-=$)'+$*/&'$.315&3&'**/)*$ .'*&(<)2&$ 4.*/$ */&.($ 04'$ 3027$ 06[&2*8$ ^I$ )6-*()2*.'%$ */.-$ '&2&--)(I$ )**)2/3&'*$ <(03$ */&$ 20+&$ Q*&310()(.5I(&+,2.'%$ */&$ '&*$ &<<&2*.J&$ 20,15.'%R=$ */&$ .'+&1&'+&'*$ ,'.*$ 2)'$ 6&$ 30(&$ */0(0,%/5I$ *&-*&+$ */)'$ 3)I$ /)J&$ 6&&'1(&J.0,-5I$)2/.&J&+8$D/.-$(&-,5*-$.'$)$/.%/&($O,)5.*I$,'.*$*/)*$.-$)5-0$30(&$3).'*).')65&8

9+*$%$"#$*+3%8*)*$&$*(+#D&-*.'%$2)''0*$6&$&F1&2*&+$*0$2)*2/$&J&(I$&((0($.'$*/&$1(0%()3:$.*$.-$.310--.65&$*0$&J)5,)*&$&J&(I$&F&2,*.0'$1)*/$.')55$6,*$*/&$30-*$*(.J.)5$1(0%()3-8$D/&$-)3&$.-$*(,&$<0($,'.*$*&-*.'%8$L++.*.0')55I=$,'.*$*&-*.'%$6I$+&<.'.*.0'$0'5I$*&-*-*/&$<,'2*.0')5.*I$0<$*/&$,'.*-$*/&3-&5J&-8$D/&(&<0(&=$.*$4.55$'0*$2)*2/$.'*&%()*.0'$&((0(-$0($6(0)+&($-I-*&3T5&J&5$&((0(-Q-,2/$)-$<,'2*.0'-$1&(<0(3&+$)2(0--$3,5*.15&$,'.*-=$0($'0'T<,'2*.0')5$ *&-*$)(&)-$-,2/$)-$1&(<0(3)'2&R8$C'.*$ *&-*.'%-/0,5+$6&$+0'&$.'$20'[,'2*.0'$4.*/$0*/&($-0<*4)(&$*&-*.'%$)2*.J.*.&-8$i.7&$)55$<0(3-$0<$-0<*4)(&$*&-*.'%=$,'.*$*&-*-$2)'0'5I$-/04$*/&$1(&-&'2&$0<$&((0(-X$*/&I$2)''0*$-/04$*/&$)6-&'2&$0<$&((0(-890<*4)(&$ *&-*.'%$ .-$ )$ 2036.')*0(.)5$ 1(065&38$#0($ &F)315&=$ &J&(I$6005&)'$+&2.-.0'$ -*)*&3&'*$ (&O,.(&-$ )*$ 5&)-*$ *40*&-*-:$0'&$4.*/$)'$0,*203&$0<$]*(,&]$)'+$0'&$4.*/$)'$0,*203&$0<$]<)5-&]8$L-$)$(&-,5*=$<0($&J&(I$5.'&$0<$20+&$4(.**&'=1(0%()33&(-$0<*&'$'&&+$B$*0$?$5.'&-$0<$*&-*$20+&8GBH$D/.-$06J.0,-5I$*)7&-$*.3&$)'+$.*-$.'J&-*3&'*$3)I$'0*$6&$40(*/*/&$ &<<0(*8$ D/&(&$ )(&$ )5-0$ 3)'I$ 1(065&3-$ */)*$ 2)''0*$ &)-.5I$ 6&$ *&-*&+$ )*$ )55$ 5+ <0($ &F)315&$ */0-&$ */)*$ )(&'0'+&*&(3.'.-*.2$0($ .'J05J&$3,5*.15&$ */(&)+-8$ M'$ )++.*.0'=$4(.*.'%$20+&$ <0($ )$,'.*$ *&-*$ .-$ )-$ 5.7&5I$ *0$6&$ )*$ 5&)-*$ )-6,%%I$)-$*/&$20+&$.*$.-$*&-*.'%8$#(&+$^(007-$.'$D/&$YI*/.2)5$Y)'TY0'*/$O,0*&-:$.':'&(+%G'(+)"(8,&"."#'+'&1(+"(1'%?

50)%I1(+%G'(".'("&(+,&''?(Y&)'.'%=$.<$*40$2/(0'03&*&(-$20'*()+.2*=$/04$+0$I0,$7'04$4/.2/$0'&$.-$20((&2*lD0$06*).'$*/&$.'*&'+&+$6&'&<.*-$<(03$,'.*$*&-*.'%=$(.%0(0,-$+.-2.15.'&$.-$'&&+&+$*/(0,%/0,*$*/&$-0<*4)(&$+&J&5013&'*1(02&--8$M*$.-$&--&'*.)5$*0$7&&1$2)(&<,5$(&20(+-$'0*$0'5I$0<$*/&$*&-*-$*/)*$/)J&$6&&'$1&(<0(3&+=$6,*$)5-0$0<$)55$2/)'%&-*/)*$/)J&$6&&'$3)+&$*0$*/&$-0,(2&$20+&$0<$*/.-$0($)'I$0*/&($,'.*$.'$*/&$-0<*4)(&8$C-&$0<$)$J&(-.0'$20'*(05$-I-*&3$.-&--&'*.)58$M<$)$5)*&($J&(-.0'$0<$*/&$,'.*$<).5-$)$1)(*.2,5)($*&-*$*/)*$.*$/)+$1(&J.0,-5I$1)--&+=$*/&$J&(-.0'T20'*(05$-0<*4)(&2)'$1(0J.+&$)$5.-*$0<$*/&$-0,(2&$20+&$2/)'%&-$Q.<$)'IR$*/)*$/)J&$6&&'$)115.&+$*0$*/&$,'.*$-.'2&$*/)*$*.3&8M*$ .-$ )5-0$ &--&'*.)5$ *0$ .315&3&'*$ )$ -,-*).')65&$ 1(02&--$ <0($ &'-,(.'%$ */)*$ *&-*$ 2)-&$ <).5,(&-$ )(&$ (&J.&4&+$ +).5I$ )'+)++(&--&+$ .33&+.)*&5I8GdH$ M<$ -,2/$ )$ 1(02&--$ .-$ '0*$ .315&3&'*&+$ )'+$ .'%().'&+$ .'*0$ */&$ *&)3b-$ 40(7<504=$ */&)115.2)*.0'$4.55$&J05J&$0,*$0<$-I'2$4.*/$*/&$,'.*$*&-*$-,.*&=$.'2(&)-.'%$<)5-&$10-.*.J&-$)'+$(&+,2.'%$*/&$&<<&2*.J&'&--$0<*/&$*&-*$-,.*&8

B558*7&$*(+#

IJ$.")"%A.(3.&))*+3C'.*$*&-*.'%$.-$*/&$20('&(-*0'&$0<$_F*(&3&$!(0%()33.'%=$4/.2/$(&5.&-$0'$)'$),*03)*&+$,'.*$*&-*.'%$<()3&40(78$D/.-),*03)*&+$,'.*$*&-*.'%$<()3&40(7$2)'$6&$&.*/&($*/.(+$1)(*I=$&8%8=$FC'.*=$0($2(&)*&+$4.*/.'$*/&$+&J&5013&'*$%(0,18_F*(&3&$!(0%()33.'%$,-&-$ */&$2(&)*.0'$0<$,'.*$ *&-*-$ <0($ *&-*T+(.J&'$+&J&5013&'*8$D/&$+&J&501&($4(.*&-$)$,'.*$ *&-**/)*$ &F10-&-$ &.*/&($ )$ -0<*4)(&$ (&O,.(&3&'*$ 0($ )$ +&<&2*8$ D/.-$ *&-*$ 4.55$ <).5$ 6&2),-&$ &.*/&($ */&$ (&O,.(&3&'*$ .-'b*.315&3&'*&+$I&*=$0($6&2),-&$ .*$ .'*&'*.0')55I$&F10-&-$)$+&<&2*$ .'$ */&$&F.-*.'%$20+&8$D/&'=$ */&$+&J&501&($4(.*&-$ */&-.315&-*$20+&$*0$3)7&$*/&$*&-*=$)50'%$4.*/$0*/&($*&-*-=$1)--8Y0-*$20+&$.'$)$-I-*&3$.-$,'.*$*&-*&+=$6,*$'0*$'&2&--)(.5I$)55$1)*/-$*/(0,%/$*/&$20+&8$_F*(&3&$!(0%()33.'%$3)'+)*&-)$ ]*&-*$ &J&(I*/.'%$ */)*$ 2)'$10--.65I$ 6(&)7]$ -*()*&%I=$ 0J&($ */&$ *()+.*.0')5$ ]*&-*$ &J&(I$ &F&2,*.0'$1)*/]$3&*/0+8$D/.-5&)+-$+&J&501&(-$*0$+&J&501$<&4&($*&-*-$*/)'$25)--.2)5$3&*/0+-=$6,*$*/.-$.-'b*$(&)55I$)$1(065&3=$30(&$)$(&-*)*&3&'*$0<<)2*=$)-$25)--.2)5$3&*/0+-$/)J&$()(&5I$&J&($6&&'$<05504&+$3&*/0+.2)55I$&'0,%/$<0($)55$&F&2,*.0'$1)*/-$*0$/)J&$6&&'*/0(0,%/5I$*&-*&+8$_F*(&3&$!(0%()33.'%$-.315I$(&20%'.K&-$*/)*$*&-*.'%$.-$()(&5I$&F/),-*.J&$Q6&2),-&$.*$.-$0<*&'$*00

Page 29: Test-Driven Development Wikipedia Collection

C'.*$*&-*.'% >j

&F1&'-.J&$)'+$*.3&T20'-,3.'%$*0$6&$&20'03.2)55I$J.)65&R$)'+$1(0J.+&-$%,.+)'2&$0'$/04$*0$&<<&2*.J&5I$<02,-$5.3.*&+(&-0,(2&-8E(,2.)55I=$ */&$*&-*$20+&$.-$20'-.+&(&+$)$<.(-*$25)--$1(0[&2*$)(*.<)2*$ .'$*/)*$ .*$ .-$3).'*).'&+$)*$ */&$-)3&$O,)5.*I$)-$ */&.315&3&'*)*.0'$20+&=$4.*/$)55$+,15.2)*.0'$ (&30J&+8$"&J&501&(-$ (&5&)-&$,'.*$ *&-*.'%$20+&$ *0$ */&$20+&$ (&10-.*0(I$ .'20'[,'2*.0'$ 4.*/$ */&$ 20+&$ .*$ *&-*-8$ _F*(&3&$ !(0%()33.'%b-$ */0(0,%/$ ,'.*$ *&-*.'%$ )5504-$ */&$ 6&'&<.*-$ 3&'*.0'&+)60J&=$-,2/$)-$-.315&($)'+$30(&$20'<.+&'*$20+&$+&J&5013&'*$)'+$(&<)2*0(.'%=$-.315.<.&+$20+&$.'*&%()*.0'=$)22,()*&+02,3&'*)*.0'=$)'+$30(&$30+,5)($+&-.%'-8$D/&-&$,'.*$*&-*-$)(&$)5-0$20'-*)'*5I$(,'$)-$)$<0(3$0<$(&%(&--.0'$*&-*8

!"76+*L'"#C'.*$ *&-*.'%$ .-$20330'5I$),*03)*&+=$6,*$3)I$-*.55$6&$1&(<0(3&+$3)',)55I8$D/&$M___$+0&-$'0*$<)J0($0'&$0J&($ */&0*/&(8G?H$L$3)',)5$ )11(0)2/$ *0$ ,'.*$ *&-*.'%$3)I$ &3150I$ )$ -*&1T6IT-*&1$ .'-*(,2*.0')5$ +02,3&'*8$W&J&(*/&5&--=$ */&06[&2*.J&$.'$,'.*$*&-*.'%$.-$*0$.-05)*&$)$,'.*$)'+$J)5.+)*&$.*-$20((&2*'&--8$L,*03)*.0'$.-$&<<.2.&'*$<0($)2/.&J.'%$*/.-=$)'+&')65&-$*/&$3)'I$6&'&<.*-$5.-*&+$.'$*/.-$)(*.25&8$E0'J&(-&5I=$.<$'0*$15)''&+$2)(&<,55I=$)$2)(&5&--$3)',)5$,'.*$*&-*$2)-&3)I$&F&2,*&$)-$)'$.'*&%()*.0'$*&-*$2)-&$*/)*$.'J05J&-$3)'I$-0<*4)(&$20310'&'*-=$)'+$*/,-$1(&25,+&$*/&$)2/.&J&3&'*0<$30-*$.<$'0*$)55$0<$*/&$%0)5-$&-*)65.-/&+$<0($,'.*$*&-*.'%8C'+&($*/&$),*03)*&+$)11(0)2/=$*0$<,55I$(&)5.K&$*/&$&<<&2*$0<$.-05)*.0'=$*/&$,'.*$0($20+&$60+I$-,6[&2*&+$*0$*/&$,'.*$*&-*.-$&F&2,*&+$4.*/.'$)$<()3&40(7$0,*-.+&$0<$.*-$')*,()5$&'J.(0'3&'*=$*/)*$.-=$0,*-.+&$0<$*/&$1(0+,2*$0($2)55.'%$20'*&F*<0($ 4/.2/$ .*$ 4)-$ 0(.%.')55I$ 2(&)*&+8$ D&-*.'%$ .'$ )'$ .-05)*&+$ 3)''&($ /)-$ */&$ 6&'&<.*$ 0<$ (&J&)5.'%$ ,''&2&--)(I+&1&'+&'2.&-$6&*4&&'$*/&$20+&$6&.'%$*&-*&+$)'+$0*/&($,'.*-$0($+)*)$-1)2&-$.'$*/&$1(0+,2*8$D/&-&$+&1&'+&'2.&-$2)'*/&'$6&$&5.3.')*&+8C-.'%$ )'$ ),*03)*.0'$ <()3&40(7=$ */&$ +&J&501&($ 20+&-$ 2(.*&(.)$ .'*0$ */&$ *&-*$ *0$ J&(.<I$ */&$ 20((&2*'&--$ 0<$ */&$ ,'.*8",(.'%$ &F&2,*.0'$ 0<$ */&$ *&-*$ 2)-&-=$ */&$ <()3&40(7$ 50%-$ */0-&$ */)*$ <).5$ )'I$ 2(.*&(.0'8$Y)'I$ <()3&40(7-$4.55$ )5-0),*03)*.2)55I$ <5)%$ )'+$ (&10(*$ .'$ )$ -,33)(I$ */&-&$ <).5&+$ *&-*$ 2)-&-8$"&1&'+.'%$ ,10'$ */&$ -&J&(.*I$ 0<$ )$ <).5,(&=$ */&<()3&40(7$3)I$/)5*$-,6-&O,&'*$*&-*.'%8L-$)$20'-&O,&'2&=$,'.*$ *&-*.'%$.-$*()+.*.0')55I$)$30*.J)*0($<0($1(0%()33&(-$*0$2(&)*&$+&20,15&+$)'+$20/&-.J&$20+&60+.&-8$D/.-$1()2*.2&$1(030*&-$/&)5*/I$/)6.*-$.'$-0<*4)(&$+&J&5013&'*8$"&-.%'$1)**&('-=$,'.*$*&-*.'%=$)'+$(&<)2*0(.'%0<*&'$40(7$*0%&*/&($-0$*/)*$*/&$6&-*$-05,*.0'$3)I$&3&(%&8

9+*$%$"#$*+3%;.&)"/(.@#C'.*$ *&-*.'%$ <()3&40(7-$ )(&$30-*$ 0<*&'$ */.(+T1)(*I$ 1(0+,2*-$ */)*$ )(&$ '0*$ +.-*(.6,*&+$ )-$ 1)(*$ 0<$ */&$ 2031.5&($ -,.*&8D/&I$/&51$-.315.<I$*/&$1(02&--$0<$,'.*$*&-*.'%=$/)J.'%$6&&'$+&J&501&+$<0($)$4.+&$J)(.&*I$0<$5)'%,)%&-8M*$.-$%&'&()55I$10--.65&$*0$1&(<0(3$,'.*$*&-*.'%$4.*/0,*$*/&$-,110(*$0<$)$-1&2.<.2$<()3&40(7$6I$4(.*.'%$25.&'*$20+&$*/)*&F&(2.-&-$ */&$,'.*-$,'+&($ *&-*$ )'+$,-&-$)--&(*.0'-=$ &F2&1*.0'$/)'+5.'%=$0($0*/&($ 20'*(05$ <504$3&2/)'.-3-$ *0$ -.%')5<).5,(&8$C'.*$*&-*.'%$4.*/0,*$)$<()3&40(7$.-$J)5,)65&$.'$*/)*$*/&(&$.-$)$6)((.&($*0$&'*(I$<0($*/&$)+01*.0'$0<$,'.*$*&-*.'%X/)J.'%$-2)'*$,'.*$ *&-*-$ .-$/)(+5I$6&**&($ */)'$/)J.'%$'0'&$)*$)55=$4/&(&)-$0'2&$)$<()3&40(7$ .-$ .'$15)2&=$)++.'%$,'.**&-*-$ 6&203&-$ (&5)*.J&5I$ &)-I8GhH$ M'$ -03&$ <()3&40(7-$ 3)'I$ )+J)'2&+$ ,'.*$ *&-*$ <&)*,(&-$ )(&$ 3.--.'%$ 0($ 3,-*$ 6&/)'+T20+&+8

Page 30: Test-Driven Development Wikipedia Collection

C'.*$*&-*.'% >f

E&+3'&3"28"-"8%'+*$%$"#$*+3%#'55(.$903&$1(0%()33.'%$5)'%,)%&-$-,110(*$,'.*$*&-*.'%$+.(&2*5I8$D/&.($%()33)($)5504-$*/&$+.(&2*$+&25)()*.0'$0<$,'.*$*&-*-4.*/0,*$.310(*.'%$)$5.6()(I$Q4/&*/&($*/.(+$1)(*I$0($-*)'+)(+R8$L++.*.0')55I=$*/&$6005&)'$20'+.*.0'-$0<$*/&$,'.*$*&-*-2)'$6&$&F1(&--&+$.'$*/&$-)3&$-I'*)F$)-$6005&)'$&F1(&--.0'-$,-&+$.'$'0'T,'.*$*&-*$20+&=$-,2/$)-$4/)*$.-$,-&+$<0($"L

)'+$84"!0,-*)*&3&'*-8i)'%,)%&-$*/)*$+.(&2*5I$-,110(*$,'.*$*&-*.'%$.'25,+&:P E06()P "

G""%&8#(P E/)()2*&(.K)*.0'$*&-*P "&-.%'$1(&+.2)*&-P _F*(&3&$!(0%()33.'%P M'*&%()*.0'$*&-*.'%P i.-*$0<$,'.*$*&-*.'%$<()3&40(7-P \&%(&--.0'$*&-*.'%P 90<*4)(&$)(2/)&050%IP 90<*4)(&$*&-*.'%P D&-*$2)-&P D&-*T+(.J&'$+&J&5013&'*P FC'.*$5+)$<)3.5I$0<$,'.*$*&-*.'%$<()3&40(7-8

IJ$".+&8%8*+@#P D/&$&J05,*.0'$0<$C'.*$D&-*.'%$9I'*)F$)'+$9&3)'*.2-$GjH

P C'.*$D&-*.'%$S,.+&5.'&-$<(03$S&090<*$GfH

P D&-*$"(.J&'$"&J&5013&'*$QU)(+$E,''.'%/)3b-$U.7.R$GgH

P C'.*$D&-*.'%$A@A$<0($*/&$W0'T!(0%()33&($GA@H

P 9*&1T6IT9*&1$S,.+&$*0$V!LT_')65&+$C'.*$D&-*.'%$QV)J)$__R$GAAH

H";"."+7"#GAH #045&(=$Y)(*.'$Q>@@jT@AT@>R8$]Y027-$)(&'b*$9*,6-]$Q/**1:;$;$3)(*.'<045&(8$203;$)(*.25&-;$3027-L(&'*9*,6-8$/*35R8$8$\&*(.&J&+$>@@fT@dT@A8G>H c05)4)=$L+)3X$Z,.K.'%)=$"0(0*)$Q>@@jR8$5/+"#%+'6(7'4'8+(9&':'.+*".;(<'1+(9&%8+*8'1(*.(="4+)%&'(-%.%2'#'.+$Q/**1:;$;$4448$4.5&I8$203;

U.5&IE"L;$U.5&ID.*5&;$1(0+,2*E+T@dj@@d>A>?8$/*35R8$U.5&ITM___$E031,*&($902.&*I$!(&--8$18kj?8$M9^Wk@dj@@d>A>?8$8GBH E()365.**=$^06$Q>@@jT@gT>@R8$]L56&(*0$9)J0.)$-.'%-$*/&$1().-&-$0<$-0<*4)(&$*&-*.'%]$Q/**1:;$;$-&)(2/-0<*4)(&O,)5.*I8$*&2/*)(%&*8$203;

0(.%.')5E0'*&'*;$@=>fgAd>=-.+g>p%2.A>jBAhA=@@8$/*35R8$8$\&*(.&J&+$>@@jTAAT>g8GdH +)`&.%)=$W)+)$Q>@@fT@>T@hR8$]E/)'%&$E0+&$U.*/0,*$#&)(:$C*.5.K&$)$(&%(&--.0'$-)<&*I$'&*]$Q/**1:;$;$4448$++[8$203;$+&J&5013&'*T*005-;

>@hA@?>BBR8$8$\&*(.&J&+$>@@fT@>T@f8G?H M___$9*)'+)(+-$^0)(+=$]M___$9*)'+)(+$<0($90<*4)(&$C'.*$D&-*.'%:$L'$L3&(.2)'$W)*.0')5$9*)'+)(+=$LW9M;M___$9*+$A@@fTAgfj]$Q/**1:;$;

.*&-08$3F;$v1%,*.&((&K;$2)5.+)+;$_-*)'+)(&-;$M___$A@@f8$1+<R$.'$@JJJ(=+%.6%&61;(="4+)%&'(J.2*.''&*.2P(Q"0/#'(>)";(9&"8'11(=+%.6%&61R

STTT(J6*+*".R($/30*1,'6(3I(>,'(@.1+*+/+'("4(J0'8+&*8%0(%.6(J0'8+&".*81(J.2*.''&1P(@.8?(90<*4)(&$_'%.'&&(.'%$D&2/'.2)5$E033.**&&$0<$*/&$M___E031,*&($902.&*I8

GhH ^,55-&I&$D&-*.'%$D&2/'050%I$Q>@@h5>@@fR8$]]M'*&(3&+.)*&$E0J&()%&$S0)5-]]$Q/**1:;$;$4448$6,55-&I&8$203;$20J&()%&8$/*35o.'*&(3&+.)*&R8$8\&*(.&J&+$>d$Y)(2/$>@@g8

GjH /**1:;$;$4&650%-8$)-18$'&*;$(0-/&(0J&;$)(2/.J&;$>@@f;$@A;$Aj;$*/&T&J05,*.0'T0<T,'.*T*&-*.'%T)'+T-I'*)F8$)-1FGfH /**1:;$;$%&0-0<*8$'0;$+&J&5013&'*;$,'.**&-*.'%8$/*35GgH /**1:;$;$2>8$203;$2%.;$4.7.lD&-*"(.J&'"&J&5013&'*GA@H /**1:;$;$4448$-)()J)')'-,6()3)'.)'8$203;$9)()J)')';$L(*.25&-pN'p90<*4)(&;$_'*(.&-;$>@A@;$A;

AgpC'.*pD&-*.'%pA@Ap#0(pW0'T!(0%()33&(-8$/*35GAAH /**1:;$;$4448$-.K0J10.'*8$203;$>@A@;$@A;$-*&1T6IT-*&1T%,.+&T*0T[1)T&')65&+T,'.*8$/*35

Page 31: Test-Driven Development Wikipedia Collection

E0+&$(&<)2*0(.'% >g

0(1"%.";&7$(.*+30(1"% .";&7$(.*+3% .-$ */&$ 1(02&--$ 0<$ 2/)'%.'%$ )$ 2031,*&($ 1(0%()3b-$ -0,(2&$ 20+&$ 4.*/0,*$ 30+.<I.'%$ .*-$ &F*&(')54/.8+*".%0(6&/)J.0($ .'$0(+&($ *0$ .31(0J&$ -03&$0<$ */&$.".4/.8+*".%0()**(.6,*&-$0<$ */&$ -0<*4)(&8$L+J)'*)%&-$ .'25,+&.31(0J&+$20+&$(&)+)6.5.*I$)'+$(&+,2&+$20315&F.*I$ *0$ .31(0J&$*/&$3).'*).')6.5.*I$0<$ */&$-0,(2&$20+&=$)-$4&55$)-$)30(&$&F1(&--.J&$.'*&(')5$)(2/.*&2*,(&$0($06[&2*$30+&5$*0$.31(0J&$&F*&'-.6.5.*I8

!<I(8".+*./"/10I(*#$&":*.2(+,'(6'1*2.("4(8"6'P()'(#%G'(*+('%1*'&(%.6('%1*'&(+"()"&G()*+,?(>,*1(*1(*.(1,%&$(8".+&%1+(+"(),%+(+I$*8%00I(,%$$'.1;

0*++0'(&'4%8+"&*.2(%.6(%(2&'%+(6'%0("4(%++'.+*".($%*6(+"('K$'6*'.+0I(%66*.2(.')(4'%+/&'1?(@4(I"/(2'+(*.+"(+,'(,I2*'.*8(,%3*+("4(&'4%8+"&*.2

8".+*./"/10IP(I"/B00(4*.6(+,%+(*+(*1('%1*'&(+"('K+'.6(%.6(#%*.+%*.(8"6'? "8T$V0-/,)$c&(.&J-7I=$\&<)2*0(.'%$*0$!)**&('-$GAH

,-".-*"/\&<)2*0(.'%$.-$,-,)55I$30*.J)*&+$6I$'0*.2.'%$)$20+&$-3&558G>H$#0($&F)315&$*/&$3&*/0+$)*$/)'+$3)I$6&$J&(I$50'%=$0($.*3)I$6&$)$'&)($+,15.2)*&$0<$)'0*/&($'&)(6I$3&*/0+8$N'2&$(&20%'.K&+=$-,2/$1(065&3-$2)'$6&$)++(&--&+$6I$&'4%8+"&*.2*/&$-0,(2&$20+&=$0($*()'-<0(3.'%$.*$.'*0$)$'&4$<0(3$*/)*$6&/)J&-$*/&$-)3&$)-$6&<0(&$6,*$*/)*$'0$50'%&($]-3&55-]8$#0($)50'%$(0,*.'&=$&F*()2*$0'&$0($30(&$-3)55&($-,6(0,*.'&-8$N($<0($+,15.2)*&$(0,*.'&-=$(&30J&$*/&$+,15.2)*.0'$)'+$,*.5.K&0'&$-/)(&+$<,'2*.0'$.'$*/&.($15)2&8$#).5,(&$*0$1&(<0(3$(&<)2*0(.'%$2)'$(&-,5*$.'$)22,3,5)*.'%$*&2/'.2)5$+&6*8D/&(&$)(&$*40$%&'&()5$2)*&%0(.&-$0<$6&'&<.*-$*0$*/&$)2*.J.*I$0<$(&<)2*0(.'%8A8 Y).'*).')6.5.*I8$M*$.-$&)-.&($*0$<.F$6,%-$6&2),-&$*/&$-0,(2&$20+&$.-$&)-I$*0$(&)+$)'+$*/&$.'*&'*$0<$.*-$),*/0($.-$&)-I

*0$%()-18GBH$D/.-$3.%/*$6&$)2/.&J&+$6I$(&+,2.'%$5)(%&$30'05.*/.2$(0,*.'&-$.'*0$)$-&*$0<$.'+.J.+,)55I$20'2.-&=4&55T')3&+=$-.'%5&T1,(10-&$3&*/0+-8$M*$3.%/*$6&$)2/.&J&+$6I$30J.'%$)$3&*/0+$*0$)$30(&$)11(01(.)*&$25)--=$0($6I(&30J.'%$3.-5&)+.'%$2033&'*-8

>8 _F*&'-.6.5.*I8$M*$.-$&)-.&($*0$&F*&'+$*/&$2)1)6.5.*.&-$0<$*/&$)115.2)*.0'$.<$.*$,-&-$(&20%'.K)65&$+&-.%'$1)**&('-=$)'+$.*1(0J.+&-$-03&$<5&F.6.5.*I$4/&(&$'0'&$6&<0(&$3)I$/)J&$&F.-*&+8GAH

^&<0(&$(&<)2*0(.'%$)$-&2*.0'$0<$20+&=$)$-05.+$-&*$0<$),*03)*.2$,'.*$*&-*-$.-$'&&+&+8$D/&$*&-*-$-/0,5+$+&30'-*()*&$.'$)<&4$ -&20'+-$ */)*$ */&$ 6&/)J.0($ 0<$ */&$30+,5&$ .-$ 20((&2*8$D/&$ 1(02&--$ .-$ */&'$ )'$ .*&()*.J&$ 2I25&$ 0<$3)7.'%$ )$ -3)551(0%()3$*()'-<0(3)*.0'=$*&-*.'%$.*$*0$&'-,(&$20((&2*'&--=$)'+$3)7.'%$)'0*/&($-3)55$*()'-<0(3)*.0'8$M<$)*$)'I$10.'*$)*&-*$<).5-=$I0,$,'+0$I0,($5)-*$-3)55$2/)'%&$)'+$*(I$)%).'$.'$)$+.<<&(&'*$4)I8$D/(0,%/$3)'I$-3)55$-*&1-$*/&$1(0%()330J&-$ <(03$ 4/&(&$ .*$ 4)-$ *0$ 4/&(&$ I0,$ 4)'*$ .*$ *0$ 6&8$ !(010'&'*-$ 0<$ &F*(&3&$ 1(0%()33.'%$ )'+$ 0*/&($ )%.5&3&*/0+050%.&-$+&-2(.6&$*/.-$)2*.J.*I$)-$)'$.'*&%()5$1)(*$0<$*/&$-0<*4)(&$+&J&5013&'*$2I25&8

E*#$%(;%.";&7$(.*+3%$"76+*L'"#Z&(&$-03&$&F)315&-$0<$20+&$(&<)2*0(.'%-8$L$50'%&($5.-*$2)'$6&$<0,'+$.'$#045&(b-$\&<)2*0(.'%$6007G>H$)'+$0'$#045&(b-\&<)2*0(.'%$U&6-.*&8GdH

P D&2/'.O,&-$*/)*$)5504$<0($30(&$)6-*()2*.0'P _'2)1-,5)*&$#.&5+$5+<0(2&$20+&$*0$)22&--$*/&$<.&5+$4.*/$%&**&($)'+$-&**&($3&*/0+-P S&'&()5.K&$DI1&$5+2(&)*&$30(&$%&'&()5$*I1&-$*0$)5504$<0($30(&$20+&$-/)(.'%P \&15)2&$*I1&T2/&27.'%$20+&$4.*/$9*)*&;9*()*&%IG?H

P \&15)2&$20'+.*.0')5$4.*/$105I30(1/.-3GhH

P D&2/'.O,&-$<0($6(&)7.'%$20+&$)1)(*$.'*0$30(&$50%.2)5$1.&2&-P _F*()2*$Y&*/0+=$*0$*,('$1)(*$0<$)$5)(%&($3&*/0+$.'*0$)$'&4$3&*/0+8$^I$6(&)7.'%$+04'$20+&$.'$-3)55&($1.&2&-=$.*

.-$30(&$&)-.5I$,'+&(-*)'+)65&8$D/.-$.-$)5-0$)115.2)65&$*0$<,'2*.0'-8P _F*()2*$E5)--$30J&-$1)(*$0<$*/&$20+&$<(03$)'$&F.-*.'%$25)--$.'*0$)$'&4$25)--8

Page 32: Test-Driven Development Wikipedia Collection

E0+&$(&<)2*0(.'% B@

P D&2/'.O,&-$<0($.31(0J.'%$')3&-$)'+$502)*.0'$0<$20+&P Y0J&$Y&*/0+$0($Y0J&$#.&5+$5+30J&$*0$)$30(&$)11(01(.)*&$E5)--$0($-0,(2&$<.5&P \&')3&$Y&*/0+$0($\&')3&$#.&5+$5+2/)'%.'%$*/&$')3&$.'*0$)$'&4$0'&$*/)*$6&**&($(&J&)5-$.*-$1,(10-&P !,55$C1$5+.'$NN!=$30J&$*0$)$-,1&(25)--P !,-/$"04'$5+.'$NN!=$30J&$*0$)$-,625)--

Z&.1/&."%.";&7$(.*+3U/.5&$ */&$ *&(3$ &'4%8+"&*.2( 0(.%.')55I$ (&<&((&+$ &F25,-.J&5I$ *0$ (&<)2*0(.'%$ 0<$ -0<*4)(&$ 20+&=$ .'$ (&2&'*$ I&)(-$ 20+&4(.**&'$.'$/)(+4)(&$+&-2(.1*.0'$5)'%,)%&-$QZ"i-R$/)-$)5-0$6&&'$(&<)2*0(&+8$D/&$*&(3$,%&6)%&'(&'4%8+"&*.2(.-$,-&+)-$)$-/0(*/)'+$*&(3$<0($(&<)2*0(.'%$0<$20+&$.'$/)(+4)(&$+&-2(.1*.0'$5)'%,)%&-8$9.'2&$Z"i-$)(&$'0*$20'-.+&(&+$*0$6&1(0%()33.'%$ 5)'%,)%&-$ 6I$30-*$ /)(+4)(&$ &'%.'&&(-=GjH$ /)(+4)(&$ (&<)2*0(.'%$ .-$ *0$ 6&$ 20'-.+&(&+$ )$ -&1)()*&$ <.&5+<(03$*()+.*.0')5$20+&$(&<)2*0(.'%8L,*03)*&+$(&<)2*0(.'%$0<$)')50%$/)(+4)(&$+&-2(.1*.0'-$Q.'$`Z"iTLY9R$/)-$6&&'$1(010-&+$6I$n&'%$)'+$Z,--8GfH$M'*/&.($)11(0)2/=$(&<)2*0(.'%$1(&-&(J&-$*/&$-.3,5)*&+$6&/)J.0($0<$)$/)(+4)(&$+&-.%'8$D/&$'0'T<,'2*.0')5$3&)-,(&3&'**/)*$ .31(0J&-$.-$ */)*$(&<)2*0(&+$20+&$2)'$6&$1(02&--&+$6I$-*)'+)(+$-I'*/&-.-$ *005-=$4/.5&$ */&$0(.%.')5$20+&$2)''0*8\&<)2*0(.'%$ 0<$ +.%.*)5$ Z"i-=$ )56&.*$ 3)',)5$ (&<)2*0(.'%=$ /)-$ )5-0$ 6&&'$ .'J&-*.%)*&+$ 6I$ 9I'01-I-$ <&5504$ Y.7&c&)*.'%8GgH$ GA@H$ Z.-$ *)(%&*$ .-$ *0$ 3)7&$ 20315&F$ -I-*&3-$ &)-.&($ *0$ ,'+&(-*)'+=$ 4/.2/$ .'2(&)-&-$ */&$ +&-.%'&(-b1(0+,2*.J.*I8M'$ */&$ -,33&($ 0<$ >@@f=$ */&(&$ 4)-$ )'$ .'*&'-&$ +.-2,--.0'$ )60,*$ (&<)2*0(.'%$ 0<$ `Z"i$ 20+&$ 0'$ */&'&4-:;;203185)'%8J/+5$'&4-%(0,18GAAH$D/&$+.-2,--.0'$ (&J05J&+$)(0,'+$)$-1&2.<.2$3)',)5$ (&<)2*0(.'%$1&(<0(3&+$6I0'&$&'%.'&&(=$)'+$*/&$O,&-*.0'$*0$4/&*/&($0($'0*$),*03)*&+$*005-$<0($-,2/$(&<)2*0(.'%$&F.-*8L-$0<$5)*&$>@@g=$9.%)-.$.-$0<<&(.'%$),*03)*&+$*005$-,110(*$<0($`Z"i$(&<)2*0(.'%8GA>H

Z*#$(.DL5*/0,%/$(&<)2*0(.'%$20+&$/)-$6&&'$+0'&$.'<0(3)55I$<0($I&)(-=$U.55.)3$N1+I7&b-$Agg>$!/8"8$+.--&(*)*.0'GABH$.-$*/&<.(-*$ 7'04'$ 1)1&($ *0$ -1&2.<.2)55I$ &F)3.'&$ (&<)2*0(.'%=GAdH$ )5*/0,%/$ )55$ */&$ */&0(I$ )'+$3)2/.'&(I$ /)J&$ 50'%$ 6&&')J).5)65&$ )-$ 1(0%()3$ *()'-<0(3)*.0'$ -I-*&3-8$ L55$ 0<$ */&-&$ (&-0,(2&-$ 1(0J.+&$ )$ 2)*)50%$ 0<$ 20330'$ 3&*/0+-$ <0((&<)2*0(.'%X$)$(&<)2*0(.'%$3&*/0+$/)-$)$+&-2(.1*.0'$0<$/04$*0$)115I$*/&$3&*/0+$)'+$.'+.2)*0(-$<0($4/&'$I0,$-/0,5+Q0($-/0,5+$'0*R$)115I$*/&$3&*/0+8Y)(*.'$#045&(b-$6007$M'4%8+"&*.2;(@#$&":*.2(+,'(7'1*2.("4(JK*1+*.2(!"6'

G>H$.-$*/&$2)'0'.2)5$(&<&(&'2&8D/&$<.(-*$7'04'$,-&$0<$*/&$*&(3$](&<)2*0(.'%]$.'$*/&$1,65.-/&+$5.*&()*,(&$4)-$.'$)$9&1*&36&(=$Agg@$)(*.25&$6I$U.55.)3#8$N1+I7&$)'+$\)51/$_8$V0/'-0'8GA?H$N1+I7&b-$!/8"8$*/&-.-=GABH$1,65.-/&+$.'$Agg>=$)5-0$,-&+$*/.-$*&(38GAdH

D/&$ *&(3$ ]<)2*0(.'%]$ /)-$ 6&&'$ ,-&+$ .'$ */&$ #0(*/$ 2033,'.*I$ -.'2&$ )*$ 5&)-*$ */&$ &)(5I$ Agf@-8$ E/)1*&($ 9.F$ 0<$ i&0^(0+.&b-$6007$>,*.G*.2(O"&+,(QAgfdR$.-$+&+.2)*&+$*0$*/&$-,6[&2*8M'$&F*(&3&$1(0%()33.'%=$*/&$_F*()2*$Y&*/0+$(&<)2*0(.'%$*&2/'.O,&$/)-$&--&'*.)55I$*/&$-)3&$3&)'.'%$)-$<)2*0(.'%$.'#0(*/X$*0$6(&)7$+04'$)$]40(+]$Q0($<,'2*.0'R$.'*0$-3)55&(=$30(&$&)-.5I$3).'*).'&+$<,'2*.0'-8

Page 33: Test-Driven Development Wikipedia Collection

E0+&$(&<)2*0(.'% BA

B'$()&$"1%7(1"%.";&7$(.*+3Y)'I$ -0<*4)(&$ &+.*0(-$ )'+$ M"_-$ /)J&$ ),*03)*&+$ (&<)2*0(.'%$ -,110(*8$Z&(&$ .-$ )$ 5.-*$ 0<$ )$ <&4$ 0<$ */&-&$ &+.*0(-=$ 0(-0T2)55&+$(&<)2*0(.'%$6(04-&(-8P M'*&55.V$M"_L$Q<0($V)J)RP _25.1-&b-$V)J)$"&J&5013&'*$D0057.*$QV"DRP W&*^&)'-$Q<0($V)J)RP _36)(2)+&(0$"&51/.P `.-,)5$9*,+.0$Q<0($8W_DRP V,-*E0+&$Q)++0'$<0($`.-,)5$9*,+.0RP \&9/)(1&($Q)++0'$<0($`.-,)5$9*,+.0RP E0+&(,-/$Q)++0'$<0($`.-,)5$9*,+.0RP `.-,)5$L--.-*$Q)++0'$<0($`.-,)5$9*,+.0$4.*/$(&<)2*0(.'%$-,110(*$<0($`^=$`^8W_D8$Eo$)'+$EyyRP "Y9$90<*4)(&$\&&'%.'&&(.'%$D0057.*$QM315&3&'*-$5)(%&T-2)5&$(&<)2*0(.'%$<0($E=$Eyy=$Eo=$EN^Ni=$V)J)=$!Z!

)'+$0*/&($5)'%,)%&-RP !/0*()'$)$#0(*()'$15,%.'$<0($*/&$_25.1-&$M"_P 9/)(190(*$)++.'$<0($`.-,)5$9*,+.0$>@@fP 9.%)-.$Z"D$Q<0($`Z"iRP wE0+&P 93)55*)57$\&<)2*0(.'%$^(04-&($Q<0($93)55*)57R

G""%&8#(P E0+&$(&J.&4P "&-.%'$1)**&('$Q2031,*&($-2.&'2&RP N6<,-2)*&+$20+&P !&&($(&J.&4P !(&<)2*0(.'%P \&4(.*&$Q1(0%()33.'%RP 9&1)()*.0'$0<$20'2&('-P D&-*T+(.J&'$+&J&5013&'*P C'.*$*&-*.'%P E0+&$#)2*0(.'%P \&+&-.%'$Q-0<*4)(&R

?'.$6".%."&1*+3P #045&(=$Y)(*.'$QAgggR8$M'4%8+"&*.2?(@#$&":*.2(+,'(7'1*2.("4(JK*1+*.2(!"6'8$L++.-0'TU&-5&I8

M9^Wk@T>@ATdf?hjT>8P U)7&=$U.55.)3$E8$Q>@@BR8$M'4%8+"&*.2(F"&G3""G8$L++.-0'TU&-5&I8$M9^Wk@TB>ATA@g>gT?8P Y&'-=$D03$)'+$D0,(4z=$D03$Q>@@dR$5(=/&:'I("4(="4+)%&'(M'4%8+"&*.2$GAhH=$M___$D()'-)2*.0'-$0'$90<*4)(&

_'%.'&&(.'%=$#&6(,)(I$>@@d$QJ058$B@$'08$>R=$118$A>hTABgP #&)*/&(-=$Y.2/)&5$E$Q>@@dR8$F"&G*.2(J44'8+*:'0I()*+,(U'2%8I(!"6'8$!(&'*.2&$Z)558$M9^Wk@TABTAAjj@?T>8P c&(.&J-7I=$V0-/,)$Q>@@dR8$M'4%8+"&*.2(>"(9%++'&.18$L++.-0'TU&-5&I8$M9^Wk@TB>AT>ABB?TA8P L(-&'0J-7.=$")'.[&5$Q>@@fR8$9&"4'11*".%0(M'4%8+"&*.2(*.(Q*1/%0(<%1*88$U(0F8$M9^Wk@TdjT@AjgjgTA8P L(-&'0J-7.=$")'.[&5$Q>@@gR8$9&"4'11*".%0(M'4%8+"&*.2(*.(!V(%.6(5=9?LJ>8$U(0F8$M9^WkgjfT@dj@dBd?>g8P \.*2/.&=$!&*&($Q>@A@R8$M'4%8+"&*.2()*+,(Q*1/%0(=+/6*"(WCSC8$!)27*8$M9^WkgjfTAfdghf@A@B8

Page 34: Test-Driven Development Wikipedia Collection

E0+&$(&<)2*0(.'% B>

IJ$".+&8%8*+@#P U/)*$M-$\&<)2*0(.'%l$GAjH$Q2>8203$)(*.25&RP Y)(*.'$#045&(b-$/03&1)%&$)60,*$(&<)2*0(.'%$GAfH

P L-1&2*TN(.&'*&+$\&<)2*0(.'%$GAgH$6I$\)3'.J)-$i)++)+P L$9,(J&I$0<$90<*4)(&$\&<)2*0(.'%$G>@H$6I$D03$Y&'-$)'+$D03$D0,(4zP \&<)2*0(.'%$V)J)$E0+&$G>AH

P \&<)2*0(.'%$D0$!)**&('-$E)*)50%$G>>H

P _F*()2*$^005&)'$`)(.)65&$<(03$E0'+.*.0')5$G>BH$Q)$(&<)2*0(.'%$1)**&('$'0*$5.-*&+$.'$*/&$)60J&$2)*)50%RP D&-*T"(.J&'$"&J&5013&'*$U.*/$\&<)2*0(.'%$G>dH

P \&J.-.*.'%$#045&(9-$`.+&0$9*0(&:$\&<)2*0(.'%$E0+&=$\&<.'.'%$L6-*()2*.0'-$G>?H

H";"."+7"#GAH c&(.&J-7I=$V0-/,)$Q>@@dR8$M'4%8+"&*.2(+"(9%++'&.18$L++.-0'$U&-5&I8G>H #045&(=$Y)(*.'$QAgggR8$M'4%8+"&*.2;(@#$&":*.2(+,'(6'1*2.("4('K*1+*.2(8"6'8$L++.-0'$U&-5&I8GBH Y)(*.'=$\06&(*$Q>@@gR8$!0'%.(!"6'8$!(&'*.2&$Z)558GdH \&<)2*0(.'%$*&2/'.O,&-$.'$#045&(b-$(&<)2*0(.'%$U&6-.*&$Q/**1:;$;$4448$(&<)2*0(.'%8$203;$2)*)50%;$.'+&F8$/*35RG?H \&15)2&$*I1&T2/&27.'%$20+&$4.*/$9*)*&;9*()*&%I$Q/**1:;$;$4448$(&<)2*0(.'%8$203;$2)*)50%;$(&15)2&DI1&E0+&U.*/9*)*&9*()*&%I8$/*35RGhH \&15)2&$20'+.*.0')5$4.*/$105I30(1/.-3$Q/**1:;$;$4448$(&<)2*0(.'%8$203;$2)*)50%;$(&15)2&E0'+.*.0')5U.*/!05I30(1/.-38$/*35RGjH Z)(+4)(&$+&-2(.1*.0'$5)'%,)%&-oZ"i$)'+$1(0%()33.'%$5)'%,)%&-GfH c).1.'%$n&'%=$90(.'$L8$Z,--=$]L(2/.*&2*,(&$(&<.'&3&'*-$6I$20+&$(&<)2*0(.'%$0<$6&/)J.0()5$`Z"iTLY9$30+&5-]8$M9EL9$>@@hGgH Y8$c&)*.'%$:]E0315&F.*I=$L6-*()2*.0'=$)'+$*/&$E/)55&'%&-$0<$"&-.%'.'%$E0315&F$9I-*&3-]=$.'$"LEb@f$*,*0(.)5$Q/**1:;$;$4448$+)28$203;

&J&'*-;$&J&'*+&*).5-8$)-1Fl.+mjjTAB@R]^(.+%.'%$)$`&(.<.2)*.0'$S)1:$Eyy$*0$\Di$<0($!()2*.2)5$"&-.%']GA@H Y8$c&)*.'%=$!8$^(.2),+:$M'/1'(-'+,"6"0"2I(-%./%0(4"&(=I1+'#H".H%H!,*$(7'1*2.1=$c5,4&($L2)+&3.2$!,65.-/&(-=$Aggg8GAAH /**1:;$;$'&4-%(0,1-8$+&(7&.5&(8$203;$L(2/.J&;$E031;$20318$5)'%8$J/+5;$>@@fT@h;$3-%@@AjB8$/*35GA>H 4448&&*.3&-8203;'&4-;5)*&-*;-/04L(*.25&8[/*35l)(*.25&M"m>>>@@Af??$Q/**1:;$;$4448$&&*.3&-8$203;$'&4-;$5)*&-*;$-/04L(*.25&8

[/*35l)(*.25&M"m>>>@@Af??RGABH N1+I7&=$U.55.)3$#$QV,'&$Agg>R$Q2031(&--&+$!0-*-2(.1*R8$M'4%8+"&*.2(X3Y'8+HX&*'.+'6(O&%#')"&G1$Q<*1:;$;$-*8$2-8$,.,28$&+,;$1,6;$1)1&(-;

(&<)2*0(.'%;$01+I7&T*/&-.-8$1-8$nR8$!/8"8$*/&-.-8$C'.J&(-.*I$0<$M55.'0.-$)*$C(6)')TE/)31).%'8$8$\&*(.&J&+$>@@fT@>TA>8GAdH Y)(*.'$#045&(=$]Y#$^5.7.:$_*I3050%IN<\&<)2*0(.'%]$Q/**1:;$;$3)(*.'<045&(8$203;$65.7.;$_*I3050%IN<\&<)2*0(.'%8$/*35RGA?H N1+I7&=$U.55.)3$#8X$V0/'-0'=$\)51/$_8$Q9&1*&36&($Agg@R8$]\&<)2*0(.'%:$L'$L.+$.'$"&-.%'.'%$L115.2)*.0'$#()3&40(7-$)'+$_J05J.'%

N6[&2*TN(.&'*&+$9I-*&3-]8$9&"8''6*.21("4(+,'(=I#$"1*/#(".(X3Y'8+(X&*'.+'6(9&"2&%##*.2(J#$,%1*Z*.2(9&%8+*8%0(5$$0*8%+*".1([=XX995\8LEY8

GAhH /**1:;$;$+0.8$.&&&2031,*&(-02.&*I8$0(%;$A@8$AA@g;$D9_8$>@@d8$A>h?fAjGAjH /**1:;$;$2>8$203;$2%.;$4.7.lU/)*M-\&<)2*0(.'%GAfH /**1:;$;$4448$(&<)2*0(.'%8$203;GAgH /**1:;$;$4448$*/&-&(J&(-.+&8$203;$)(*.25&-;$)(*.25&8$*--l5mL-1&2*N(.&'*&+\&<)2*0(.'%!)(*AG>@H /**1:;$;$2-+58$2031,*&(8$0(%;$2031;$*()'-;$*-;$>@@d;$@>;$&>*028$/*3G>AH /**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+mdG>>H /**1:;$;$.'+,-*(.)550%.28$203;$F1;$(&<)2*0(.'%;$2)*)50%8$/*35G>BH /**1:;$;$4448$.'+,-*(.)550%.28$203;$1)1&(-;$&F*()2*6005&)'8$/*35G>dH /**1:;$;$4448$*&-*.'%*J8$203;$>@@g;$@g;$>d;$*&-*T+(.J&'T+&J&5013&'*T4.*/T(&<)2*0(.'%;G>?H /**1:;$;$650%8$-I31(.-&8$'&*;$>@@g;$@d;$(&J.-.*.'%T<045&(-TJ.+&0T-*0(&T(&<)2*0(.'%T20+&T(&&'%.'&&(.'%T)6-*()2*.0'-;

Page 35: Test-Driven Development Wikipedia Collection

D&-*$2)-& BB

!"#$%7&#"L$$"#$%7&#"%.'$-0<*4)(&$&'%.'&&(.'%$.-$)$-&*$0<$20'+.*.0'-$0($J)(.)65&-$,'+&($4/.2/$)$*&-*&($4.55$+&*&(3.'&$4/&*/&($)')115.2)*.0'$ 0($ -0<*4)(&$ -I-*&3$ .-$ 40(7.'%$ 20((&2*5I$ 0($ '0*8$ D/&$ 3&2/)'.-3$ <0($ +&*&(3.'.'%$ 4/&*/&($ )$ -0<*4)(&1(0%()3$0($-I-*&3$/)-$1)--&+$0($<).5&+$-,2/$)$*&-*$.-$7'04'$)-$)$$"#$%(.&78"8$M'$-03&$-&**.'%-=$)'$0()25&$20,5+$6&$)(&O,.(&3&'*$ 0($ ,-&$ 2)-&=$4/.5&$ .'$ 0*/&(-$ .*$ 20,5+$ 6&$ )$ /&,(.-*.28$ M*$3)I$ *)7&$3)'I$ *&-*$ 2)-&-$ *0$ +&*&(3.'&$ */)*$ )-0<*4)(&$ 1(0%()3$ 0($ -I-*&3$ .-$ <,'2*.0'.'%$ 20((&2*5I8$ D&-*$ 2)-&-$ )(&$ 0<*&'$ (&<&((&+$ *0$ )-$ $"#$% #7.*5$#=$ 1)(*.2,5)(5I4/&'$4(.**&'8$U(.**&'$*&-*$2)-&-$)(&$,-,)55I$2055&2*&+$.'*0$*&-*$-,.*&-8

?(.)&8%$"#$%7&#"#M'$0(+&($*0$<,55I$*&-*$*/)*$)55$*/&$(&O,.(&3&'*-$0<$)'$)115.2)*.0'$)(&$3&*=$*/&(&$3,-*$6&$%+(0'%1+(+)"(+'1+(8%1'1(4"&('%8,

&'N/*&'#'.+:$ 0'&$10-.*.J&$ *&-*$ )'+$0'&$'&%)*.J&$ *&-*X$ ,'5&--$ )$ (&O,.(&3&'*$/)-$ -,6T(&O,.(&3&'*-8$ M'$ */)*$ -.*,)*.0'=&)2/$-,6T(&O,.(&3&'*$3,-*$/)J&$)*$5&)-*$*40$*&-*$2)-&-8$c&&1.'%$*()27$0<$*/&$5.'7$6&*4&&'$*/&$(&O,.(&3&'*$)'+$*/&*&-*$.-$<(&O,&'*5I$+0'&$,-.'%$)$*()2&)6.5.*I$3)*(.F8$U(.**&'$*&-*$2)-&-$-/0,5+$.'25,+&$)$+&-2(.1*.0'$0<$*/&$<,'2*.0')5.*I*0$6&$*&-*&+=$)'+$*/&$1(&1)()*.0'$(&O,.(&+$*0$&'-,(&$*/)*$*/&$*&-*$2)'$6&$20'+,2*&+8L$<0(3)5$4(.**&'$*&-*T2)-&$.-$2/)()2*&(.K&+$6I$)$G.").(*.$/+()'+$6I$)'$'K$'8+'6("/+$/+=$4/.2/$.-$40(7&+$0,*$3'4"&'*/&$*&-*$.-$&F&2,*&+8$D/&$7'04'$.'1,*$-/0,5+$*&-*$)$1(&20'+.*.0'$)'+$*/&$&F1&2*&+$0,*1,*$-/0,5+$*&-*$)$10-*20'+.*.0'8

:+;(.)&8%$"#$%7&#"#O"&(%$$0*8%+*".1("&(1I1+'#1()*+,"/+( 4"&#%0(&'N/*&'#'.+1P( *&-*$2)-&-$8%.(3'()&*++'.(3%1'6(".( +,'(%88'$+'6(."&#%0

"$'&%+*".("4($&"2&%#1("4(%(1*#*0%&(25)--?(@.(1"#'(18,""01("4(+'1+*.2P(*&-*$2)-&-$%&'(."+()&*++'.(%+(%00(3/+(+,'(%8+*:*+*'1

%.6(&'1/0+1(%&'(&'$"&+'6(%4+'&(+,'(+'1+1(,%:'(3''.(&/.?

M'$-2&')(.0$*&-*.'%=$/I10*/&*.2)5$-*0(.&-$)(&$,-&+$*0$/&51$*/&$*&-*&($*/.'7$*/(0,%/$)$20315&F$1(065&3$0($-I-*&38$D/&-&-2&')(.0-$)(&$,-,)55I$'0*$4(.**&'$+04'$.'$)'I$+&*).58$D/&I$2)'$6&$)-$-.315&$)-$)$+.)%()3$<0($)$*&-*.'%$&'J.(0'3&'*$0(*/&I$20,5+$6&$)$+&-2(.1*.0'$4(.**&'$.'$1(0-&8$D/&$.+&)5$-2&')(.0$*&-*$.-$)$-*0(I$*/)*$.-$30*.J)*.'%=$2(&+.65&=$20315&F=)'+$&)-I$ *0$ &J)5,)*&8$D/&I$)(&$,-,)55I$+.<<&(&'*$ <(03$ *&-*$ 2)-&-$ .'$ */)*$ *&-*$ 2)-&-$ )(&$ -.'%5&$ -*&1-$4/.5&$ -2&')(.0-20J&($)$',36&($0<$-*&1-8

!D5*7&8%/.*$$"+%$"#$%7&#"%;(.)&$L$*&-*$2)-&$.-$,-,)55I$)$-.'%5&$-*&1=$0($022)-.0')55I$)$-&O,&'2&$0<$-*&1-=$*0$*&-*$*/&$20((&2*$6&/)J.0,(;<,'2*.0')5.*.&-=<&)*,(&-$0<$)'$)115.2)*.0'8$L'$&F1&2*&+$(&-,5*$0($&F1&2*&+$0,*203&$.-$,-,)55I$%.J&'8L++.*.0')5$.'<0(3)*.0'$*/)*$3)I$6&$.'25,+&+:P *&-*$2)-&$M"P *&-*$2)-&$+&-2(.1*.0'P *&-*$-*&1$0($0(+&($0<$&F&2,*.0'$',36&(P (&5)*&+$(&O,.(&3&'*Q-RP +&1*/P *&-*$2)*&%0(IP ),*/0(P 2/&27$60F&-$<0($4/&*/&($*/&$*&-*$.-$),*03)*)65&$)'+$/)-$6&&'$),*03)*&+8L++.*.0')5$<.&5+-$*/)*$3)I$6&$.'25,+&+$)'+$20315&*&+$4/&'$*/&$*&-*-$)(&$&F&2,*&+:P 1)--;<).5P (&3)(7-i)(%&($*&-*$2)-&-$3)I$)5-0$20'*).'$1(&(&O,.-.*&$-*)*&-$0($-*&1-=$)'+$+&-2(.1*.0'-8

Page 36: Test-Driven Development Wikipedia Collection

D&-*$2)-& Bd

L$4(.**&'$*&-*$2)-&$-/0,5+$)5-0$20'*).'$)$15)2&$<0($*/&$)2*,)5$(&-,5*8D/&-&$-*&1-$2)'$6&$-*0(&+$.'$)$40(+$1(02&--0($+02,3&'*=$-1(&)+-/&&*=$+)*)6)-&$0($0*/&($20330'$(&10-.*0(I8M'$ )$+)*)6)-&$ -I-*&3=$I0,$3)I$)5-0$6&$ )65&$ *0$ -&&$1)-*$ *&-*$ (&-,5*-$ )'+$4/0$%&'&()*&+$ */&$ (&-,5*-$ )'+$ */&$ -I-*&320'<.%,()*.0'$,-&+$*0$%&'&()*&$*/0-&$(&-,5*-8$D/&-&$1)-*$(&-,5*-$40,5+$,-,)55I$6&$-*0(&+$.'$)$-&1)()*&$*)65&8D&-*$-,.*&-$0<*&'$)5-0$20'*).'P D&-*$-,33)(IP E0'<.%,()*.0'^&-.+&-$ )$ +&-2(.1*.0'$0<$ */&$ <,'2*.0')5.*I$ *0$ 6&$ *&-*&+=$ )'+$ */&$1(&1)()*.0'$ (&O,.(&+$ *0$ &'-,(&$ */)*$ */&$ *&-*$ 2)'$6&20'+,2*&+=$*/&$30-*$*.3&$20'-,3.'%$1)(*$.'$*/&$*&-*$2)-&$.-$2(&)*.'%$*/&$*&-*-$)'+$30+.<I.'%$*/&3$4/&'$*/&$-I-*&32/)'%&-8C'+&($-1&2.)5$2.(2,3-*)'2&-=$*/&(&$20,5+$6&$)$'&&+$*0$(,'$*/&$*&-*=$1(0+,2&$(&-,5*-=$)'+$*/&'$)$*&)3$0<$&F1&(*-$40,5+&J)5,)*&$ .<$ */&$ (&-,5*-$ 2)'$ 6&$ 20'-.+&(&+$ )-$ )$ 1)--8$ D/.-$ /)11&'-$ 0<*&'$ 0'$ '&4$ 1(0+,2*-b$ 1&(<0(3)'2&$ ',36&(+&*&(3.')*.0'8$D/&$<.(-*$*&-*$.-$*)7&'$)-$*/&$6)-&$5.'&$<0($-,6-&O,&'*$*&-*$;$1(0+,2*$(&5&)-&$2I25&-8L22&1*)'2&$*&-*-=$4/.2/$,-&$)$J)(.)*.0'$0<$)$4(.**&'$*&-*$2)-&=$)(&$20330'5I$1&(<0(3&+$6I$)$%(0,1$0<$&'+T,-&(-$0(25.&'*-$ 0<$ */&$ -I-*&3$ *0$ &'-,(&$ */&$ +&J&501&+$ -I-*&3$ 3&&*-$ */&$ (&O,.(&3&'*-$ -1&2.<.&+$ 0($ */&$ 20'*()2*8$ C-&()22&1*)'2&$ *&-*-$ )(&$ +.<<&(&'*.)*&+$ 6I$ */&$ .'25,-.0'$ 0<$ /)11I$ 1)*/$ 0($ 10-.*.J&$ *&-*$ 2)-&-$ *0$ */&$ )530-*$ 20315&*&&F25,-.0'$0<$'&%)*.J&$*&-*$2)-&-8

IJ$".+&8%8*+@#P U(.*.'%$90<*4)(&$9&2,(.*I$D&-*$E)-&-$T$!,**.'%$-&2,(.*I$*&-*$2)-&-$.'*0$I0,($*&-*$15)'$GAH$6I$\06&(*$L,%&(

H";"."+7"#GAH /**1:;$;$4448$O)-&28$203;$2I25&;$-&2,(.*I*&-*2)-&-8$-/*35

Page 37: Test-Driven Development Wikipedia Collection

FC'.* B?

J9+*$`)(.0,-$ 20+&T+(.J&'$ *&-*.'%$ <()3&40(7-$ /)J&$ 203&$ *0$ 6&$ 7'04'$ 2055&2*.J&5I$ )-$J9+*$8$ D/&-&$ <()3&40(7-$ )5504*&-*.'%$ 0<$ +.<<&(&'*$ &5&3&'*-$ Q,'.*-R$ 0<$ -0<*4)(&=$ -,2/$ )-$ <,'2*.0'-$ )'+$ 25)--&-8$ D/&$ 3).'$ )+J)'*)%&$ 0<$ FC'.*<()3&40(7-$.-$*/)*$*/&I$1(0J.+&$)'$),*03)*&+$-05,*.0'$4.*/$'0$'&&+$*0$4(.*&$*/&$-)3&$*&-*-$3)'I$*.3&-=$)'+$'0$'&&+*0$(&3&36&($4/)*$-/0,5+$6&$*/&$(&-,5*$0<$&)2/$*&-*8$9,2/$<()3&40(7-$)(&$6)-&+$0'$)$+&-.%'$6I$c&'*$^&27=$0(.%.')55I.315&3&'*&+$ <0($ 93)55*)57$ )-$ 9C'.*8$ _(.2/$ S)33)$ 10(*&+$ 9C'.*$ *0$ V)J)=$ 2(&)*.'%$ VC'.*8$ N,*$ 0<$ */)*$ */&$ 9C'.*<()3&40(7$4)-$)5-0$10(*&+$*0$0*/&($5)'%,)%&-=$&8%8=$E11C'.*$Q<0($EyyR=$WC'.*$Q<0($8W_DR8$D/&I$)(&$)55$(&<&((&+$*0$)-J9+*$%)'+$ )(&$ ,-,)55I$ <(&&=$ 01&'$ -0,(2&$ -0<*4)(&8$D/&I$ )(&$ '04$ )J).5)65&$ <0($3)'I$ 1(0%()33.'%$ 5)'%,)%&-$ )'++&J&5013&'*$15)*<0(3-8

J9+*$%&.76*$"7$'."L55$FC'.*$<()3&40(7-$-/)(&$*/&$<05504.'%$6)-.2$20310'&'*$)(2/.*&2*,(&=$4.*/$-03&$J)(.&+$.315&3&'*)*.0'$+&*).5-8

!"#$%7&#"D/.-$.-$*/&$30-*$&5&3&'*)5$25)--8$L55$,'.*$*&-*-$)(&$.'/&(.*&+$<(03$.*8

!"#$%;*J$'."#L$*&-*$<.F*,(&$Q)5-0$7'04'$)-$)$*&-*$20'*&F*R$.-$*/&$-&*$0<$1(&20'+.*.0'-$0($-*)*&$'&&+&+$*0$(,'$)$*&-*8$D/&$+&J&501&(-/0,5+$-&*$,1$)$7'04'$%00+$-*)*&$6&<0(&$*/&$*&-*-=$)'+$)<*&($*/&$*&-*-$(&*,('$*0$*/&$0(.%.')5$-*)*&8

!"#$%#'*$"#L$*&-*$-,.*&$.-$)$-&*$0<$*&-*-$*/)*$)55$-/)(&$*/&$-)3&$<.F*,(&8$D/&$0(+&($0<$*/&$*&-*$-/0,5+'b*$3)**&(8

!"#$%"J"7'$*(+D/&$&F&2,*.0'$0<$)'$.'+.J.+,)5$,'.*$*&-*$1(02&&+-$)-$<05504-:

#0$5(*+?,!+",$-./0"1&".)2345"6-&67-&"23-"812-458"/2"97:&"7'"$.247/&5"

&'%$-2'9&'/";2-"/&./$'<"+!

%%%

!+"=25>"2;"/&./"?"@&-&"1&"97:&"744"/)&"/&./."+!

%%%

$0@:3287*+?,!+"A'"/)&"&'50"1)&/)&-".3BB&&5"2-";7$4"1&".)2345"B4&7'"36"

23-"812-458"/2"'2/"5$./3-C"2/)&-"/&./."2-"B25&"+!

D/&$-&*,1QR$)'+$*&)(+04'QR$3&*/0+-$-&(J&$*0$.'.*.)5.K&$)'+$25&)'$,1$*&-*$<.F*,(&-8

Page 38: Test-Driven Development Wikipedia Collection

FC'.* Bh

B##".$*(+#L'$ )--&(*.0'$ .-$ )$ <,'2*.0'$ 0($3)2(0$ */)*$ J&(.<.&-$ */&$ 6&/)J.0($ Q0($ */&$ -*)*&R$ 0<$ */&$ ,'.*$ ,'+&($ *&-*8$ #).5,(&$ 0<$ )')--&(*.0'$*I1.2)55I$*/(04-$)'$&F2&1*.0'=$)60(*.'%$*/&$&F&2,*.0'$0<$*/&$2,((&'*$*&-*8

J9+*$%?.&)"/(.@#Y)'I$FC'.*$<()3&40(7-$&F.-*$<0($J)(.0,-$1(0%()33.'%$5)'%,)%&-$)'+$+&J&5013&'*$15)*<0(3-8P i.-*$0<$,'.*$*&-*.'%$<()3&40(7-

J9+*$%IJ$"+#*(+#_F*&'-.0'-$ )(&$ )J).5)65&$ *0$ &F*&'+$ FC'.*$ <()3&40(7-$4.*/$ )++.*.0')5$ -1&2.)5.K&+$ <,'2*.0')5.*I8$ _F)315&-$ 0<$ -,2/&F*&'-.0'-$.'25,+&$wYiC'.*$GAH=$"6C'.*$G>H=$Z*35C'.*$)'+$Z**1C'.*8

G""%&8#(C'.*$*&-*.'%$.'$%&'&()5:P C'.*$*&-*.'%P 90<*4)(&$*&-*.'%!(0%()33.'%$)11(0)2/$*0$,'.*$*&-*.'%:P D&-*T+(.J&'$+&J&5013&'*P _F*(&3&$1(0%()33.'%

IJ$".+&8%8*+@#P c&'*$^&27b-$0(.%.')5$*&-*.'%$<()3&40(7$1)1&($GBH

P N*/&($5.-*$0<$J)(.0,-$,'.*$*&-*.'%$<()3&40(7-$GdH

P N1&'90,(2&D&-*.'%80(%$5.-*-$3)'I$,'.*$*&-*.'%$<()3&40(7-=$1&(<0(3)'2&$*&-*.'%$*005-$)'+$0*/&($*005-1(0%()33&(-;+&J&501&(-$3)I$<.'+$,-&<,5$G?H

P D&-*$),*03)*.0'$1)**&('-$<0($4(.*.'%$*&-*-;-1&2-$.'$FC'.*8$GhH

P Y)(*.'$#045&($0'$*/&$6)27%(0,'+$0<$FC'.*8$GjH

H";"."+7"#GAH /**1:;$;$F35,'.*8$-0,(2&<0(%&8$'&*;G>H /**1:;$;$4448$+6,'.*8$0(%;GBH /**1:;$;$4448$F1(0%()33.'%8$203;$*&-*<()38$/*3GdH /**1:;$;$4448$F1(0%()33.'%8$203;$-0<*4)(&8$/*3G?H /**1:;$;$01&'-0,(2&*&-*.'%8$0(%;GhH /**1:;$;$F,'.*1)**&('-8$203;GjH /**1:;$;$4448$3)(*.'<045&(8$203;$65.7.;$w,'.*8$/*35

Page 39: Test-Driven Development Wikipedia Collection

D&-*$-*,6- Bj

!"#$%#$'T#M'$2031,*&($-2.&'2&=$$"#$%#$'T#%)(&$1(0%()3-$4/.2/$-.3,5)*&$*/&$6&/)J.0(-$0<$-0<*4)(&$20310'&'*-$Q0($30+,5&-R$*/)*)(&$*/&$+&1&'+&'*$30+,5&-$0<$*/&$30+,5&$6&.'%$*&-*&+8

!D&-*$-*,6-$1(0J.+&$2)''&+$)'-4&(-$*0$2)55-$3)+&$+,(.'%$*/&$*&-*=$,-,)55I$'0*$(&-10'+.'%$)*$)55$*0$)'I*/.'%$0,*-.+&$4/)*b-$1(0%()33&+$.'$<0(*/&$*&-*8GAH "

D&-*$9*,6-$)(&$3).'5I$,-&+$.'$.'2(&3&'*)5$*&-*.'%b-$D01T"04'$)11(0)2/8$9*,6-$)(&$-0<*4)(&$1(0%()3-$4/.2/$)2*$)-$)30+,5&$)'+$%.J&$*/&$0,*1,*$)-$%.J&'$6I$)'$)2*,)5$1(0+,2*;-0<*4)(&8

IJ&)58"E0'-.+&($ )$ -0<*4)(&$ 1(0%()3$4/.2/$ O,&(.&-$ )$ +)*)6)-&$ *0$ 06*).'$ */&$ -,3$1(.2&$ *0*)5$ 0<$ )55$ 1(0+,2*-$ -*0(&+$ .'$ */&+)*)6)-&8$Z04&J&(=$*/&$O,&(I$.-$-504$)'+$20'-,3&-$)$5)(%&$',36&($0<$-I-*&3$(&-0,(2&-8$D/.-$(&+,2&-$*/&$',36&($0<*&-*$(,'-$1&($+)I8$9&20'+5I=$*/&$*&-*-$'&&+$*0$6&$20'+,2*&+$0'$J)5,&-$5)(%&($*/)'$4/)*$.-$2,((&'*5I$.'$*/&$+)*)6)-&8D/&$3&*/0+$Q0($2)55R$,-&+$*0$1&(<0(3$*/.-$.-$2'+]+"+%0[\8$#0($*&-*.'%$1,(10-&-=$*/&$-0,(2&$20+&$.'$2'+]+"+%0[\(20,5+$6&*&310()(.5I$(&15)2&+$4.*/$)$-.315&$-*)*&3&'*$4/.2/$(&*,('&+$)$-1&2.<.2$J)5,&8$D/.-$40,5+$6&$)$*&-*$-*,68D/&(&$)(&$-&J&()5$*&-*.'%$<()3&40(7-$)J).5)65&$)'+$*/&(&$.-$-0<*4)(&$*/)*$2)'$%&'&()*&$$"#$%#$'T#%6)-&+$0'$&F.-*.'%-0,(2&$20+&$)'+$*&-*.'%$(&O,.(&3&'*-8

IJ$".+&8%8*+@#P /**1:;$;$F,'.*1)**&('-8$203;$D&-*s>@9*,68$/*35$G>H

G""%&8#(P 90<*4)(&$*&-*.'%P D&-*$"0,65&

H";"."+7"#GAH #045&(=$Y)(*.'$Q>@@jR=$-"8G1(5&'.B+(=+/31(QN'5.'&R$Q/**1:;$;$3)(*.'<045&(8$203;$)(*.25&-;$3027-L(&'*9*,6-8

/*35oD/&".<<&(&'2&^&*4&&'Y027-L'+9*,6-RG>H /**1:;$;$F,'.*1)**&('-8$203;$D&-*s>@9*,68$/*35

Page 40: Test-Driven Development Wikipedia Collection

Y027$06[&2* Bf

Y(7@%(TV"7$M'$ 06[&2*T0(.&'*&+$ 1(0%()33.'%=$)(7@% (TV"7$#% )(&$ -.3,5)*&+$ 06[&2*-$ */)*$ 3.3.2$ */&$ 6&/)J.0($ 0<$ (&)5$ 06[&2*-$ .'20'*(055&+$4)I-8$L$2031,*&($1(0%()33&($*I1.2)55I$2(&)*&-$)$3027$06[&2*$*0$*&-*$*/&$6&/)J.0($0<$-03&$0*/&($06[&2*=.'$3,2/$*/&$-)3&$4)I$*/)*$)$2)($+&-.%'&($,-&-$)$2()-/$*&-*$+,33I$*0$-.3,5)*&$*/&$+I')3.2$6&/)J.0($0<$)$/,3)'$.'J&/.25&$.31)2*-8

H"&#(+#%;(.%'#"M'$)$,'.*$*&-*=$3027$06[&2*-$2)'$-.3,5)*&$*/&$6&/)J.0($0<$20315&F=$(&)5$Q'0'T3027R$06[&2*-$)'+$)(&$*/&(&<0(&$,-&<,54/&'$)$(&)5$06[&2*$.-$.31()2*.2)5$0($.310--.65&$*0$.'20(10()*&$.'*0$)$,'.*$*&-*8$M<$)'$06[&2*$/)-$)'I$0<$*/&$<05504.'%2/)()2*&(.-*.2-=$.*$3)I$6&$,-&<,5$*0$,-&$)$3027$06[&2*$.'$.*-$15)2&:P -,115.&-$'0'T+&*&(3.'.-*.2$(&-,5*-$Q&8%8$*/&$2,((&'*$*.3&$0($*/&$2,((&'*$*&31&()*,(&RXP /)-$-*)*&-$*/)*$)(&$+.<<.2,5*$*0$2(&)*&$0($(&1(0+,2&$Q&8%8$)$'&*40(7$&((0(RXP .-$-504$Q&8%8$)$20315&*&$+)*)6)-&=$4/.2/$40,5+$/)J&$*0$6&$.'.*.)5.K&+$6&<0(&$*/&$*&-*RXP +0&-$'0*$I&*$&F.-*$0($3)I$2/)'%&$6&/)J.0(XP 40,5+$/)J&$*0$.'25,+&$.'<0(3)*.0'$)'+$3&*/0+-$&F25,-.J&5I$<0($*&-*.'%$1,(10-&-$Q)'+$'0*$<0($.*-$)2*,)5$*)-7R8#0($&F)315&=$)'$)5)(3$25027$1(0%()3$4/.2/$2),-&-$)$6&55$*0$(.'%$)*$)$2&(*).'$*.3&$3.%/*$%&*$*/&$2,((&'*$*.3&$<(03$*/&0,*-.+&$40(5+8$D0$*&-*$*/.-=$*/&$*&-*$3,-*$4).*$,'*.5$*/&$)5)(3$*.3&$*0$7'04$4/&*/&($.*$/)-$(,'%$*/&$6&55$20((&2*5I8$M<$)3027$06[&2*$.-$,-&+$.'$15)2&$0<$*/&$(&)5$06[&2*=$.*$2)'$6&$1(0%()33&+$*0$1(0J.+&$*/&$6&55T(.'%.'%$*.3&$Q4/&*/&($.*$.-)2*,)55I$*/)*$*.3&$0($'0*R$-0$*/)*$*/&$)5)(3$25027$1(0%()3$2)'$6&$*&-*&+$.'$.-05)*.0'8

!"76+*7&8%1"$&*8#Y027$06[&2*-$/)J&$*/&$-)3&$.'*&(<)2&$)-$*/&$(&)5$06[&2*-$*/&I$3.3.2=$)5504.'%$)$25.&'*$06[&2*$*0$(&3).'$,')4)(&$0<4/&*/&($.*$.-$,-.'%$)$(&)5$06[&2*$0($)$3027$06[&2*8$Y)'I$)J).5)65&$3027$06[&2*$<()3&40(7-$)5504$*/&$1(0%()33&($*0-1&2.<I$4/.2/=$)'+$.'$4/)*$0(+&(=$3&*/0+-$4.55$6&$.'J07&+$0'$)$3027$06[&2*$)'+$4/)*$1)()3&*&(-$4.55$6&$1)--&+$*0*/&3=$)-$4&55$)-$4/)*$J)5,&-$4.55$6&$(&*,('&+8$D/,-=$*/&$6&/)J.0($0<$)$20315&F$06[&2*$-,2/$)-$)$'&*40(7$-027&*$2)'6&$ 3.3.27&+$ 6I$ )$ 3027$ 06[&2*=$ )5504.'%$ */&$ 1(0%()33&($ *0$ +.-20J&($ 4/&*/&($ */&$ 06[&2*$ 6&.'%$ *&-*&+$ (&-10'+-)11(01(.)*&5I$*0$*/&$4.+&$J)(.&*I$0<$-*)*&-$-,2/$06[&2*-$3)I$6&$.'8

Y(7@#U%;&@"#%&+1%#$'T#903&$ ),*/0(-GAH$ +()4$ )$ +.-*.'2*.0'$ 6&*4&&'$ 4%G'( )'+$ #"8G( 06[&2*-8$ #)7&-$ )(&$ */&$ -.315&($ 0<$ */&$ *40=$ -.315I.315&3&'*.'%$*/&$-)3&$.'*&(<)2&$)-$*/&$06[&2*$*/)*$*/&I$(&1(&-&'*$)'+$(&*,('.'%$1(&T)(()'%&+$(&-10'-&-8$D/,-$)$<)7&06[&2*$3&(&5I$1(0J.+&-$)$-&*$0<$3&*/0+$-*,6-8M'$ */&$ 6007$ ]D/&$ )(*$ 0<$ ,'.*$ *&-*.'%]$ G>H$3027-$ )(&$ +&-2(.6&+$ )-$ )$ <)7&$ 06[&2*$ */)*$ /&51-$ +&2.+&$ .<$ )$ *&-*$ <).5&+$ 0(1)--&+=$6I$J&(.<I.'%$.<$)'$.'*&()2*.0'$0'$)'$06[&2*$022,((&+$0($'0*8$_J&(I*/.'%$&5-&$.-$+&<.'&+$)-$)$-*,68$M'$*/)*$6007=]#)7&-]$)(&$)'I*/.'%$*/)*$.-$'0*$(&)58$^)-&+$0'$*/&.($,-)%&=$*/&I$)(&$&.*/&($-*,6-$0($3027-8Y027$ 06[&2*-$ .'$ */.-$ -&'-&$ +0$ )$ 5.**5&$ 30(&:$ */&.($ 3&*/0+$ .315&3&'*)*.0'-$ 20'*).'$ )--&(*.0'-$ 0<$ */&.($ 04'8$ D/.-3&)'-$*/)*$)$*(,&$3027=$.'$*/.-$-&'-&=$4.55$&F)3.'&$*/&$20'*&F*$0<$&)2/$2)558+1&(/)1-$2/&27.'%$*/&$0(+&($.'$4/.2/$.*-3&*/0+-$)(&$2)55&+=$1&(/)1-$1&(<0(3.'%$*&-*-$0'$*/&$+)*)$1)--&+$.'*0$*/&$3&*/0+$2)55-$)-$)(%,3&'*-8

Page 41: Test-Driven Development Wikipedia Collection

Y027$06[&2* Bg

G"$$*+3%"J5"7$&$*(+#E0'-.+&($ )'$ &F)315&$ 4/&(&$ )'$ ),*/0(.K)*.0'$ -,6T-I-*&3$ /)-$ 6&&'$ 3027&+8$ D/&$ 3027$ 06[&2*$ .315&3&'*-$ )'.-C-&(L5504&+Q*)-7$ :$ D)-7R$ :$ T((8"&+GBH$ 3&*/0+$ *0$ 3)*2/$ */)*$ .'$ */&$ (&)5$ ),*/0(.K)*.0'$ 25)--8$ Y)'I$ )+J)'*)%&-<05504$.<$.*$)5-0$&F10-&-$)'$.-L5504&+$:$6005&)'$1(01&(*I=$4/.2/$.-$'0*$1(&-&'*$.'$*/&$(&)5$25)--8$D/.-$)5504-$*&-*$20+&&)-.5I$*0$-&*$*/&$&F1&2*)*.0'$*/)*$)$,-&($4.55=$0($4.55$'0*=$6&$%()'*&+$1&(3.--.0'$.'$*/&$'&F*$2)55$)'+$*/&(&<0(&$(&)+.5I*0$*&-*$*/&$6&/)J.0($0<$*/&$(&-*$0<$*/&$-I-*&3$.'$&.*/&($2)-&89.3.5)(5I=$ )$ 3027T0'5I$ -&**.'%$ 20,5+$ &'-,(&$ */)*$ -,6-&O,&'*$ 2)55-$ *0$ */&$ -,6T-I-*&3$ 4.55$ 2),-&$ .*$ *0$ */(04$ )'&F2&1*.0'=$0($/)'%$4.*/0,*$(&-10'+.'%=$0($(&*,('$',55$&*28$D/,-$.*$.-$10--.65&$*0$+&J&501$)'+$*&-*$25.&'*$6&/)J.0(-$<0()55$(&)5.-*.2$<),5*$20'+.*.0'-$.'$6)27T&'+$-,6T-I-*&3-$)-$4&55$)-$<0($*/&.($&F1&2*&+$(&-10'-&-8$U.*/0,*$-,2/$)$-.315&)'+$ <5&F.65&$ 3027$ -I-*&3=$ *&-*.'%$ &)2/$ 0<$ */&-&$ -.*,)*.0'-$ 3)I$ 6&$ *00$ 5)60(.0,-$ <0($ */&3$ *0$ 6&$ %.J&'$ 1(01&(20'-.+&()*.0'8

>.*$*+3%8(3%#$.*+3#L$3027$ +)*)6)-&$ 06[&2*b-$ -)J&Q1&(-0'$ :$ !&(-0'R$3&*/0+$3)I$ '0*$ 20'*).'$3,2/$ Q.<$ )'IR$ .315&3&'*)*.0'$ 20+&8$ M*3.%/*$0($3.%/*$'0*$2/&27$*/&$&F.-*&'2&$)'+$1&(/)1-$*/&$J)5.+.*I$0<$*/&$!&(-0'$06[&2*$1)--&+$.'$<0($-)J.'%$Q-&&$<)7&J-8$3027$+.-2,--.0'$)60J&R=$6,*$6&I0'+$*/)*$*/&(&$3.%/*$6&$'0$0*/&($.315&3&'*)*.0'8D/.-$.-$)$3.--&+$0110(*,'.*I8$D/&$3027$3&*/0+$20,5+$)++$)'$&'*(I$*0$)$1,65.2$50%$-*(.'%8$D/&$&'*(I$'&&+$6&$'0$30(&*/)'$]!&(-0'$-)J&+]=GdH$0($.*$3)I$.'25,+&$-03&$+&*).5-$<(03$*/&$1&(-0'$06[&2*$.'-*)'2&=$-,2/$)-$)$')3&$0($M"8$M<$*/&*&-*$ 20+&$ )5-0$ 2/&27-$ */&$ <.')5$ 20'*&'*-$ 0<$ */&$ 50%$ -*(.'%$ )<*&($ J)(.0,-$ -&(.&-$ 0<$ 01&()*.0'-$ .'J05J.'%$ */&$ 3027+)*)6)-&$ */&'$ .*$ .-$ 10--.65&$ *0$ J&(.<I$ */)*$ .'$ &)2/$ 2)-&$ &F)2*5I$ */&$ &F1&2*&+$ ',36&($ 0<$ +)*)6)-&$ -)J&-$ /)J&$ 6&&'1&(<0(3&+8$D/.-$2)'$<.'+$0*/&(4.-&$.'J.-.65&$1&(<0(3)'2&T-)11.'%$6,%-=$<0($&F)315&=$4/&(&$)$+&J&501&(=$'&(J0,-$0<50-.'%$+)*)=$/)-$20+&+$(&1&)*&+$2)55-$*0$-)J&QR$4/&(&$[,-*$0'&$40,5+$/)J&$-,<<.2&+8

9#"%*+%$"#$21.*-"+%1"-"8(5)"+$!(0%()33&(-$40(7.'%$4.*/$ */&$ *&-*T+(.J&'$ +&J&5013&'*$ QD""R$3&*/0+$3)7&$ ,-&$ 0<$3027$ 06[&2*-$4/&'$4(.*.'%-0<*4)(&8$Y027$06[&2*-$3&&*$*/&$.'*&(<)2&$(&O,.(&3&'*-$0<=$)'+$-*)'+$.'$<0(=$30(&$20315&F$(&)5$0'&-X$*/,-$*/&I$)55041(0%()33&(-$ *0$ 4(.*&$ )'+$ ,'.*T*&-*$ <,'2*.0')5.*I$ .'$ 0'&$ )(&)$ 4.*/0,*$ )2*,)55I$ 2)55.'%$ 20315&F$ ,'+&(5I.'%$ 0(2055)60()*.'%$ 25)--&-8G?H$C-.'%$3027$ 06[&2*-$ )5504-$ +&J&501&(-$ *0$ <02,-$ */&.($ *&-*-$ 0'$ */&$ 6&/)J.0($ 0<$ */&$ -I-*&3,'+&($ *&-*$ Q9CDR$ 4.*/0,*$ 40((I.'%$ )60,*$ .*-$ +&1&'+&'2.&-8$ #0($ &F)315&=$ *&-*.'%$ )$ 20315&F$ )5%0(.*/3$ 6)-&+$ 0'3,5*.15&$06[&2*-$6&.'%$.'$1)(*.2,5)($-*)*&-$2)'$6&$25&)(5I$&F1(&--&+$,-.'%$3027$06[&2*-$.'$15)2&$0<$(&)5$06[&2*-8L1)(*$ <(03$ 20315&F.*I$ .--,&-$ )'+$ */&$ 6&'&<.*-$ %).'&+$ <(03$ */.-$ -&1)()*.0'$ 0<$ 20'2&('-=$ */&(&$ )(&$ 1()2*.2)5$ -1&&+.--,&-$.'J05J&+8$"&J&501.'%$)$(&)5.-*.2$1.&2&$0<$-0<*4)(&$,-.'%$D""$3)I$&)-.5I$.'J05J&$-&J&()5$/,'+(&+$,'.*$*&-*-8$M<3)'I$0<$*/&-&$.'+,2&$2033,'.2)*.0'$4.*/$+)*)6)-&-=$4&6$-&(J.2&-$)'+$0*/&($0,*T0<T1(02&--$0($'&*40(7&+$-I-*&3-=*/&'$*/&$-,.*&$0<$,'.*$*&-*-$4.55$O,.275I$6&203&$*00$-504$*0$6&$(,'$(&%,5)(5I8$D/.-$.'$*,('$5&)+-$*0$6)+$/)6.*-$)'+$)(&5,2*)'2&$6I$*/&$+&J&501&($*0$3).'*).'$*/&$6)-.2$*&'&*-$0<$D""8U/&'$3027$06[&2*-$)(&$(&15)2&+$6I$(&)5$0'&-$*/&'$*/&$&'+T*0T&'+$<,'2*.0')5.*I$4.55$'&&+$<,(*/&($*&-*.'%8$D/&-&$4.556&$.'*&%()*.0'$*&-*-$()*/&($*/)'$,'.*$*&-*-8

E*)*$&$*(+#D/&$ ,-&$ 0<$3027$ 06[&2*-$ 2)'$ 250-&5I$ 20,15&$ */&$ ,'.*$ *&-*-$ *0$ */&$ )2*,)5$ .315&3&'*)*.0'$ 0<$ */&$ 20+&$ */)*$ .-$ 6&.'%$*&-*&+8$#0($&F)315&=$3)'I$3027$06[&2*$<()3&40(7-$)5504$*/&$+&J&501&($*0$-1&2.<I$*/&$0(+&($0<$)'+$',36&($0<$*.3&-$*/)*$ */&$ 3&*/0+-$ 0'$ )$ 3027$ 06[&2*$ )(&$ .'J07&+X$ -,6-&O,&'*$ (&<)2*0(.'%$ 0<$ */&$ 20+&$ */)*$ .-$ 6&.'%$ *&-*&+$ 20,5+$*/&(&<0(&$2),-&$*/&$*&-*$*0$<).5$&J&'$*/0,%/$*/&$3&*/0+$-*.55$06&I-$*/&$20'*()2*$0<$*/&$1(&J.0,-$.315&3&'*)*.0'8$D/.-$.55,-*()*&-$*/)*$,'.*$*&-*-$-/0,5+$*&-*$)$3&*/0+b-$&F*&(')5$6&/)J.0($()*/&($*/)'$.*-$.'*&(')5$.315&3&'*)*.0'8$NJ&(T,-&$0<$3027$06[&2*-$)-$1)(*$0<$)$-,.*&$0<$,'.*$*&-*-$2)'$(&-,5*$.'$)$+()3)*.2$.'2(&)-&$.'$*/&$)30,'*$0<$3).'*&')'2&$*/)*$'&&+-

Page 42: Test-Driven Development Wikipedia Collection

Y027$06[&2* d@

*0$ 6&$ 1&(<0(3&+$ 0'$ */&$ *&-*-$ */&3-&5J&-$ +,(.'%$ -I-*&3$ &J05,*.0'$ )-$ (&<)2*0(.'%$ *)7&-$ 15)2&8$ D/&$ .31(01&(3).'*&')'2&$0<$-,2/$*&-*-$+,(.'%$&J05,*.0'$20,5+$)5504$6,%-$ *0$6&$3.--&+$ */)*$40,5+$0*/&(4.-&$6&$2),%/*$6I$,'.**&-*-$*/)*$,-&$.'-*)'2&-$0<$(&)5$25)--&-8$E0'J&(-&5I=$-.315I$3027.'%$0'&$3&*/0+$3.%/*$(&O,.(&$<)($5&--$20'<.%,()*.0'*/)'$-&**.'%$,1$)'$&'*.(&$(&)5$25)--$)'+$*/&(&<0(&$(&+,2&$3).'*&')'2&$'&&+-8Y027$06[&2*-$/)J&$*0$)22,()*&5I$30+&5$*/&$6&/)J.0($0<$*/&$06[&2*$*/&I$)(&$3027.'%=$4/.2/$2)'$6&$+.<<.2,5*$*0$)2/.&J&.<$ */&$ 06[&2*$ 6&.'%$3027&+$ 203&-$ <(03$ )'0*/&($ +&J&501&($ 0($ 1(0[&2*$ 0($ .<$ .*$ /)-'b*$ &J&'$ 6&&'$4(.**&'$ I&*8$ M<$ */&6&/)J.0($.-'b*$30+&5&+$20((&2*5I$*/&'$*/&$,'.*$*&-*-$3)I$(&%.-*&($)$1)--$&J&'$*/0,%/$)$<).5,(&$40,5+$022,($)*$(,'$*.3&,'+&($*/&$-)3&$20'+.*.0'-$*/)*$*/&$,'.*$*&-*$.-$&F&(2.-.'%=$*/,-$(&'+&(.'%$*/&$,'.*$*&-*$.')22,()*&8GhH

G""%&8#(P L6-*()2*$3&*/0+P ",33I$20+&P i.-*$0<$3027$06[&2*$<()3&40(7-P Z)32(&-*P Y&*/0+$-*,6P D&-*$"0,65&

IJ$".+&8%8*+@#P D.3$Y)27.''0'$Qf$9&1*&36&($>@@gR8$]L$^(.&<$Z.-*0(I$0<$Y027$N6[&2*-]$GjH8$Y02706[&2*-8203;8P 3027-$J-$-*,6-$6I$(0I$0-/&(0J&$GfH

P 2/)'%.'%$*&(3-$<(03$3027.'%$*0$.-05)*.0'$<()3&40(7-$GgH

P )$1055$0'$3027.'%$<()3&40(7-$,-)%&$.'$8'&*$GA@H

P M'*&()2*.0'$D&-*.'%$4.*/$*/&$DI1&3027$M-05)*0($Y027.'%$<()3&40(7$GAAH

P S(&)*$V)J)$3027$<()3&40(7-$2031)(.-0'$)(*.25&:$V)J)$3027$<()3&40(7$2031)(.-0'$GA>H

P D&-*$"0,65&-$GABH:$)$-&2*.0'$0<$)$6007$0'$,'.*$*&-*.'%$1)**&('-8P L55$)60,*$3027$06[&2*-r$!0(*)5$20'2&('.'%$3027$06[&2*-$GAdH

P Y027$\05&-=$'0*$N6[&2*-$GA?H=$)$1)1&($0'$*/&$*&2/'.O,&$*/)*$4)-$1(&-&'*&+$)*$NN!9iL$>@@d8P C-.'%$3027$06[&2*-$<0($20315&F$,'.*$*&-*-$GAhH$M^Y$+&J&501&(U0(7-P C'.*$*&-*.'%$4.*/$3027$06[&2*-$GAjH$M^Y$+&J&501&(U0(7-P C-.'%$Y027$N6[&2*-$4.*/$D&-*$"(.J&'$"&J&5013&'*$GAfH

P Y027$N6[&2*$!)**&('-$)*$Z.55-.+&$GAgH$Y027$N6[&2*$"&-.%'$!)**&('-P Y027-$L(&'b*$9*,6-$G>@H$QY)(*.'$#045&(R$L(*.25&$)60,*$+&J&501.'%$*&-*-$4.*/$Y027$06[&2*-8$M+&'*.<.&-$)'+

2031)(&-$*/&$]25)--.2)5]$)'+$]3027.-*]$-2/005-$0<$*&-*.'%8$D0,2/&-$0'$10.'*-$)60,*$*/&$.31)2*$0'$+&-.%'$)'+3).'*&')'2&8

P Y027.'%$*/&$_36&++&+$U0(5+$G>AH$!)1&($)'+$-)315&$1(0[&2*$20'2&('&+$4.*/$)+)1*.'%$3027.'%$)'+$!(&-&'*&(#.(-*$<0($&36&++&+$-0<*4)(&$+&J&5013&'*8

P 9,(J.J.'%$Y027$L6,-&$GAjH$!.*<)55-$0<$0J&(,-&$0<$3027-$)'+$)+J.2&$<0($)J0.+.'%$*/&3P NJ&(5I$Y027&+$G>>H$U0(+-$0<$)+J.2&$<0($,-.'%$3027-P "0'b*$3027$.'<()-*(,2*,(&$G>BH

P \&-10'-.6.5.*I$"(.J&'$"&-.%'$4.*/$Y027$N6[&2*-$G>dH

P Y027$<()3&40(7$<0($Y.2(0-0<*$"I')3.2-$Lw$>@@g$G>?H

P M'*&()2*.0'$^)-&+$D&-*.'%$4.*/$\/.'0$Y027-$G>hH

P C'.*$D&-*.'%$4.*/$Y027$N6[&2*-$J.)$Y027^0F$G>jH

Page 43: Test-Driven Development Wikipedia Collection

Y027$06[&2* dA

H";"."+7"#GAH #&)*/&(-=$Y.2/)&5$Q>@@?R8$]9&'-.'%$)'+$-&1)()*.0']8$F"&G*.2('44'8+*:'0I()*+,(0'2%8I(8"6'8$WV:$!(&'*.2&$Z)558$18k>B$&*$-&O8

M9^Wk@TABTAAjj@?T>8G>H N-/&(0J&=$\0I$Q>@@gR8$]M'*&()2*.0'$*&-*.'%$4.*/$3027$06[&2*-$&*$-&O]8$>,'(%&+("4(/.*+(+'1+*.28$Y)''.'%8$M9^WkgjfTAgBBgff>jh8GBH D/&-&$&F)315&-$,-&$)$'03&'25)*,(&$*/)*$.-$-.3.5)($*0$*/)*$,-&+$.'$C'.<.&+$Y0+&5.'%$i)'%,)%&GdH ^&27=$c&'*$Q>@@BR8$>'1+H7&*:'.(7':'0"$#'.+(<I(JK%#$0'8$^0-*0':$L++.-0'$U&-5&I8$118kAdh5j8$M9^Wk@TB>ATAdh?BT@8G?H ^&27=$c&'*$Q>@@BR8$>'1+H7&*:'.(7':'0"$#'.+(<I(JK%#$0'8$^0-*0':$L++.-0'$U&-5&I8$118kAdd5?8$M9^Wk@TB>ATAdh?BT@8GhH M'V)J)8203$Q/**1:;$;$4448$0'[)J)8$203;$1,6;$);$0'[)J);$>@@d;$@>;$AA;$3027-8$/*35oL11(0)2/&-R$*0$Y027.'%${$Nb\&.55I$Y&+.)GjH /**1:;$;$4448$302706[&2*-8$203;$>@@g;$@g;$6(.&<T/.-*0(IT0<T3027T06[&2*-8$/*35GfH /**1:;$;$4&650%-8$)-18$'&*;$(0-/&(0J&;$)(2/.J&;$>@@j;$@g;$Ah;$3027-T)'+T-*,6-T*/&T+.<<&(&'2&T.-T.'T*/&T<504T0<T.'<0(3)*.0'8$)-1FGgH /**1:;$;$+&J5.2.08$,-;$650%-;$+&(.7p4/.**)7&(;$)(2/.J&;$>@@f;$A>;$@g;$2/)'%.'%T*&(3-T<(03T3027.'%T<()3&40(7T*0T.-05)*.0'T<()3&40(78$)-1FGA@H /**1:;$;$4&650%-8$)-18$'&*;$(0-/&(0J&;$)(2/.J&;$>@@g;$@g;$B@;$1055T4/.2/T3027.'%T.-05)*.0'T<()3&40(7T+0TI0,T,-&8$)-1FGAAH /**1:;$;$*I1&30278$0(%;$%&**.'%T-*)(*&+T-*&1TAT-&*;GA>H /**1:;$;$4448$-.K0J10.'*8$203;$>@@g;$@B;$[)J)T3027T<()3&40(7-T2031)(.-0'8$/*35GABH /**1:;$;$F,'.*1)**&('-8$203;$D&-*s>@"0,65&8$/*35GAdH /**1:;$;$4448$302706[&2*-8$203GA?H /**1:;$;$4448$[30278$0(%;$001-5)>@@d8$1+<GAhH /**1:;$;$444TA>f8$.638$203;$+&J&501&(40(7-;$()*.0')5;$5.6()(I;$02*@h;$1055.2&;$.'+&F8$/*35GAjH /**1:;$;$4448$.638$203;$+&J&501&(40(7-;$5.6()(I;$[T3027*&-*8$/*35GAfH /**1:;$;$4448$*/&-&(J&(-.+&8$203;$**;$)(*.25&-;$)(*.25&8$*--l5mVY027D&-*"(.J&'"&JGAgH /**1:;$;$/.55-.+&8$'&*;$1501;$1501>@@B;$!)1&(-;$^(04'T3027T06[&2*-8$1+<G>@H /**1:;$;$3)(*.'<045&(8$203;$)(*.25&-;$3027-L(&'*9*,6-8$/*35G>AH /**1:;$;$4448$)*03.206[&2*8$203;$1)%&-;$_36&++&+y$90<*4)(&oY027.'%_36&++&+U0(5+G>>H /**1:;$;$<.-/60458$1)-*.2/&8$0(%;$>@@B;$A>;$Ah;$0J&(5Ip3027&+;G>BH /**1:;$;$4448$/)(,7.K)&30'8$203;$>@@B;$AA;$+0'T3027T.'<()-*(,2*,(&8$/*35G>dH /**1:;$;$4448$3&*/0+-)'+*005-8$203;$)(2/.J&;$)(2/.J&8$1/1l.+mg@G>?H /**1:;$;$)F3027-8$20+&15&F8$203;G>hH /**1:;$;$4448$*&-*.'%*J8$203;$>@@g;$@f;$>f;$.'*&()2*.0'T6)-&+T*&-*.'%T4.*/T(/.'0T3027-;G>jH /**1:;$;$650%8$205+60F8$0(%;$10-*8$2<3;$,'.*T*&-*.'%T4.*/T3027T06[&2*-T)31T302760F

Page 44: Test-Driven Development Wikipedia Collection

9&1)()*.0'$0<$20'2&('- d>

G"5&.&$*(+%(;%7(+7".+#M'$2031,*&($ -2.&'2&=$#"5&.&$*(+%(;%7(+7".+#% QG(0R$ .-$ */&$1(02&--$0<$ -&1)()*.'%$)$2031,*&($1(0%()3$ .'*0$+.-*.'2*<&)*,(&-$*/)*$0J&(5)1$.'$<,'2*.0')5.*I$)-$5.**5&$)-$10--.65&8$L$20'2&('$.-$)'I$1.&2&$0<$.'*&(&-*$0($<02,-$.'$)$1(0%()38DI1.2)55I=$ 20'2&('-$ )(&$ -I'0'I30,-$ 4.*/$ <&)*,(&-$ 0($ 6&/)J.0(-8$ !(0%(&--$ *04)(+-$ 90E$ .-$ *()+.*.0')55I$ )2/.&J&+*/(0,%/$30+,5)(.*I$0<$1(0%()33.'%$)'+$&'2)1-,5)*.0'$Q0($]*()'-1)(&'2I]$0<$01&()*.0'R=$4.*/$*/&$/&51$0<$.'<0(3)*.0'/.+.'%8$i)I&(&+$+&-.%'-$ .'$ .'<0(3)*.0'$ -I-*&3-$ )(&$ )5-0$ 0<*&'$ 6)-&+$0'$ -&1)()*.0'$0<$ 20'2&('-$ Q&8%8=$ 1(&-&'*)*.0'5)I&(=$6,-.'&--$50%.2$5)I&(=$+)*)$)22&--$5)I&(=$+)*)6)-&$5)I&(R8

:)58")"+$&$*(+L55$ 1(0%()33.'%$ 1)()+.%3-$ ).+$ +&J&501&(-$ .'$ */&$ 1(02&--$ 0<$ .31(0J.'%$ 90E8$ #0($ &F)315&=$ 06[&2*T0(.&'*&+1(0%()33.'%$5)'%,)%&-$-,2/$)-$"&51/.=$Eyy=$V)J)=$)'+$Eo$2)'$-&1)()*&$20'2&('-$.'*0$06[&2*-=$)'+$)$+&-.%'$1)**&('5.7&$Y`E$2)'$-&1)()*&$20'*&'*$<(03$1(&-&'*)*.0'$)'+$+)*)T1(02&--.'%$Q30+&5R$<(03$20'*&'*8$9&(J.2&T0(.&'*&+$+&-.%'2)'$-&1)()*&$20'2&('-$.'*0$-&(J.2&-8$!(02&+,()5$1(0%()33.'%$5)'%,)%&-$-,2/$)-$E$)'+$!)-2)5$2)'$-&1)()*&$20'2&('-.'*0$1(02&+,(&-8$L-1&2*T0(.&'*&+$1(0%()33.'%$5)'%,)%&-$2)'$-&1)()*&$20'2&('-$.'*0$)-1&2*-$)'+$06[&2*-89&1)()*.0'$ 0<$ 20'2&('-$ .-$ )'$ .310(*)'*$ +&-.%'$ 1(.'2.15&$ .'$ 3)'I$ 0*/&($ )(&)-$ )-$ 4&55=$ -,2/$ )-$ ,(6)'$ 15)''.'%=)(2/.*&2*,(&$)'+$.'<0(3)*.0'$+&-.%'8$D/&$%0)5$.-$*0$+&-.%'$-I-*&3-$-0$*/)*$<,'2*.0'-$2)'$6&$01*.3.K&+$.'+&1&'+&'*5I0<$0*/&($ <,'2*.0'-=$-0$ */)*$ <).5,(&$0<$0'&$<,'2*.0'$+0&-$'0*$2),-&$0*/&($ <,'2*.0'-$ *0$ <).5=$)'+$ .'$%&'&()5$ *0$3)7&$ .*&)-.&($ *0$ ,'+&(-*)'+=$ +&-.%'$ )'+$ 3)')%&$ 20315&F$ .'*&(+&1&'+&'*$ -I-*&3-8$ E0330'$ &F)315&-$ .'25,+&$ ,-.'%20((.+0(-$ *0$ 20''&2*$ (003-$ ()*/&($ */)'$/)J.'%$ (003-$01&'$+.(&2*5I$ .'*0$ &)2/$0*/&(=$ )'+$7&&1.'%$ */&$ -*0J&$0'$0'&2.(2,.*$)'+$*/&$5.%/*-$0'$)'0*/&(8

,.*3*+D/&$ *&(3$ 1'$%&%+*".( "4( 8".8'&.1(4)-$ 1(06)65I$ 20.'&+$ 6I$ _+-%&($U8$".[7-*()$ .'$ /.-$ Agjd$ 1)1&($ ]N'$ */&$ (05&$ 0<-2.&'*.<.2$*/0,%/*]GAH$8

i&*$3&$*(I$*0$&F15).'$*0$I0,=$4/)*$*0$3I$*)-*&$.-$2/)()2*&(.-*.2$<0($)55$.'*&55.%&'*$*/.'7.'%8$M*$.-=$*/)*$0'&$.-4.55.'%$ *0$ -*,+I$ .'$ +&1*/$ )'$ )-1&2*$ 0<$ 0'&b-$ -,6[&2*$ 3)**&($ .'$ .-05)*.0'$ <0($ */&$ -)7&$ 0<$ .*-$ 04'20'-.-*&'2I=$)55$*/&$*.3&$7'04.'%$*/)*$0'&$.-$022,1I.'%$0'&-&5<$0'5I$4.*/$0'&$0<$*/&$)-1&2*-8$U&$7'04*/)*$)$1(0%()3$3,-*$6&$20((&2*$)'+$4&$2)'$-*,+I$.*$<(03$*/)*$J.&410.'*$0'5IX$4&$)5-0$7'04$*/)*$.*$-/0,5+6&$&<<.2.&'*$)'+$4&$2)'$-*,+I$.*-$&<<.2.&'2I$0'$)'0*/&($+)I=$-0$*0$-1&)78$M'$)'0*/&($300+$4&$3)I$)-70,(-&5J&-$4/&*/&(=$)'+$.<$-0:$4/I=$*/&$1(0%()3$.-$+&-.()65&8$^,*$'0*/.'%$.-$%).'&+$TT0'$*/&$20'*()(IrTT$6I*)275.'%$ */&-&$J)(.0,-$ )-1&2*-$ -.3,5*)'&0,-5I8$ M*$ .-$4/)*$ M$ -03&*.3&-$/)J&$ 2)55&+$[$6"% #"5&.&$*(+%(;7(+7".+#[=$ 4/.2/=$ &J&'$ .<$ '0*$ 1&(<&2*5I$ 10--.65&=$ .-$ I&*$ */&$ 0'5I$ )J).5)65&$ *&2/'.O,&$ <0($ &<<&2*.J&0(+&(.'%$0<$0'&b-$*/0,%/*-=$*/)*$M$7'04$0<8$D/.-$.-$4/)*$M$3&)'$6I$]<02,-.'%$0'&b-$)**&'*.0'$,10'$-03&)-1&2*]:$ .*$ +0&-$ '0*$3&)'$ .%'0(.'%$ */&$ 0*/&($ )-1&2*-=$ .*$ .-$ [,-*$ +0.'%$ [,-*.2&$ *0$ */&$ <)2*$ */)*$ <(03$ */.-)-1&2*b-$10.'*$0<$J.&4=$*/&$0*/&($.-$.((&5&J)'*8$M*$.-$6&.'%$0'&T$)'+$3,5*.15&T*()27$3.'+&+$-.3,5*)'&0,-5I8

#.<*&&'$I&)(-$5)*&(=$.*$4)-$&J.+&'*$*/&$*&(3$G"5&.&$*(+%(;%0(+7".+#%4)-$6&203.'%$)'$)22&1*&+$.+&)8$M'$Agfg=$E/(.-\&)+&$4(0*&$)$6007$*.*5&+$]_5&3&'*-$0<$#,'2*.0')5$!(0%()33.'%]$G>H$*/)*$+&-2(.6&-$-&1)()*.0'$0<$20'2&('-:

D/&$1(0%()33&($.-$/)J.'%$*0$+0$-&J&()5$*/.'%-$)*$*/&$-)3&$*.3&=$')3&5I=

,,=%,30#E:"C0,84@$,"#,$2,C0,E2'(5$03?

,,A%,2:O@7"#0,$40,E2'(5$@$"27,#0X507E"7O,"7$2,#'@!!,#$0(#?

,,Q%,2:O@7"#0,'0'2:),'@7@O0'07$,35:"7O,$40,E2'(5$@$"27%

\&)+&$20'*.',&-$*0$-)I=

Page 45: Test-Driven Development Wikipedia Collection

9&1)()*.0'$0<$20'2&('- dB

M+&)55I=$*/&$1(0%()33&($-/0,5+$6&$)65&$*0$20'2&'*()*&$0'$*/&$<.(-*$0<$*/&$*/(&&$*)-7-$Q+&-2(.6.'%$4/)*$.-$*0$6&2031,*&+R$4.*/0,*$ 6&.'%$ +.-*()2*&+$ 6I$ */&$ 0*/&($ *40=$30(&$ )+3.'.-*()*.J&=$ *)-7-8$E5&)(5I=$ )+3.'.-*()*.0'$ .-.310(*)'*$6,*$6I$-&1)()*.'%$.*$<(03$*/&$3).'$*)-7$4&$)(&$5.7&5I$*0$%&*$30(&$(&5.)65&$(&-,5*-$)'+$4&$2)'$&)-&$*/&1(0%()33.'%$1(065&3$6I$),*03)*.'%$3,2/$0<$*/&$)+3.'.-*()*.0'8D/&$-&1)()*.0'$0<$20'2&('-$/)-$0*/&($)+J)'*)%&-$)-$4&558$#0($&F)315&=$1(0%()3$1(0J.'%$6&203&-$3,2/$30(&<&)-.65&$ 4/&'$ +&*).5-$ 0<$ -&O,&'2.'%$ )'+$ 3&30(I$ 3)')%&3&'*$ )(&$ )6-&'*$ <(03$ */&$ 1(0%()38$ #,(*/&(30(&=+&-2(.1*.0'-$0<$4/)*$.-$*0$6&$2031,*&+$-/0,5+$6&$<(&&$0<$-,2/$+&*).5&+$-*&1T6IT-*&1$+&-2(.1*.0'-$0<$/04$*0$+0$.*.<$*/&I$)(&$*0$6&$&J)5,)*&+$4.*/$+.<<&(&'*$3)2/.'&$)(2/.*&2*,(&-8$9&O,&'2&-$0<$-3)55$2/)'%&-$*0$)$+)*)$06[&2*/&5+$ .'$ )$ -*0(&$ 3)I$ 6&$ )'$ .')11(01(.)*&$ +&-2(.1*.0'$ 0<$ /04$ *0$ 2031,*&$ -03&*/.'%$ 4/&'$ )$ /.%/5I$ 1)()55&53)2/.'&$.-$6&.'%$,-&+$4.*/$*/0,-)'+-$0<$1(02&--0(-$+.-*(.6,*&+$*/(0,%/0,*$*/&$3)2/.'&$)'+$502)5$()*/&($*/)'%506)5$-*0()%&$<)2.5.*.&-8L,*03)*.'%$*/&$)+3.'.-*()*.J&$)-1&2*-$3&)'-$*/)*$*/&$5)'%,)%&$.315&3&'*0($/)-$*0$+&)5$4.*/$*/&3=$6,*$/&;-/&/)-$ <)($ 30(&$ 0110(*,'.*I$ *0$ 3)7&$ ,-&$ 0<$ J&(I$ +.<<&(&'*$ 2031,*)*.0'$ 3&2/)'.-3-$ 4.*/$ +.<<&(&'*$ 3)2/.'&)(2/.*&2*,(&-8

IJ&)58"#9&1)()*.0'$0<$20'2&('-$.-$2(,2.)5$*0$*/&$+&-.%'$0<$*/&$M'*&('&*8$M'$*/&$M'*&('&*$!(0*0205$9,.*&$%(&)*$&<<0(*-$/)J&$6&&'3)+&$*0$-&1)()*&$20'2&('-$.'*0$4&55T+&<.'&+$5)I&(-8$D/.-$)5504-$1(0*0205$+&-.%'&(-$*0$<02,-$0'$*/&$20'2&('-$.'$0'&5)I&(=$)'+$ .%'0(&$ */&$0*/&($ 5)I&(-8$D/&$L115.2)*.0'$i)I&($1(0*0205$9YD!=$ <0($&F)315&=$ .-$20'2&('&+$)60,*$)55$ */&+&*).5-$0<$20'+,2*.'%$)'$&3).5$ -&--.0'$0J&($)$ (&5.)65&$ *()'-10(*$ -&(J.2&$ Q,-,)55I$DE!R=$6,*$'0*$ */&$ 5&)-*$20'2&('&+)60,*$/04$*/&$*()'-10(*$-&(J.2&$3)7&-$*/)*$-&(J.2&$(&5.)65&8$9.3.5)(5I=$DE!$.-$'0*$20'2&('&+$)60,*$*/&$(0,*.'%$0<$+)*)1)27&*-=$4/.2/$.-$/)'+5&+$)*$*/&$M'*&('&*$i)I&(8ZI1&(D&F*$Y)(7,1$i)'%,)%&$ QZDYiR$ )'+$ 2)-2)+.'%$ -*I5&$ -/&&*-$ QE99R$ )(&$ 5)'%,)%&-$ .'*&'+&+$ *0$ -&1)()*&$ -*I5&<(03$20'*&'*8$U/&(&$ZDYi$&5&3&'*-$+&<.'&$*/&$)6-*()2*$-*(,2*,(&$0<$)$+02,3&'*=$E99$+.(&2*.J&-$)(&$.'*&(1(&*&+$6I*/&$4&6$6(04-&($*0$(&'+&($*/0-&$&5&3&'*-$.'$J.-,)5$<0(38$M'$1()2*.2&=$0'&$3,-*$-03&*.3&-$)5*&($ZDYi$.'$0(+&($*006*).'$ */&$ +&-.(&+$ (&-,5*$ 4.*/$ E99=$ .'$ 1)(*$ 6&2),-&$ -*I5&$ )'+$ 20'*&'*$ )(&$ '0*$ 20315&*&5I$ 0(*/0%0')5.K&+$ 6I$ )'I&F.-*.'%$6(04-&($.315&3&'*)*.0'$0<$E99=$)'+$.'$1)(*$6&2),-&$E99$+0&-$'0*$)5504$0'&$*0$(&3)1$*/&$+02,3&'*$*(&&8D/.-$ 1)(*.2,5)($ 1(065&3$2)'$ 6&$ )J0.+&+$ 6I$ ,-.'%$wYi$ .'-*&)+$ 0<$ZDYi$)'+$w9iD$ .'-*&)+$ 0<$E99$ T$w9i$+0&-)5504$(&3)11.'%$*/&$wYi$*(&&$.'$)(6.*()(I$4)I-89,6[&2*T0(.&'*&+$1(0%()33.'%$)5504-$-&1)()*&$20'2&('-$*0$6&$)++(&--&+$)-$-&1)()*&$-0<*4)(&$20'-*(,2*-=$&)2/$0'$)'&O,)5$<00*.'%$4.*/$*/&$0*/&(-8$_)2/$20'2&('$1(0J.+&-$.*-$04'$25)--T-*(,2*,(&$.'*0$4/.2/$*/&$06[&2*-$.'$20330'$)(&0(%)'.K&+=$ )'+$ 20'*(.6,*&-$ -*)*&$ )'+$ 3&*/0+-$ *0$ */&$ 20310-.*&$ (&-,5*$ 4/&(&$ */&I$ 2,*$ )2(0--$ 0'&$ )'0*/&(8E0((&-10'+&'2&$ (,5&-$ +&-2(.6&$ /04$ */&$ 25)--&-$ )'+$3&*/0+-$ .'$ */&$ J)(.0,-$ 20'2&('-$ )(&$ (&5)*&+$ *0$ &)2/$ 0*/&($ )*10.'*-$ 4/&(&$ */&I$ .'*&()2*=$ )5504.'%$ 20310-.*&$ 6&/)J.0($ <0($ )$ 3&*/0+$ *0$ 6&$ +&(.J&+$ <(03$ -&J&()5$ 20'2&('-8Y,5*.T+.3&'-.0')5$9&1)()*.0'$0<$E0'2&('-$)5504-$*/&$)')5I-.-$)'+$20310-.*.0'$0<$20'2&('-$*0$6&$3)'.1,5)*&+$)-$)3,5*.T+.3&'-.0')5$ ]3)*(.F]$ .'$ 4/.2/$ &)2/$ 20'2&('$ 1(0J.+&-$ )$ +.3&'-.0'$ .'$ 4/.2/$ +.<<&(&'*$ 10.'*-$ 0<$ 2/0.2&$ )(&&',3&()*&+=$4.*/$*/&$2&55-$0<$*/&$3)*(.F$022,1.&+$6I$*/&$)11(01(.)*&$-0<*4)(&$)(*.<)2*-8L-1&2*T0(.&'*&+$1(0%()33.'%$)5504-$2(0--T2,**.'%$ 20'2&('-$ *0$6&$ )++(&--&+$ )-$ -&20'+)(I$ 20'2&('-8$#0($ &F)315&=30-*$ 1(0%()3-$ (&O,.(&$ -03&$ <0(3$ 0<$ -&2,(.*I$ )'+$ 50%%.'%8$ 9&2,(.*I$ )'+$ 50%%.'%$ )(&$ 0<*&'$ -&20'+)(I$ 20'2&('-=4/&(&)-$*/&$1(.3)(I$20'2&('$.-$0<*&'$0'$)220315.-/.'%$6,-.'&--$%0)5-8Y0-*$ 1(0[&2*$ 0(%)'.K)*.0'$ *)-7-$ )(&$ -&&'$ )-$ -&20'+)(I$ *)-7-8$ #0($ &F)315&=$ 6,.5+$ ),*03)*.0'$ .-$ )'$ )11(0)2/$ *0),*03)*.'%$ */&$ 1(02&--$ 0<$ 2031.5.'%$ -0,(2&$ 20+&$ .'*0$ 6.')(I$ 20+&8$ D/&$ 1(.3)(I$ %0)5-$ .'$ 6,.5+$ ),*03)*.0'$ )(&(&+,2.'%$*/&$(.-7$0<$/,3)'$&((0($)'+$-)J.'%$*.3&8

Page 46: Test-Driven Development Wikipedia Collection

9&1)()*.0'$0<$20'2&('- dd

G""%&8#(P L6-*()2*.0'$1(.'2.15&$Q1(0%()33.'%RP L-1&2*T0(.&'*&+$-0<*4)(&$+&J&5013&'*P E0'2&('$Q2031,*&($-2.&'2&RP E0(&$20'2&('P E(0--T2,**.'%$20'2&('P Z05.-3P Y0+,5)($+&-.%'P Y0+,5)($1(0%()33.'%P 9&1)()*.0'$0<$1(&-&'*)*.0'$)'+$20'*&'*P E0,15.'%$Q2031,*&($-2.&'2&R

IJ$".+&8%.";"."+7"#P D/&$L(*$0<$9&1)()*.0'$0<$E0'2&('-$GBH

P Y,5*.T".3&'-.0')5$9&1)()*.0'$0<$E0'2&('-$GdH

P DLN9L"$G?H

P D,*0(.)5$)'+$U0(7-/01$0'$L-1&2*TN(.&'*&+$!(0%()33.'%$)'+$9&1)()*.0'$0<$E0'2&('-$GhH

H";"."+7"#GAH ".[7-*()=$_+-%&($U8$QAgf>R8$]N'$*/&$(05&$0<$-2.&'*.<.2$*/0,%/*]$Q/**1:;$;$4448$2-8$,*&F)-8$&+,;$,-&(-;$_U";$*()'-2(.1*.0'-;$_U"@dFF;

_U"ddj8$/*35R8$.'$".[7-*()=$_+-%&($U88$='0'8+'6()&*+*.21(".(!"#$/+*.2;(5(9'&1".%0(9'&1$'8+*:'8$W&4$q0(7=$Wq=$C9L:$91(.'%&(T`&(5)%W&4$q0(7=$M'288$118kh@5hh8$M9^Wk@TBfjTg@h?>T?8

G>H \&)+&=$E/(.-$QAgfgR8$J0'#'.+1("4(O/.8+*".%0(9&"2&%##*.28$^0-*0'=$YL=$C9L:$L++.-0'TU&-5&I$i0'%3)'$!,65.-/.'%$E08=$M'288$118kh@@1)%&-8$M9^Wk@>@AA>gA?g8

GBH /**1:;$;$4448$)-1.(.'%2()<*-3)'8$203;$>@@f;$@A;$)(*T0<T-&1)()*.0'T0<T20'2&('-;GdH /**1:;$;$4448$(&-&)(2/8$.638$203;$/I1&(-1)2&;G?H /**1:;$;$*(&-&8$2-8$,*4&'*&8$'5;$*)0-)+;$-&1)()*.0'p0<p20'2&('-8$/*3GhH /**1:;$;$4448$20318$5)'2-8$)28$,7;$2031,*.'%;$,-&(-;$3)()-/;$)014->@@A;

Page 47: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'[&2*.0' d?

K"5"+1"+7D%*+V"7$*(+K"5"+1"+7D% *+V"7$*(+% QK:R$ .'$06[&2*T0(.&'*&+$2031,*&($1(0%()33.'%$ .-$)$+&-.%'$1)**&('$4.*/$)$20(&$1(.'2.15&$0<-&1)()*.'%$ 6&/)J.0($ <(03$ +&1&'+&'2I$ (&-05,*.0'8$ M'$ 0*/&($ 40(+-:$ )$ *&2/'.O,&$ <0($ +&20,15.'%$ /.%/5I$ +&1&'+&'*-0<*4)(&$20310'&'*-8U.*/.'$)$-0<*4)(&$)115.2)*.0'=$)$20'-,3&($20310'&'*$4/.2/$+&1&'+-$0'$)'0*/&($-&(J.2&$20310'&'*$40,5+$6&$/.%/5I20,15&+$.<$*/&$20'-,3&($20310'&'*$'&&+-$*0$2(&)*&$)'$.'-*)'2&$0<$*/&$-&(J.2&$20310'&'*=$-.'2&$)55$*/&$+&*).5-$0<$*/&2(&)*.0'$0<$*/&$-&(J.2&$4.55$'&&+$*0$6&$&F15.2.*$.'$*/&$20'-,3&($20310'&'*8$"&1&'+&'2I$.'[&2*.0'$40(7-$6I$)++.'%$)'&F*&(')5$+&1&'+&'2I$.'*0$*/&$20'-,3&($20310'&'*8*/)*$.-=$&F*&(')55I$.'[&2*.'%$)$(&<&(&'2&$*0$*/&$-&(J.2&$20310'&'*.'-.+&$*/&$20'-,3&($20310'&'*8"&1&'+&'2I$.'[&2*.0'$.-$)$-1&2.<.2$<0(3$0<$.'J&(-.0'$0<$20'*(05$4/&(&$*/&$20'2&('$6&.'%$.'J&(*&+$.-$*/&$1(02&--$0<06*).'.'%$ */&$ '&&+&+$ +&1&'+&'2I8$ D/&$ *&(3$4)-$ <.(-*$ 20.'&+$ 6I$Y)(*.'$ #045&($ *0$ +&-2(.6&$ */&$3&2/)'.-3$30(&25&)(5I8GAH

S&#*7#U.*/0,*$ */&$ 20'2&1*$ 0<$ +&1&'+&'2I$ .'[&2*.0'=$ )$ 20'-,3&($ 20310'&'*$4/0$ '&&+-$ )$ 1)(*.2,5)($ -&(J.2&$ .'$ 0(+&($ *0)220315.-/$)$2&(*).'$*)-7$4.55$+&1&'+$'0*$0'5I$0'$*/&$.'*&(<)2&$0<$*/&$-&(J.2&$6,*$)5-0$0'$*/&$+&*).5-$0<$)$1)(*.2,5)(.315&3&'*)*.0'$0<$*/&$-&(J.2&8$D/&$,-&($20310'&'*$40,5+$6&$(&-10'-.65&$<0($/)'+5.'%$*/&$5.<&T2I25&$0<$*/)*$-&(J.2&X*/.-$2031(.-&-:$2(&)*.'%$)'$.'-*)'2&=$01&'.'%$)'+$250-.'%$-*(&)3-=$+.-10-.'%$0<$,''&&+&+$06[&2*-=$&*28C-.'%$*/&$20'2&1*$0<$+&1&'+&'2I$.'[&2*.0'=$/04&J&(=$*/&$5.<&T2I25&$0<$)$-&(J.2&$.-$/)'+5&+$6I$)$+&1&'+&'2I$1(0J.+&(()*/&($*/)'$*/&$20'-,3&(8$D/&$+&1&'+&'2I$1(0J.+&($.-$)$*/.(+$20310'&'*$*/)*$5.'7-$*/&$20'-,3&($20310'&'*$)'+$*/&-&(J.2&$ 20310'&'*8$ D/&$ 20'-,3&($ 40,5+$ */,-$ 0'5I$ '&&+$ )$ (&<&(&'2&$ *0$ )'$ .315&3&'*)*.0'$ 0<$ */&$ -&(J.2&$ */)*$ .*'&&+&+$.'$0(+&($*0$)220315.-/$*/&$'&2&--)(I$*)-789,2/$)$1)**&('$ .'J05J&-$)*$ 5&)-*$ */(&&$&5&3&'*-:$ )$1"5"+1"+$%20'-,3&(=$ .*-$ -&(J.2&$1"5"+1"+7*"#%)'+$)'$ *+V"7$(.Q-03&*.3&-$ (&<&((&+$ *0$ )-$ )$ 5.(-*1".% 0($ 7(+$&*+".R8$ D/&$ +&1&'+&'*$ .-$ )$ 20'-,3&($ 20310'&'*$ */)*$ '&&+-$ *0)220315.-/$)$*)-7$.'$)$2031,*&($1(0%()38$M'$0(+&($*0$+0$-0=$.*$'&&+-$*/&$/&51$0<$J)(.0,-$-&(J.2&-$Q*/&$+&1&'+&'2.&-R*/)*$ &F&2,*&$ 2&(*).'$ -,6T*)-7-8$ D/&$ 1(0J.+&($ .-$ */&$ 20310'&'*$ */)*$ .-$ )65&$ *0$ 20310-&$ */&$ +&1&'+&'*$ )'+$ .*-+&1&'+&'2.&-$-0$*/)*$*/&I$)(&$(&)+I$*0$6&$,-&+=$4/.5&$)5-0$3)')%.'%$*/&-&$06[&2*-b$5.<&T2I25&-8$D/&$1(0J.+&($3)I$6&.315&3&'*&+=$<0($&F)315&=$)-$)$-&(J.2&$502)*0(=$)'$)6-*()2*$<)2*0(I=$)$<)2*0(I$3&*/0+$0($)$30(&$20315&F$)6-*()2*.0'-,2/$)-$)$<()3&40(78D/&$<05504.'%$.-$)'$&F)315&8$L$2)($Q*/&$20'-,3&(R$+&1&'+-$,10'$)'$&'%.'&$Q*/&$+&1&'+&'2IR$.'$0(+&($*0$30J&8$D/&2)(b-$&'%.'&$.-$3)+&$6I$)'$),*03)7&($Q*/&$+&1&'+&'2I$1(0J.+&(R8$D/&$2)($+0&-$'0*$7'04$/04$*0$.'-*)55$)'$&'%.'&$.'*0.*-&5<=$6,*$.*$'&&+-$)'$&'%.'&$.'$0(+&($*0$30J&8$D/&$),*03)7&($.'-*)55-$)'$&'%.'&$.'*0$*/&$2)($)'+$*/&$2)($,*.5.K&-$*/&&'%.'&$*0$30J&8U/&'$ */&$ 20'2&1*$ 0<$ +&1&'+&'2I$ .'[&2*.0'$ .-$ ,-&+=$ .*$ +&20,15&-$ /.%/T5&J&5$30+,5&-$ <(03$ 504T5&J&5$ -&(J.2&-8$D/&(&-,5*$.-$2)55&+$*/&$+&1&'+&'2I$.'J&(-.0'$1(.'2.15&8

Page 48: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'[&2*.0' dh

0(1"%*88'#$.&$*(+%'#*+3%\&-&C-.'%$ */&$ 2)(;&'%.'&$ &F)315&$ )60J&$ 3&'*.0'&+=$ */&$ <05504.'%$ V)J)$ &F)315&-$ -/04$ /04$ 20,15&+$ +&1&'+&'2.&-Q3)',)55IT.'[&2*&+$+&1&'+&'2.&-R$)'+$<()3&40(7T.'[&2*&+$+&1&'+&'2.&-$)(&$*I1.2)55I$-*)%&+8

!"#$%&,%-*,38'&,,;-<%-,,-

,,,,!"#$%&,L!2@$,O0$&7O"70YZJ*+?

,,,,!"#$%&,12"3,#0$F50!H27#5'($"27Y@$0*L!2@$,L!28;7[@!!27#Z0:J"75$0+?

G

!"#$%&,%-*,38'&,,2'3,-

,,,,!"#$%&,L!2@$,O0$N(003;7JZ\*+?

,,,,!"#$%&,12"3,#0$Z03@!Z:0##5:0*L!2@$,(03@!Z:0##5:0;7Z2573#+?

G

Z*368D%7('58"1%1"5"+1"+7DD/&$<05504.'%$-/04-$)$20330'$)(()'%&3&'*$/*$6%+(%1"5"+1"+7D%*+V"7$*(+%&558*"1:

!"#$%&,&$'((,=,8'"$*;-<%-,9:!$,%:!$,:,-*(,&7O"70,-

,,,,!3%6'*,,L!2@$,07O"70YZJ,>,S?

,,,,

,,,,!"#$%&,L!2@$,O0$&7O"70YZJ*+,-

,,,,,,,,3,*"3-,07O"70YZJ?

,,,,G

,,,,!"#$%&,12"3,#0$F50!H27#5'($"27Y@$0*L!2@$,L!28;7[@!!27#Z0:J"75$0+,-

,,,,,,,,07O"70YZJ,>,%%%?

,,,,G

G

!"#$%&,&$'((,=,8'"$*2'39:!$,%:!$,:,-*(,H@:,-

,,,,!3%6'*,,&7O"70,07O"70,>,-,.,]0L@5!$&7O"70;'(!*+?

,,,,!"#$%&,L!2@$,O0$N(003;7JZ\*+,-

,,,,,,,,3,*"3-,07O"70%O0$&7O"70YZJ*+,^,%%%?

,,,,G

,,,,!"#$%&,12"3,#0$Z03@!Z:0##5:0*L!2@$,(03@!Z:0##5:0;7Z2573#+,-

,,,,,,,,07O"70%#0$F50!H27#5'($"27Y@$0*%%%+?

,,,,G

G

!"#$%&,&$'((,>?7!!$%&'*%1-,-

,,,,!"#$%&,(*'*%&,12"3,'@"7*N$:"7O_`,@:O#+,-

,,,,,,,,H@:,E@:,>,-,.,]0L@5!$H@:;'(!*+?

,,,,,,,,E@:%#0$Z03@!Z:0##5:0*a+?

,,,,,,,,L!2@$,#(003,>,E@:%O0$N(003;7JZ\*+?

Page 49: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'[&2*.0' dj

,,,,G

G

M'$*/&$)60J&$&F)315&=$*/&$E)($25)--$2(&)*&-$)'$.'-*)'2&$0<$)'$_'%.'&$.315&3&'*)*.0'$.'$0(+&($*0$1&(<0(3$01&()*.0'-0'$ */&$ 2)(8$ Z&'2&=$ .*$ .-$ 20'-.+&(&+$ /.%/5I$ 20,15&+$ 6&2),-&$ .*$ 20,15&-$ )$ 2)($ +.(&2*5I$ 4.*/$ )$ 1)(*.2,5)($ &'%.'&.315&3&'*)*.0'8M'$2)-&-$4/&(&$*/&$"&<),5*_'%.'&M315$+&1&'+&'2I$.-$3)')%&+$0,*-.+&$0<$*/&$-201&$0<$*/&$E)($25)--=$ */&$E)($25)--3,-*$'0*$.'-*)'*.)*&$*/&$"&<),5*_'%.'&M315$+&1&'+&'2I8$M'-*&)+=$*/)*$+&1&'+&'2I$.-$.'[&2*&+$&F*&(')55I8

Y&+'&88D2*+V"7$"1%1"5"+1"+7D\&<)2*0(.'%$*/&$)60J&$&F)315&$*0$,-&$3)',)5$.'[&2*.0':

!"#$%&,&$'((,=,8'"$*2'39:!$,%:!$,:,-*(,H@:,-

,,,,!3%6'*,,&7O"70,07O"70?

,,,,!"#$%&,]0L@5!$H@:;'(!*&7O"70,07O"70;'(!+,-

,,,,,,,,07O"70,>,07O"70;'(!?

,,,,G

,,,,!"#$%&,L!2@$,O0$N(003;7JZ\*+,-

,,,,,,,,3,*"3-,07O"70%O0$&7O"70YZJ*+,^,%%%?

,,,,G

,,,,!"#$%&,12"3,#0$Z03@!Z:0##5:0*L!2@$,(03@!Z:0##5:0;7Z2573#+,-

,,,,,,,,07O"70%#0$F50!H27#5'($"27Y@$0*%%%+?

,,,,G

G

!"#$%&,&$'((,2'3@'&*13?,-

,,,,!"#$%&,(*'*%&,H@:,C5"!3H@:*+,-

,,,,,,,,3,*"3-,-,.,]0L@5!$H@:;'(!*-,.,]0L@5!$&7O"70;'(!*++?

,,,,G

G

!"#$%&,&$'((,>?7!!$%&'*%1-,-

,,,,!"#$%&,(*'*%&,12"3,'@"7*N$:"7O_`,@:O#+,-

,,,,,,,,H@:,E@:,>,H@:F@E$2:)%C5"!3H@:*+?

,,,,,,,,E@:%#0$Z03@!Z:0##5:0*a+?

,,,,,,,,L!2@$,#(003,>,E@:%O0$N(003;7JZ\*+?

,,,,G

G

M'$*/&$&F)315&$)60J&=$*/&$E)(#)2*0(I$25)--$)--&365&-$)$2)($)'+$)'$&'%.'&$*0%&*/&($6I$.'[&2*.'%$)$1)(*.2,5)($&'%.'&.315&3&'*)*.0'$.'*0$)$2)(8$D/.-$30J&-$*/&$+&1&'+&'2I$3)')%&3&'*$<(03$*/&$E)($25)--$.'*0$*/&$E)(#)2*0(I$25)--8$L-)$20'-&O,&'2&=$.<$*/&$E)($'&&+&+$*0$6&$)--&365&+$4.*/$)$+.<<&(&'*$_'%.'&$.315&3&'*)*.0'=$*/&$E)($20+&$40,5+$'0*$6&2/)'%&+8M'$)$30(&$(&)5.-*.2$-0<*4)(&$)115.2)*.0'=$*/.-$3)I$/)11&'$.<$)$'&4$J&(-.0'$0<$)$6)-&$)115.2)*.0'$.-$20'-*(,2*&+$4.*/$)+.<<&(&'*$ -&(J.2&$ .315&3&'*)*.0'8$ C-.'%$ <)2*0(.&-=$ 0'5I$ */&$ -&(J.2&$ 20+&$ )'+$ */&$ #)2*0(I$ 20+&$ 40,5+$ '&&+$ *0$ 6&

Page 50: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'[&2*.0' df

30+.<.&+=$6,*$'0*$*/&$20+&$0<$*/&$3,5*.15&$,-&(-$0<$*/&$-&(J.2&8Z04&J&(=$*/.-$-*.55$3)I$'0*$6&$&'0,%/$)6-*()2*.0'$<0($-03&$)115.2)*.0'-=$-.'2&$.'$)$(&)5.-*.2$)115.2)*.0'$*/&(&$40,5+6&$3,5*.15&$#)2*0(I$25)--&-$*0$2(&)*&$)'+$,1+)*&8

?.&)"/(.@2)&+&3"1%1"5"+1"+7D%*+V"7$*(+D/&(&$ )(&$ -&J&()5$ <()3&40(7-$ )J).5)65&$ */)*$ ),*03)*&$+&1&'+&'2I$3)')%&3&'*$6I$+&5&%)*.'%$ */&$3)')%&3&'*$0<+&1&'+&'2.&-8$DI1.2)55I=$*/.-$.-$)220315.-/&+$6I$)$E0'*).'&($,-.'%$wYi$0($]3&*)$+)*)]$+&<.'.*.0'-8$\&<)2*0(.'%$*/&)60J&$&F)315&$*0$,-&$)'$&F*&(')5$wYiT+&<.'.*.0'$<()3&40(7:

,,,,A(,36%&,B!1%-*,"3>IH@:b5"!30:N0:1"E0IC

,,,,,,,,A%-61D,B8'&*13?C

,,,,,,,,,,,,A&1-(*3"&*,E!@##>IH@:IC

,,,,,,,,,,,,,,,,A(,36%&,C]0L@5!$H@:;'(!AE(,36%&,C

,,,,,,,,,,,,,,,,A(,36%&,C]0L@5!$&7O"70;'(!AE(,36%&,C

,,,,,,,,,,,,AE&1-(*3"&*C

,,,,,,,,AE%-61D,B8'&*13?C

,,,,AE(,36%&,B!1%-*C

!++"A964&9&'/7/$2'"'2/".)21'"++!

!"#$%&,&$'((,>?7!!$%&'*%1-,-

,,,,!"#$%&,(*'*%&,12"3,'@"7*N$:"7O_`,@:O#+,-

,,,,,,,,N0:1"E0,#0:1"E0,>,

*N0:1"E0+]0(07307E)J@7@O0:%O0$*IH@:b5"!30:N0:1"E0I+?

,,,,,,,,H@:,E@:,>,*H@:+#0:1"E0%O0$N0:1"E0*H@:%E!@##+?

,,,,,,,,E@:%#0$Z03@!Z:0##5:0*a+?

,,,,,,,,L!2@$,#(003,>,E@:%O0$N(003;7JZ\*+?

,,,,G

G

M'$*/&$)60J&$&F)315&=$)$+&1&'+&'2I$.'[&2*.0'$-&(J.2&$.-$,-&+$*0$(&*(.&J&$)$E)(^,.5+&(9&(J.2&$-&(J.2&8$U/&'$)$E)($.-(&O,&-*&+=$*/&$-&(J.2&$(&*,('-$)'$)11(01(.)*&$.315&3&'*)*.0'$<0($60*/$*/&$2)($)'+$.*-$&'%.'&8L-$ */&(&$ )(&$ 3)'I$ 4)I-$ *0$ .315&3&'*$ +&1&'+&'2I$ .'[&2*.0'=$ 0'5I$ )$ -3)55$ -,6-&*$ 0<$ &F)315&-$ .-$ -/04'$ /&(&.'8"&1&'+&'2.&-$2)'$6&$(&%.-*&(&+=$60,'+=$502)*&+=$&F*&(')55I$.'[&2*&+=$&*28=$6I$3)'I$+.<<&(&'*$3&)'-8$Z&'2&=$30J.'%+&1&'+&'2I$3)')%&3&'*$<(03$0'&$30+,5&$ *0$)'0*/&($2)'$6&$)220315.-/&+$ .'$)$15&*/0()$0<$4)I-8$Z04&J&(=$ */&(&-/0,5+$ &F.-*$ )$ +&<.'.*&$ (&)-0'$ <0($30J.'%$ )$ +&1&'+&'2I$ )4)I$ <(03$ */&$06[&2*$ */)*$ '&&+-$ .*$ 6&2),-&$+0.'%$ -0$ 2)'20315.2)*&$*/&$20+&$/.&()(2/I$*0$-,2/$)'$&F*&'*$*/)*$.*-$,-)%&$)11&)(-$*0$6&$]3)%.2)5]8$#0($&F)315&=$-,110-&$)$U&620'*).'&($.-$.'.*.)5.K&+$4.*/$)'$)--02.)*.0'$6&*4&&'$*40$+&1&'+&'2.&-$)'+$*/)*$)$,-&($4/0$4)'*-$*0$,-&$0'&$0<$*/0-&+&1&'+&'2.&-$ .-$,')4)(&$0<$ */&$)--02.)*.0'8$D/&$,-&($40,5+$ */,-$'0*$6&$)65&$ *0$+&*&2*$ )'I$ 5.'7)%&$6&*4&&'$ */0-&+&1&'+&'2.&-$)'+$/&'2&$3.%/*$2),-&$+()-*.2$1(065&3-$6I$,-.'%$0'&$0<$*/0-&$+&1&'+&'2.&-$8

Page 51: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'[&2*.0' dg

S"+";*$#%&+1%1.&/T&7@#N'&$6&'&<.*$0<$,-.'%$*/&$+&1&'+&'2I$.'[&2*.0'$)11(0)2/$.-$*/&$(&+,2*.0'$0<$60.5&(15)*&$20+&$.'$*/&$)115.2)*.0'$06[&2*--.'2&$)55$40(7$*0$.'.*.)5.K&$0($-&*,1$+&1&'+&'2.&-$.-$/)'+5&+$6I$)$1(0J.+&($20310'&'*8G>H

L'0*/&($6&'&<.*$.-$*/)*$.*$0<<&(-$20'<.%,()*.0'$<5&F.6.5.*I$6&2),-&$)5*&(')*.J&$.315&3&'*)*.0'-$0<$)$%.J&'$-&(J.2&$2)'6&$,-&+$4.*/0,*$(&2031.5.'%$20+&8$D/.-$.-$,-&<,5$.'$,'.*$*&-*.'%$6&2),-&$.*$.-$&)-I$*0$.'[&2*$)$<)7&$.315&3&'*)*.0'$0<$)-&(J.2&$.'*0$*/&$06[&2*$6&.'%$*&-*&+$6I$2/)'%.'%$*/&$20'<.%,()*.0'$<.5&8N'&$ +()46)27$ .-$ */)*$ &F2&--.J&$ 0($ .')11(01(.)*&$ ,-&$ 0<$ +&1&'+&'2I$ .'[&2*.0'$ 2)'$ 3)7&$ )115.2)*.0'-$ 30(&20315.2)*&+=$ /)(+&($ *0$ ,'+&(-*)'+$ )'+$ 30(&$ +.<<.2,5*$ *0$ 30+.<I8$ E0+&$ */)*$ ,-&-$ +&1&'+&'2I$ .'[&2*.0'$ 2)'$ -&&3#%2*8%0( *0$-03&$+&J&501&(-=$-.'2&$ .'-*)'*.)*.0'$)'+$ .'.*.)5.K)*.0'$0<$06[&2*-$ .-$/)'+5&+$20315&*&5I$-&1)()*&5I$<(03*/&$ 20+&$ */)*$ ,-&-$ .*8$ D/.-$ -&1)()*.0'$ 2)'$ )5-0$ (&-,5*$ .'$ 1(065&3-$ */)*$ )(&$ /)(+$ *0$ +.)%'0-&8$ L++.*.0')55I=$ -03&+&1&'+&'2I$ .'[&2*.0'$ <()3&40(7-$3).'*).'$ J&(60-&$ 20'<.%,()*.0'$ <.5&-=$ (&O,.(.'%$ */)*$ )$ +&J&501&($ ,'+&(-*)'+$ */&20'<.%,()*.0'$)-$4&55$)-$*/&$20+&$.'$0(+&($*0$2/)'%&$.*8L'0*/&($+()46)27$.-$*/)*$-03&$M"_-$3.%/*$'0*$6&$)65&$*0$)22,()*&5I$)')5IK&$0($(&<)2*0($20+&$4/&'$20'<.%,()*.0'$.-].'J.-.65&]$ *0$ .*8$ 903&$ M"_-$ 3.*.%)*&$ */.-$ 1(065&3$ 6I$ 1(0J.+.'%$ &F15.2.*$ -,110(*$ <0($ J)(.0,-$ <()3&40(7-8L++.*.0')55I=$-03&$<()3&40(7-$1(0J.+&$20'<.%,()*.0'$,-.'%$*/&$1(0%()33.'%$5)'%,)%&$.*-&5<=$)5504.'%$(&<)2*0(.'%+.(&2*5I8$ N*/&($ <()3&40(7-=$ -,2/$ )-$ */&$ S(07$ 4&6$ <()3&40(7=$ .'*(0-1&2*$ */&$ 20+&$ )'+$ ,-&$ 20'J&'*.0'$ 0J&(20'<.%,()*.0'$)-$)'$)5*&(')*.J&$<0(3$0<$+&+,2.'%$20'<.%,()*.0'$.'<0(3)*.0'8$#0($&F)315&=$.<$)$Y0+&5$)'+$`.&4$25)--4&(&$.'$*/&$-)3&$30+,5&=$*/&'$)'$.'-*)'2&$0<$*/&$`.&4$4.55$6&$2(&)*&+$4.*/$*/&$)11(01(.)*&$Y0+&5$.'-*)'2&$1)--&+.'*0$*/&$20'-*(,2*0(8

0.*$*7*#)#L$2(.*.2.-3$0<$+&1&'+&'2I$.'[&2*.0'$.-$*/)*$.*$.-$-.315I$)$(&T6()'+.'%$0<$&F.-*.'%$06[&2*T0(.&'*&+$+&-.%'$20'2&1*-8$D/&&F)315&-$ *I1.2)55I$ 2.*&+$ Q.'25,+.'%$ */&$ 0'&$ )60J&R$ -.315I$ -/04$ /04$ *0$ <.F$ 6)+$ 20+&=$ '0*$ )$ '&4$ 1(0%()33.'%1)()+.%38$N<<&(.'%$ 20'-*(,2*0(-$ )'+;0($ -&**&($3&*/0+-$ */)*$ *)7&$ .'*&(<)2&-=$ (&5.&J.'%$ */&$ .315&3&'*.'%$ 25)--$ <(03/)J.'%$*0$2/00-&$)'$.315&3&'*)*.0'=$.-$)'$.+&)$*/)*$4)-$(00*&+$.'$06[&2*T0(.&'*&+$1(0%()33.'%$50'%$6&<0(&$Y)(*.'#045&(b-$)(*.25&$0($*/&$2(&)*.0'$0<$)'I$0<$*/&$(&2&'*$<()3&40(7-$*/)*$2/)31.0'$.*8

!D5"##045&($.+&'*.<.&-$*/(&&$4)I-$.'$4/.2/$)'$06[&2*$2)'$%&*$)$(&<&(&'2&$*0$)'$&F*&(')5$30+,5&=$)220(+.'%$*0$*/&$1)**&(',-&+$*0$1(0J.+&$*/&$+&1&'+&'2I:GBH

P >I$'(S(0($*.+'&4%8'(*.Y'8+*".=$.'$4/.2/$*/&$&F10(*&+$30+,5&$1(0J.+&-$)'$.'*&(<)2&$*/)*$.*-$,-&(-$3,-*$.315&3&'*$.'0(+&($*0$%&*$*/&$+&1&'+&'2.&-$)*$(,'*.3&8

P >I$'(W(0($1'++'&(*.Y'8+*".=$.'$4/.2/$*/&$+&1&'+&'*$30+,5&$&F10-&-$)$-&**&($3&*/0+$*/)*$*/&$<()3&40(7$,-&-$*0.'[&2*$*/&$+&1&'+&'2I8

P >I$'(E(0($8".1+&/8+"&(*.Y'8+*".=$.'$4/.2/$*/&$+&1&'+&'2.&-$)(&$1(0J.+&+$*/(0,%/$*/&$25)--$20'-*(,2*0(8M*$.-$10--.65&$<0($0*/&($<()3&40(7-$*0$/)J&$0*/&($*I1&-$0<$.'[&2*.0'=$6&I0'+$*/0-&$1(&-&'*&+$)60J&8GdH

Page 52: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'[&2*.0' ?@

G""%&8#(P !5,%T.'$Q2031,*.'%RP 9*()*&%I$1)**&('P L(2/.*&2*,(&$+&-2(.1*.0'$5)'%,)%&

?'.$6".%."&1*+3P L$6&%.''&(-$%,.+&$*0$"&1&'+&'2I$M'[&2*.0'$G?H

P 9.315.<I.'%$"&1&'+&'2I$M'[&2*.0'$GhH=$)(*.25&$<(03$L1(.5$Ad*/=$>@A@P U/)*$.-$"&1&'+&'2I$M'[&2*.0'l$GjH$T$L'$)5*&(')*.J&$&F15)')*.0'$T$V)706$V&'70JP "&1&'+&'2I$M'[&2*.0'$a$D&-*)65&$N6[&2*-:$"&-.%'.'%$500-&5I$20,15&+$)'+$*&-*)65&$06[&2*-$GfH$T$V&(&3I

U&.-70**&'X$"(8$"066b-$V0,(')5=$Y)I$>@@h8P "&-.%'$!)**&('-:$"&1&'+&'2I$M'[&2*.0'$TT$Y9"W$Y)%)K.'&=$9&1*&36&($>@@?$GgH

P U(.*.'%$Y0(&$D&-*)65&$E0+&$4.*/$"&1&'+&'2I$M'[&2*.0'$TT$"&J&501&(8203=$N2*06&($>@@h$GA@H

P "03).'$91&2.<.2$Y0+&5.'%$Q"9YR$.'$MNE$<()3&40(7-$GAAH

P D/&$\.2/$_'%.'&&(.'%$Z&(.*)%&$^&/.'+$"&1&'+&'2I$M'[&2*.0'$GA>H$T$L'+(&4$Y2`&.%/$T$L$+&*).5&+$/.-*0(I$0<+&1&'+&'2I$.'[&2*.0'8

P !$0<$_LL:$!5,%.'$GABH

P "&1&'+&'2I$M'[&2*.0'$.'$\,6I$GAdH

P "&1&'+&'2I$M'[&2*.0'$.'$92)5)$GA?H

H";"."+7"#GAH /**1:;$;$3)(*.'<045&(8$203;$)(*.25&-;$.'[&2*.0'8$/*35oM'J&(-.0'N<E0'*(05G>H /**1:;$;$[218$0(%;$&';$[-(;$+&*).5l.+mBB@GBH /**1:;$;$4448$3)(*.'<045&(8$203;$)(*.25&-;$.'[&2*.0'8$/*35o#0(3-N<"&1&'+&'2IM'[&2*.0'GdH /**1:;$;$I)'8$20+&/),-8$0(%;$"&1&'+&'2Iy$M'[&2*.0'y$DI1&-G?H /**1:;$;$4448$*/&-&(J&(-.+&8$203;$**;$)(*.25&-;$)(*.25&8$*--l5mMNE^&%.''&(-GhH /**1:;$;$650%8$)(2/.*&F)8$203;$>@A@;$@d;$-.315.<I.'%T+&1&'+&'2IT.'[&2*.0';GjH /**1:;$;$*,*0(.)5-8$[&'70J8$203;$+&1&'+&'2IT.'[&2*.0';$.'+&F8$/*35GfH /**1:;$;$4448$++[8$203;$Af?B@@Bj?GgH /**1:;$;$3-+'8$3.2(0-0<*8$203;$3-+'3)%;$.--,&-;$@?;$@g;$"&-.%'!)**&('-;$+&<),5*8$)-1FGA@H /**1:;$;$4448$+&J&501&(8$203;$'&*;$'&*;$)(*.25&8$1/1;$BhBh?@AGAAH /**1:;$;$4448$10203)*.28$203;$+02-;$4/.*&1)1&(-;$+-3GA>H /**1:;$;$4448$[)J)5066I8$0(%;$)(*.25&-;$+.T/&(.*)%&;GABH /**1:;$;$3)(*.'<045&(8$203;$&))E)*)50%;$15,%.'8$/*35GAdH /**1:;$;$0'&-*&16)278$0(%;$.'+&F8$2%.;$D&2/;$\,6I;$"&1&'+&'2IM'[&2*.0'M'\,6I8$(+02GA?H /**1:;$;$[0')-60'&(8$203;$>@@f;$A@;$@h;$(&)5T40(5+T-2)5)T+&1&'+&'2IT.'[&2*.0'T+.8$/*35

Page 53: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'J&(-.0'$1(.'2.15& ?A

K"5"+1"+7D%*+-".#*(+%5.*+7*58"M'$06[&2*T0(.&'*&+$1(0%()33.'%=$*/&$1"5"+1"+7D%*+-".#*(+%5.*+7*58"%(&<&(-$*0$)$-1&2.<.2$<0(3$0<$+&20,15.'%$4/&(&20'J&'*.0')5$+&1&'+&'2I$(&5)*.0'-/.1-$&-*)65.-/&+$<(03$/.%/T5&J&5=$105.2IT-&**.'%$30+,5&-$*0$504T5&J&5=$+&1&'+&'2I30+,5&-$)(&$ .'J&(*&+$Q&8%8$ (&J&(-&+R$<0($ */&$1,(10-&$0<$ (&'+&(.'%$/.%/T5&J&5$30+,5&-$ .'+&1&'+&'*$0<$ */&$ 504T5&J&530+,5&$.315&3&'*)*.0'$+&*).5-8$D/&$1(.'2.15&$-*)*&-:

5?(A*2,H0':'0(#"6/0'1(1,"/06(."+(6'$'.6(".(0")H0':'0(#"6/0'1?(<"+,(1,"/06(6'$'.6(".(%31+&%8+*".1?

<?(531+&%8+*".1(1,"/06(."+(6'$'.6(/$".(6'+%*01?(7'+%*01(1,"/06(6'$'.6(/$".(%31+&%8+*".1?

K"#7.*5$*(+M'$ 20'J&'*.0')5$ )115.2)*.0'$ )(2/.*&2*,(&=$ 504&(T5&J&5$ 20310'&'*-$ )(&$ +&-.%'&+$ *0$ 6&$ 20'-,3&+$ 6I$ /.%/&(T5&J&520310'&'*-$4/.2/$&')65&$ .'2(&)-.'%5I$20315&F$-I-*&3-$ *0$6&$6,.5*8$ M'$ */.-$20310-.*.0'=$/.%/&(T5&J&5$20310'&'*-+&1&'+$+.(&2*5I$,10'$504&(T5&J&5$20310'&'*-$*0$)2/.&J&$-03&$*)-78$D/.-$+&1&'+&'2I$,10'$504&(T5&J&5$20310'&'*-5.3.*-$*/&$(&,-&$0110(*,'.*.&-$0<$*/&$/.%/&(T5&J&5$20310'&'*-8D/&$%0)5$0<$ */&$+&1&'+&'2I$ .'J&(-.0'$1(.'2.15&$ .-$ *0$+&20,15&$/.%/T5&J&5$ 20310'&'*-$ <(03$ 504T5&J&5$ 20310'&'*--,2/$ */)*$ (&,-&$ 4.*/$ +.<<&(&'*$ 504T5&J&5$ 20310'&'*$ .315&3&'*)*.0'-$ 6&203&$ 10--.65&8$ D/.-$ .-$ <)2.5.*)*&+$ 6I$ */&-&1)()*.0'$ 0<$ /.%/T5&J&5$ 20310'&'*-$ )'+$ 504T5&J&5$ 20310'&'*-$ .'*0$ -&1)()*&$ 1)27)%&-;5.6()(.&-=$ 4/&(&$ .'*&(<)2&-+&<.'.'%$*/&$6&/)J.0(;-&(J.2&-$(&O,.(&+$6I$*/&$/.%/T5&J&5$20310'&'*$)(&$04'&+$6I=$)'+$&F.-*$4.*/.'$*/&$/.%/T5&J&520310'&'*b-$ 1)27)%&8$ D/&$ .315&3&'*)*.0'$ 0<$ */&$ /.%/T5&J&5$ 20310'&'*b-$ .'*&(<)2&$ 6I$ */&$ 504$ 5&J&5$ 20310'&'*(&O,.(&-$ */)*$ */&$ 504T5&J&5$ 20310'&'*$ 1)27)%&$ +&1&'+$ ,10'$ */&$ /.%/T5&J&5$ 20310'&'*$ <0($ 2031.5)*.0'=$ */,-.'J&(*.'%$ */&$ 20'J&'*.0')5$ +&1&'+&'2I$ (&5)*.0'-/.18$ `)(.0,-$ 1)**&('-$ -,2/$ )-$ !5,%.'=$ 9&(J.2&$ i02)*0(=$ 0("&1&'+&'2I$M'[&2*.0'$)(&$*/&'$&3150I&+$*0$<)2.5.*)*&$*/&$(,'T*.3&$1(0J.-.0'.'%$0<$*/&$2/0-&'$504T5&J&5$20310'&'*.315&3&'*)*.0'$*0$*/&$/.%/T5&J&5$20310'&'*8L115I.'%$ */&$+&1&'+&'2I$ .'J&(-.0'$1(.'2.15&$ 2)'$)5-0$6&$ -&&'$)-$ )115I.'%$ */&$L+)1*&($1)**&('=$ .8&8$ */&$/.%/T5&J&525)--$ +&<.'&-$ .*-$ 04'$ )+)1*&($ .'*&(<)2&$4/.2/$ .-$ */&$ )6-*()2*.0'$ */)*$ */&$ /.%/T5&J&5$ 25)--$ +&1&'+-$ 0'8$D/&$ )+)1*&&.315&3&'*)*.0'$)5-0$+&1&'+-$0'$*/&$)+)1*&($.'*&(<)2&$)6-*()2*.0'$Q0<$20,(-&=$-.'2&$.*$.315&3&'*-$.*-$.'*&(<)2&R$4/.5&.*$2)'$6&$.315&3&'*&+$6I$,-.'%$20+&$<(03$4.*/.'$.*-$04'$504T5&J&5$30+,5&8$D/&$/.%/T5&J&5$/)-$'0$+&1&'+&'2I$*0$*/&504T5&J&5$30+,5&$-.'2&$.*$0'5I$,-&-$*/&$504T5&J&5$.'+.(&2*5I$*/(0,%/$*/&$)+)1*&($.'*&(<)2&$6I$.'J07.'%$105I30(1/.23&*/0+-$*0$*/&$.'*&(<)2&$4/.2/$)(&$.315&3&'*&+$6I$*/&$)+)1*&&$)'+$.*-$504T5&J&5$30+,5&8

Z*#$(.DD/&$ +&1&'+&'2I$ .'J&(-.0'$ 1(.'2.15&$ 4)-$ 10-*,5)*&+$ 6I$ \06&(*$ E8$ Y)(*.'$ )'+$ +&-2(.6&+$ .'$ -&J&()5$ 1,65.2)*.0'-.'25,+.'%$*/&$1)1&($X3Y'8+(X&*'.+'6(7'1*2.(^/%0*+I(-'+&*81;(%.(%.%0I1*1("4(6'$'.6'.8*'1

GAH$=$)'$)(*.25&$)11&)(.'%$.'*/&$ Eyy$ \&10(*$ .'$ Y)I$ Aggh$ &'*.*5&+$ >,'( 7'$'.6'.8I( @.:'&1*".( 9&*.8*$0'

G>H$ =$ )'+$ */&$ 6007-$ 52*0'( ="4+)%&'

7':'0"$#'.+P(9&*.8*$0'1P(9%++'&.1P(%.6(9&%8+*8'1=$)'+$52*0'(9&*.8*$0'1P(9%++'&.1P(%.6(9&%8+*8'1(*.(!V8

G""%&8#(P 9NiM"P M'J&(-.0'$0<$E0'*(05P M'*&(<)2&P "&1&'+&'2I$M'[&2*.0'P 9&(J.2&$502)*0($1)**&('P !5,%.'P L+)1*&($1)**&('

Page 54: Test-Driven Development Wikipedia Collection

"&1&'+&'2I$.'J&(-.0'$1(.'2.15& ?>

IJ$".+&8%8*+@#P N6[&2*$N(.&'*&+$"&-.%'$e,)5.*I$Y&*(.2-:$)'$)')5I-.-$0<$+&1&'+&'2.&-$\06&(*$E8$Y)(*.'=$Eyy$\&10(*=$9&1*;N2*

Agg?$GBH

P D/&$"&1&'+&'2I$M'J&(-.0'$!(.'2.15&=$\06&(*$E8$Y)(*.'=$Eyy$\&10(*=$Y)I$Aggh$GdH

P _F)3.'.'%$*/&$"&1&'+&'2I$M'J&(-.0'$!(.'2.15&=$"&(&7$S(&&($G?H

H";"."+7"#GAH N6[&2*$N(.&'*&+$"&-.%'$e,)5.*I$Y&*(.2-:$)'$)')5I-.-$0<$+&1&'+&'2.&-$\06&(*$E8$Y)(*.'=$Eyy$\&10(*=$9&1*;N2*$Agg?$Q/**1:;$;$4448

06[&2*3&'*0(8$203;$(&-0,(2&-;$)(*.25&-;$00+3&*(28$1+<RG>H D/&$"&1&'+&'2I$M'J&(-.0'$!(.'2.15&=$\06&(*$E8$Y)(*.'=$Eyy$\&10(*=$Y)I$Aggh$Q/**1:;$;$4448$06[&2*3&'*0(8$203;$1,65.2)*.0'-;$+.18$1+<RGBH /**1:;$;$4448$06[&2*3&'*0(8$203;$(&-0,(2&-;$)(*.25&-;$00+3&*(28$1+<GdH /**1:;$;$4448$06[&2*3&'*0(8$203;$1,65.2)*.0'-;$+.18$1+<G?H /**1:;$;$4448$2*(5T-/.<*T68$203;$>@@f;$A>;$&F)3.'.'%T+&1&'+&'2IT.'J&(-.0'8$/*35

B##".$*(+%<7()5'$*+3=M'$2031,*&($1(0%()33.'%=$)'$&##".$*(+%.-$)$1(&+.2)*&$Q<0($&F)315&$)$*(,&5<)5-&$-*)*&3&'*R$15)2&+$.'$)$1(0%()3$*0.'+.2)*&$*/)*$*/&$+&J&501&($+,*.G1(*/)*$*/&$1(&+.2)*&$.-$)54)I-$*(,&$)*$*/)*$15)2&8#0($&F)315&=$*/&$<05504.'%$20+&$20'*).'-$*40$)--&(*.0'-:

c,d>,a?

-c,e,SG

c,d>,c,W,=

-c,e,=G

F$|$@$)'+$F$|$A=$)'+$*/&I$)(&$.'+&&+$*(,&$)*$*/&$.'+.2)*&+$10.'*-$+,(.'%$&F&2,*.0'8!(0%()33&(-$2)'$,-&$)--&(*.0'-$*0$/&51$-1&2.<I$1(0%()3-$)'+$*0$(&)-0'$)60,*$1(0%()3$20((&2*'&--8$#0($&F)315&=$)1(&20'+.*.0'$8+)'$)--&(*.0'$15)2&+$)*$*/&$6&%.''.'%$0<$)$-&2*.0'$0<$20+&$8++&*&(3.'&-$*/&$-&*$0<$-*)*&-$,'+&($4/.2/*/&$1(0%()33&($&F1&2*-$*/&$20+&$*0$&F&2,*&8$L$10-*20'+.*.0'$8+15)2&+$)*$*/&$&'+$8++&-2(.6&-$*/&$&F1&2*&+$-*)*&$)**/&$&'+$0<$&F&2,*.0'8D/&$ &F)315&$ )60J&$ ,-&-$ */&$ '0*)*.0'$ <0($ .'25,+.'%$ )--&(*.0'-$ ,-&+$ 6I$ E8L8\8$ Z0)(&$ .'$ /.-$ Aghg$ 1)1&(8GAH$ D/)*'0*)*.0'$ 2)''0*$ 6&$ ,-&+$ .'$ &F.-*.'%$ 3).'-*(&)3$ 1(0%()33.'%$ 5)'%,)%&-8$ Z04&J&(=$ 1(0%()33&(-$ 2)'$ .'25,+&,'2/&27&+$)--&(*.0'-$,-.'%$*/&$2033&'*$<&)*,(&$0<$*/&.($1(0%()33.'%$5)'%,)%&8$#0($&F)315&=$.'$E:

c,>,a?

!!"DE"F"GH

c,>,c,W,=?

!!"DE"F"IH

D/&$6()2&-$.'25,+&+$.'$*/&$2033&'*$/&51$+.-*.'%,.-/$*/.-$,-&$0<$)$2033&'*$<(03$0*/&($,-&-89&J&()5$ 30+&('$ 1(0%()33.'%$ 5)'%,)%&-$ .'25,+&$ 2/&27&+$ )--&(*.0'-$ T$ -*)*&3&'*-$ */)*$ )(&$ 2/&27&+$ )*$ (,'*.3&$ 0(-03&*.3&-$-*)*.2)55I8$M<$)'$)--&(*.0'$&J)5,)*&-$*0$<)5-&$)*$(,'T*.3&=$)'$)--&(*.0'$<).5,(&$(&-,5*-=$4/.2/$*I1.2)55I$2),-&-&F&2,*.0'$ *0$ )60(*8$D/.-$ +()4-$ )**&'*.0'$ *0$ */&$ 502)*.0'$ )*$4/.2/$ */&$ 50%.2)5$ .'20'-.-*&'2I$ .-$ +&*&2*&+$ )'+$ 2)'$6&1(&<&()65&$*0$*/&$6&/)J.0,($*/)*$40,5+$0*/&(4.-&$(&-,5*8D/&$,-&$0<$)--&(*.0'-$/&51-$*/&$1(0%()33&($+&-.%'=$+&J&501=$)'+$(&)-0'$)60,*$)$1(0%()38

Page 55: Test-Driven Development Wikipedia Collection

L--&(*.0'$Q2031,*.'%R ?B

9#&3"M'$5)'%,)%&-$-,2/$)-$_.<<&5=$)--&(*.0'-$<0(3$1)(*$0<$*/&$+&-.%'$1(02&--=$)'+$.'$0*/&(-=$-,2/$)-$E$)'+$V)J)=$*/&I$)(&,-&+$0'5I$*0$2/&27$)--,31*.0'-$)*$(,'*.3&8$M'$60*/$2)-&-=$*/&I$2)'$6&$2/&27&+$<0($J)5.+.*I$)*$(,'*.3&$6,*$2)'$,-,)55I)5-0$6&$-,11(&--&+8

B##".$*(+#%*+%1"#*3+%TD%7(+$.&7$L--&(*.0'-$2)'$<,'2*.0'$)-$)$ <0(3$0<$+02,3&'*)*.0':$ */&I$2)'$+&-2(.6&$ */&$-*)*&$ */&$20+&$&F1&2*-$ *0$ <.'+$6&<0(&$ .*(,'-$Q.*-$1(&20'+.*.0'-R=$)'+$*/&$-*)*&$*/&$20+&$&F1&2*-$*0$(&-,5*$.'$4/&'$.*$.-$<.'.-/&+$(,''.'%$Q10-*20'+.*.0'-RX$*/&I2)'$)5-0$-1&2.<I$.'J)(.)'*-$0<$)$25)--8$_.<<&5$.'*&%()*&-$-,2/$)--&(*.0'-$.'*0$*/&$5)'%,)%&$)'+$),*03)*.2)55I$&F*()2*-*/&3$*0$+02,3&'*$*/&$25)--8$D/.-$<0(3-$)'$.310(*)'*$1)(*$0<$*/&$3&*/0+$0<$+&-.%'$6I$20'*()2*8D/.-$)11(0)2/$.-$)5-0$,-&<,5$.'$5)'%,)%&-$*/)*$+0$'0*$&F15.2.*5I$-,110(*$.*:$*/&$)+J)'*)%&$0<$,-.'%$)--&(*.0'$-*)*&3&'*-()*/&($ */)'$ )--&(*.0'-$ .'$ 2033&'*-$ .-$ */)*$ */)*$ */&$ 1(0%()3$ 2)'$ 2/&27$ */&$ )--&(*.0'-$ &J&(I$ *.3&$ .*$ (,'-X$ .<$ */&)--&(*.0'$ '0$ 50'%&($ /05+-=$ )'$ &((0($ 2)'$ 6&$ (&10(*&+8$ D/.-$ 1(&J&'*-$ */&$ 20+&$ <(03$ %&**.'%$ 0,*$ 0<$ -I'2$ 4.*/$ */&)--&(*.0'-$Q)$1(065&3$*/)*$2)'$022,($4.*/$2033&'*-R8

B##".$*(+#%;(.%.'+2$*)"%76"7@*+3L'$)--&(*.0'$3)I$6&$,-&+$*0$J&(.<I$*/)*$)'$)--,31*.0'$3)+&$6I$*/&$1(0%()33&($+,(.'%$*/&$.315&3&'*)*.0'$0<$*/&1(0%()3$(&3).'-$J)5.+$4/&'$*/&$1(0%()3$.-$&F&2,*&+8$#0($&F)315&=$20'-.+&($*/&$<05504.'%$V)J)$20+&:

,"7$,$2$@!,>,E257$f5'C0:BLg#0:#*+?

,%8,*$2$@!,h,A,>>,S+,-

,,,,,!!"/2/74"$."&%&'

,G,,$(,,-

,,,,,!!"/2/74"$."255

,,,,,'((,3**$2$@!,h,A,>>,=+?

,G

M'$V)J)=$s$.-$*/&$&'#%*.6'&(01&()*0($Q0($#"6/0/1R$8+.<$.*-$<.(-*$01&()'+$.-$'&%)*.J&=$*/&$(&-,5*$2)'$)5-0$6&$'&%)*.J&8Z&(&=$*/&$1(0%()33&($/)-$)--,3&+$*/)*$*0*)5$.-$'0'T'&%)*.J&=$-0$*/)*$*/&$(&3).'+&($0<$)$+.J.-.0'$4.*/$>$4.55$)54)I-6&$@$0($A8$D/&$)--&(*.0'$3)7&-$*/.-$)--,31*.0'$&F15.2.*$8+.<$20,'*W,36&(N<C-&(-$+0&-$(&*,('$)$'&%)*.J&$J)5,&=$*/&1(0%()3$3)I$/)J&$)$6,%8L$3)[0($)+J)'*)%&$0<$*/.-$*&2/'.O,&$.-$*/)*$4/&'$)'$&((0($+0&-$022,($.*$.-$+&*&2*&+$.33&+.)*&5I$)'+$+.(&2*5I=$()*/&(*/)'$5)*&($*/(0,%/$.*-$0<*&'$06-2,(&$-.+&T&<<&2*-8$9.'2&$)'$)--&(*.0'$<).5,(&$,-,)55I$(&10(*-$*/&$20+&$502)*.0'=$0'&$2)'0<*&'$1.'T10.'*$*/&$&((0($4.*/0,*$<,(*/&($+&6,%%.'%8L--&(*.0'-$)(&$)5-0$-03&*.3&-$15)2&+$)*$10.'*-$*/&$&F&2,*.0'$.-$'0*$-,110-&+$*0$(&)2/8$#0($&F)315&=$)--&(*.0'-$20,5+6&$15)2&+$)*$*/&$+&<),5*$25),-&$0<$*/&$-4.*2/$-*)*&3&'*$.'$5)'%,)%&-$-,2/$)-$E=$Eyy=$)'+$V)J)8$L'I$2)-&$4/.2/$*/&1(0%()33&($ +0&-$ '0*$ /)'+5&$ .'*&'*.0')55I$ 4.55$ ().-&$ )'$ &((0($ )'+$ */&$ 1(0%()3$ 4.55$ )60(*$ ()*/&($ */)'$ -.5&'*5I20'*.',.'%$.'$)'$&((0'&0,-$-*)*&8M'$ V)J)=$ )--&(*.0'-$ /)J&$ 6&&'$ )$ 1)(*$ 0<$ */&$ 5)'%,)%&$ -.'2&$ J&(-.0'$ A8d8$ L--&(*.0'$ <).5,(&-$ (&-,5*$ .'$ ().-.'%$ )'L--&(*.0'_((0($4/&'$*/&$1(0%()3$.-$(,'$4.*/$*/&$)11(01(.)*&$<5)%-=$4.*/0,*$4/.2/$*/&$)--&(*$-*)*&3&'*-$)(&$.%'0(&+8M'$E=$*/&I$)(&$)++&+$0'$6I$*/&$-*)'+)(+$/&)+&($)--&(*8/$+&<.'.'%$)--&(*$Q%11'&+*".R$)-$)$3)2(0$*/)*$-.%')5-$)'$&((0($.'*/&$2)-&$0<$<).5,(&=$,-,)55I$*&(3.')*.'%$*/&$1(0%()38$M'$-*)'+)(+$Eyy$*/&$/&)+&($2)--&(*$.-$(&O,.(&+$.'-*&)+8$Z04&J&(=-03&$Eyy$5.6()(.&-$-*.55$/)J&$*/&$)--&(*8/$)J).5)65&8D/&$+)'%&($0<$)--&(*.0'-$.-$*/)*$*/&I$3)I$2),-&$-.+&$&<<&2*-$&.*/&($6I$2/)'%.'%$3&30(I$+)*)$0($6I$2/)'%.'%$*/(&)+*.3.'%8$L--&(*.0'-$-/0,5+$6&$.315&3&'*&+$2)(&<,55I$-0$*/&I$2),-&$'0$-.+&$&<<&2*-$0'$1(0%()3$20+&8

Page 56: Test-Driven Development Wikipedia Collection

L--&(*.0'$Q2031,*.'%R ?d

L--&(*.0'$20'-*(,2*-$ .'$)$ 5)'%,)%&$)5504$<0($&)-I$ *&-*T+(.J&'$+&J&5013&'*$ QD""R$4.*/0,*$ */&$,-&$0<$)$ */.(+T1)(*I5.6()(I8

B##".$*(+#%1'.*+3%$6"%1"-"8(5)"+$%7D78"",(.'%$ */&$ +&J&5013&'*$ 2I25&=$ */&$ 1(0%()33&($4.55$ *I1.2)55I$ (,'$ */&$ 1(0%()3$4.*/$ )--&(*.0'-$ &')65&+8$U/&'$ )')--&(*.0'$ <).5,(&$022,(-=$ */&$1(0%()33&($ .-$ .33&+.)*&5I$'0*.<.&+$0<$ */&$1(065&38$Y)'I$)--&(*.0'$ .315&3&'*)*.0'-4.55$ )5-0$ /)5*$ */&$ 1(0%()3b-$ &F&2,*.0'$8+ */.-$ .-$ ,-&<,5=$ -.'2&$ .<$ */&$ 1(0%()3$ 20'*.',&+$ *0$ (,'$ )<*&($ )'$ )--&(*.0'J.05)*.0'$022,((&+=$.*$3.%/*$20((,1*$.*-$-*)*&$)'+$3)7&$*/&$2),-&$0<$*/&$1(065&3$30(&$+.<<.2,5*$ *0$502)*&8$C-.'%$*/&.'<0(3)*.0'$1(0J.+&+$6I$*/&$)--&(*.0'$<).5,(&$Q-,2/$)-$*/&$502)*.0'$0<$*/&$<).5,(&$)'+$1&(/)1-$)$-*)27$*()2&=$0($&J&'$*/&<,55$ 1(0%()3$ -*)*&$ .<$ */&$ &'J.(0'3&'*$ -,110(*-$ 20(&$ +,31-$ 0($ .<$ */&$ 1(0%()3$ .-$ (,''.'%$ .'$ )$ +&6,%%&(R=$ */&1(0%()33&($2)'$,-,)55I$<.F$*/&$1(065&38$D/,-$)--&(*.0'-$1(0J.+&$)$J&(I$104&(<,5$*005$.'$+&6,%%.'%8

G$&$*7%&##".$*(+#L--&(*.0'-$*/)*$)(&$2/&27&+$)*$2031.5&$*.3&$)(&$2)55&+$-*)*.2$)--&(*.0'-8$D/&I$-/0,5+$)54)I-$6&$4&55T2033&'*&+89*)*.2$)--&(*.0'-$)(&$1)(*.2,5)(5I$,-&<,5$.'$2031.5&$*.3&$*&315)*&$3&*)1(0%()33.'%=$6,*$2)'$)5-0$6&$,-&+$.'$504T5&J&55)'%,)%&-$.'$E$6I$.'*(0+,2.'%$.55&%)5$20+&$.<$Q)'+$0'5I$.<R$*/&$)--&(*.0'$<).5-8$#0($&F)315&=$.'$E$)$-*)*.2$)--&(*.0'$2)'6&$.315&3&'*&+$5.7&$*/.-:

i30L"70,HBJZ;<&j/;J&jKNN&Y/*(:03+,#8"$E4*S+-E@#0,SdE@#0,(:03d?G

HBJZ;<&j/;J&jKNN&Y/*,bBB<&Kf,HBf];/;Bf,+?

M<$*/&$Q^NNi_LW$ENW"MDMNWR$1)(*$&J)5,)*&-$*0$<)5-&$*/&'$*/&$)60J&$20+&$4.55$'0*$2031.5&$6&2),-&$*/&$2031.5&(4.55$ '0*$ )5504$ *40$ 2)-&$ 5)6&5-$4.*/$ */&$ -)3&$ 20'-*)'*8$ D/&$ 6005&)'$ &F1(&--.0'$3,-*$ 6&$ )$ 2031.5&T*.3&$ 20'-*)'*J)5,&=$<0($&F)315&$Q-.K&0<Q.'*RmmdR$40,5+$6&$)$J)5.+$&F1(&--.0'$.'$*/)*$20'*&F*8L'0*/&($101,5)(=$6,*$.'<&(.0(=G>H$4)I$0<$.315&3&'*.'%$)--&(*.0'-$.'$E$.-:

(*'*%&,E4@:,&1-(*,#$@$"Ej@##0:$"27_,*bBB<&Kf,HBf];/;Bf+

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,k,=,d,T=

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`,>,-lMlG?

M<$*/&$Q^NNi_LW$ENW"MDMNWR$1)(*$&J)5,)*&-$*0$<)5-&$*/&'$*/&$)60J&$20+&$4.55$'0*$2031.5&$6&2),-&$)(()I-$3)I'0*$/)J&$)$'&%)*.J&$5&'%*/8$M<$ .'$<)2*$*/&$2031.5&($)5504-$)$'&%)*.J&$5&'%*/$*/&'$*/&$.'.*.)5.K)*.0'$6I*&$Q*/&$ brb$1)(*R-/0,5+$2),-&$&J&'$-,2/$0J&(T5&'.&'*$2031.5&(-$*0$20315).'8$D/&$6005&)'$&F1(&--.0'$3,-*$6&$)$2031.5&T*.3&$20'-*)'*J)5,&=$<0($&F)315&$Q-.K&0<Q.'*RmmdR$40,5+$6&$)$J)5.+$&F1(&--.0'$.'$*/)*$20'*&F*8

K*#&T8*+3%&##".$*(+#Y0-*$ 5)'%,)%&-$ )5504$)--&(*.0'-$ *0$6&$ &')65&+$0($+.-)65&+$%506)55I=$ )'+$ -03&*.3&-$ .'+&1&'+&'*5I8$L--&(*.0'-$ )(&0<*&'$ &')65&+$+,(.'%$+&J&5013&'*$ )'+$+.-)65&+$+,(.'%$ <.')5$ *&-*.'%$ )'+$0'$ (&5&)-&$ *0$ */&$ 2,-*03&(8$W0*$ 2/&27.'%)--&(*.0'-$ )J0.+-$ */&$ 20-*$ 0<$ &J)5,)*.'%$ */&$ )--&(*.0'-$4/.5&=$ )--,3.'%$ */&$ )--&(*.0'-$ )(&$ <(&&$ 0<$ -.+&$ &<<&2*-=$ -*.551(0+,2.'%$ */&$ -)3&$ (&-,5*$ ,'+&($ '0(3)5$ 20'+.*.0'-8$C'+&($ )6'0(3)5$ 20'+.*.0'-=$ +.-)65.'%$ )--&(*.0'$ 2/&27.'%$ 2)'3&)'$*/)*$)$1(0%()3$*/)*$40,5+$/)J&$)60(*&+$4.55$20'*.',&$*0$(,'8$D/.-$.-$-03&*.3&-$1(&<&()65&8903&$ 5)'%,)%&-=$ .'25,+.'%$ E;Eyy=$ 20315&*&5I$ (&30J&$ )--&(*.0'-$ )*$ 2031.5&$ *.3&$ ,-.'%$ */&$ 1(&1(02&--0(8$ V)J)(&O,.(&-$)'$01*.0'$*0$6&$1)--&+$*0$*/&$(,'T*.3&$&'%.'&$.'$0(+&($*0$&')65&$)--&(*.0'-8$L6-&'*$*/&$01*.0'=$)--&(*.0'-$)(&6I1)--&+=$6,*$*/&I$)54)I-$(&3).'$.'$*/&$20+&$,'5&--$01*.3.-&+$)4)I$6I$)$VMD$2031.5&($)*$(,'T*.3&$0($&F25,+&+$6I$)'.<Q<)5-&R$20'+.*.0'$)*$2031.5&$*.3&=$*/,-$*/&I$'&&+$'0*$/)J&$)$(,'T*.3&$-1)2&$0($*.3&$20-*$.'$V)J)$&.*/&(8

Page 57: Test-Driven Development Wikipedia Collection

L--&(*.0'$Q2031,*.'%R ??

!(0%()33&(-$ 2)'$ )54)I-$ 6,.5+$ 2/&27-$ .'*0$ */&.($ 20+&$ */)*$ )(&$ )54)I-$ )2*.J&$ 6I$ 6I1)--.'%$ 0($ 3)'.1,5)*.'%$ */&5)'%,)%&b-$'0(3)5$)--&(*.0'T2/&27.'%$3&2/)'.-3-8

0()5&.*#(+%/*$6%"..(.%6&+18*+3M*$ .-$40(*/$+.-*.'%,.-/.'%$)--&(*.0'-$ <(03$(0,*.'&$&((0(T/)'+5.'%8$L--&(*.0'-$ -/0,5+$6&$,-&+$ *0$+02,3&'*$ 50%.2)55I.310--.65&$-.*,)*.0'-$)'+$+.-20J&($1(0%()33.'%$&((0(-$8+.<$*/&$.310--.65&$022,(-=$*/&'$-03&*/.'%$<,'+)3&'*)5$.-25&)(5I$ 4(0'%8$ D/.-$ .-$ +.-*.'2*$ <(03$ &((0($ /)'+5.'%:$ 30-*$ &((0($ 20'+.*.0'-$ )(&$ 10--.65&=$ )5*/0,%/$ -03&$ 3)I$ 6&&F*(&3&5I$,'5.7&5I$*0$022,($.'$1()2*.2&8$C-.'%$)--&(*.0'-$)-$)$%&'&()5T1,(10-&$&((0($/)'+5.'%$3&2/)'.-3$.-$,'4.-&:)--&(*.0'-$ +0$ '0*$ )5504$ <0($ (&20J&(I$ <(03$ &((0(-X$ )'$ )--&(*.0'$ <).5,(&$4.55$ '0(3)55I$ /)5*$ */&$ 1(0%()3b-$ &F&2,*.0')6(,1*5I8$L--&(*.0'-$)5-0$+0$'0*$+.-15)I$)$,-&(T<(.&'+5I$&((0($3&--)%&8E0'-.+&($*/&$<05504.'%$&F)315&$0<$,-.'%$)'$)--&(*.0'$*0$/)'+5&$)'$&((0(:

,,"7$,^($:,>,'@!!2E*(%F,18*"7$+,^,=S+?

,,@##0:$*($:+?

,,!!"3.&"6/-"

,,%%%

Z&(&=$*/&$1(0%()33&($.-$)4)(&$*/)*$3)5502$4.55$(&*,('$)$WCii$10.'*&($.<$3&30(I$.-$'0*$)5502)*&+8$D/.-$.-$10--.65&:*/&$01&()*.'%$-I-*&3$+0&-$'0*$%,)()'*&&$*/)*$&J&(I$2)55$*0$3)5502$4.55$-,22&&+8$M<$)'$0,*$0<$3&30(I$&((0($022,(-$*/&1(0%()3$ 4.55$ .33&+.)*&5I$ )60(*8$ U.*/0,*$ */&$ )--&(*.0'=$ */&$ 1(0%()3$ 40,5+$ 20'*.',&$ (,''.'%$ ,'*.5$ 1*($ 4)-+&(&<&(&'2&+=$ )'+$ 10--.65I$ 50'%&(=$ +&1&'+.'%$ 0'$ */&$ -1&2.<.2$ /)(+4)(&$ 6&.'%$ ,-&+8$ 90$ 50'%$ )-$ )--&(*.0'-$ )(&$ '0*+.-)65&+=$)'$.33&+.)*&$&F.*$.-$)--,(&+8$^,*$.<$)$%()2&<,5$<).5,(&$.-$+&-.(&+=$*/&$1(0%()3$/)-$*0$/)'+5&$*/&$<).5,(&8$#0(&F)315&=$)$-&(J&($3)I$/)J&$3,5*.15&$25.&'*-=$0($3)I$/05+$(&-0,(2&-$*/)*$4.55$'0*$6&$(&5&)-&+$25&)'5I=$0($.*$3)I$/)J&,'2033.**&+$ 2/)'%&-$ *0$ 4(.*&$ *0$ )$ +)*)-*0(&8$ M'$ -,2/$ 2)-&-$ .*$ .-$ 6&**&($ *0$ <).5$ )$ -.'%5&$ *()'-)2*.0'$ */)'$ *0$ )60(*)6(,1*5I8

G""%&8#(P L--&(*.0'$+&<.'.*.0'$5)'%,)%&P "&-.%'$6I$20'*()2*P _F2&1*.0'$/)'+5.'%P Z0)(&$50%.2P 9*)*.2$20+&$)')5I-.-P V)J)$Y0+&5.'%$i)'%,)%&

IJ$".+&8%8*+@#P >,'(3'.'4*+1("4($&"2&%##*.2()*+,(%11'&+*".1$GBH$6I$!/.5.1$S,0$Q9*)'<0(+$C'.J&(-.*IR=$>@@f8P V)J):

P !(0%()33.'%$U.*/$L--&(*.0'-$.'$V)J)$GdH

P D&2/'.2)5$L(*.25&$]C-.'%$L--&(*.0'-$G?H]

H";"."+7"#GAH E8L8\8$Z0)(&=$L'$)F.03)*.2$6)-.-$<0($2031,*&($1(0%()33.'%$Q/**1:;$;$5)36+)T*/&T,5*.3)*&8$0(%;$'0+&;$AgA>R=$!"##/.*8%+*".1("4(+,'(5!-=

Aghg8G>H V0'$V)%%&(=$!"#$*0'(>*#'(511'&+*".1(*.(!$Q/**1:;$;$4448$[)%%&(-0<*8$203;$1,6-;$E`,AApB8$/*35R=$Aggg8GBH /**1:;$;$4448$-*)'<0(+8$&+,;$v1%60J.'&;$1(0%()33.'%T4.*/T)--&(*-8$/*3GdH /**1:;$;$[)J)8$-,'8$203;$[>-&;$A8$d8$>;$+02-;$%,.+&;$5)'%;$)--&(*8$/*35G?H /**1:;$;$[)J)8$-,'8$203;$+&J&501&(;$V"ED&2/D.1-;$>@@>;$**@d@g8$/*35

Page 58: Test-Driven Development Wikipedia Collection

L(*.25&$90,(2&-$)'+$E0'*(.6,*0(- ?h

B.$*78"%G('.7"#%&+1%0(+$.*T'$(.#!"#$%&'$()&$*(+$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfhjdgdAA$k!".+&*3/+"&1:$?'.KK)=$fB'[A=$L"06&I=$L6+,55=$L7(j?jj=$L5.J&#(&&Z)11I=$L3&I)$6)(J&=$L'2/&*)$U.-=$L'7,([=L',1)3$').7=$L11)(.*.0'AA=$L-)-/0,(=$L-/=$^6(I-0'=$^&'[)3.'$S&.%&(=$^/)%)*8L6/.[&&*=$^.%*4.57.'-=$E)5*)-=$E)(.02)=$E/&27-/.(*=$E/(.-6&10-*=$E0+&U0'7=$"L\DZ$9M"MNC9$>=$"\0%&(-="6&5/,3&,(@>=$".J.'&L51/)=$"(&<*I3)2=$_)04&'-=$_+4)(+Y.55&(=$_%.J0'.=$_5<(.&+&",-*.'=$_5.10'%0=$_'02/$*/&$(&+=$_F2.(.)5=$#)(.-jdj=$#&(1&2*.0'.-*=$#5)-/9/&(.+)'=$#501-I$Y01-I$)'+E0**0'30,*/=$#50(.)'$Z,6&(=$#,3.*05=$S)%%)(4)5>@@@=$S/&(%&*=$S.6->@@A=$S3)2%(&%0(=$S0,*/)3=$S()<&'=$Z)(06&+=$Z)*2/hf=$Z&5.Ffd=$Z&-)=$Z&I+)I-0<*=$Z001&(65006=$Z-4.7.=$Z,A>=VL91&'2&(=$V)3&-^U)*-0'=$V0/','.O=$V1%=$c,3)(-)3&&(=$c,(,=$i+.3)%%.=$Yd%',3@'=$YEA@=$Y_\TE=$Y)()-3,-.'&=$Y)(7$c.56I=$Y)(,+,6-/.'7.=$Y)**/&4&+4)(+-=$Y.2/)&5$^&('-*&.'=Y0((.550'5.'&=$Y(N55.&=$W.304I=$W0*.')-').+=$N2*0<&((&*=$N/'0.*-[)3.&=$N()25&"^S,(,=$!</[J6@=$!(0<&--.0')5D9D=$e)*,*0(=$e5)6-$.31&*,-=$e*1),*03)*.0'=$e4I(F.)'=$\b'b^=$\Z)40(*/=\)+)%)-*fB=$\)+.)'*r=$\)+.0-*)*.0')(I=$\)%/,65(=$\.2/$#)(36(0,%/=$\.2/)(+Z0,5*K=$\.27[1&55&%=$\[4.53-.=$\06&(*J)'A=$\06.'-0'$U&.[3)'=$\I)+)J=$\I&1.&=$993.*/Wq=$960'0=$9/.[,()[=9/503.<=$90<*4)(&*&-*A=$9(.+&&1$D&-*!5)'*=$9-.'%)()[,=$9*&J&i0,%/()'=$9,'+)()37,3)(=$94*&2/4(=$D/J=$D*(&J&(-=$D,3)7)=$D,-/)(>gA@fA=$`)+.37)=$`&5&+)'=$`&(-)%&&7=$U)5*&($S}(5.*K=U&6666666&(=$U.'3)2(0=$U(1A@B=$q)'$c,5.%.'=$n)2/SD=$n0(%0'j=$>Bf$)'0'I30,-$&+.*-

!"#$21.*-"+%1"-"8(5)"+$$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfhdg@gAj$k!".+&*3/+"&1:$A-()%/)J)'=$L2/0('I=$L5.J&#(&&Z)11I=$L57-&'*(-=$L'0(*/,1=$L'*/0'I9*&&5&=L'*0'.&55I=$L-%&.('=$L-*).'&-=$L**.5.0-=$L,*)(2/=$L,*,3'9'04=$^24/.*&=$E#YU.7.A=$E)5(z<)$Uz'~=$E)'*&(6,(I$D).5=$E/(.-$!.27&**=$E50-&+30,*/=$E().%$9*,'*K=$"ZS)((&**&=$")55I$Z0(*0'=")J.+T9)()/$Z01400+=$"&,F1.=$"/+65,&-=$"0,%5,2&=$"04'50)+=$"04'-.K&dB=$"*3.5)'0=$"�,%0-K=$_+$!00(=$_+)&50'=$_//&/=$_3,(1/Id>=$_'02/5),=$_,(5&.<=$_F2.(.)5=$#),%/*=$#,((I7&<=S)7(.J)-=$S)(I$c.'%=$S&03&*(I8-*&J&=$S.%.$<.(&=$S.-/,$!.55).=$S32(&4-=$S0%0$"0+0=$Z)+)5=$Z)%).$E.6,5-7.=$Z)(./)()'$4.7.=$Z&.(1.F&5=$ZK/625=$V"^()J0=$Vi)D0'+(&=$V)206!(0<<.**=$V%5I''dB=V5&&+&J=$V0'6$&&=$V0'71)=$V1)53$gf=$V(JK=$c6+)'7jA=$c&55&'Ä=$c&55IE0.'S,I=$c&J.'$\&2*0(=$c/)5.+$/)--)'.=$c(.-*[)'$U)%&(=$c(KI7>=$cJ+J&&(=$i&)J&95&)J&-=$i&'.'AggA=$i,36&([)7&=$Y)++,27=Y)(7$\&'.&(=$Y)(*.)5j?=$Y)(*.'.%=$Y)F9&3=$Y6&(*&.%=$Y60J&(50)+=$Y270--=$Y++=$Y&C-&(d>=$Y.2/.%=$Y.++)I&F1(&--=$Y7)(5&-7I=$Y77-.'%/)=$Y'0(6,(I=$Y0(*&'-&=$Y0-O,.*01-,=$Y(>@@A=Y(N55.&=$W.%&5[=$W0/)*=$W0*'0.-I=$W,%%&*60I=$N[2.*=$N5.%030,-=$N'?+&,=$!)(75)'+-1)')4)I=$!)*(.27+&1.'%,.'=$!&'%0=$!/.5.1\=$!/5.1>@@?=$!.'&2)(=$!()+&&1L(I)AA@g=$\8$98$9/)4=$\)+)7=\.27^&*0'=$\0IN-/&(0J&=$\,5&-+02=$9L_Agh>=$9)3$Z02&J)(=$9)34)-/6,('B=$9)'$2/)70=$9)'2/03=$9&*/D.-,&=$9/)(9/)(=$9/&'3&=$9/I)3$df=$9.30'!=$9*8S&'&()5=$9*&32+=$9*&J&i0,%/()'=9,55.J)'8*=$9J&(+(,1=$9J.27=$94)-+&'=$9K4&[72=$D)7,I)Y,()*)=$D&+.27&I=$D/&3)260I=$D/,31&(4)(+=$D06.)-$^&(%&3)''=$D011.'%=$D(,3A>B=$C'+&(1)'*-=$`hn.Bd=$`.(%.5*()-2)=$UiC=$U)5*&(S}(5.*K=$U)()*)/=$U.7.+jj=$w)%(0'),*=$ÅÇÉÑÖÜáàâ$äâÜãåçÑ=$BjA$)'0'I30,-$&+.*-

S"6&-*(.%K.*-"+%K"-"8(5)"+$$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfhAd@dBg$k!".+&*3/+"&1:$AhFg=$L+)35&%%&**=$L5&F0**=$L-/-&)(5&=$L-5)78/&55&-0I=$^&'LJ&5.'%=$^(05,'+=EiU=$E/0)-=$E050'.&-$E/(.-=$")'W0(*/=$")J&3)(-/)55@d=$")J.+$Y0')%/)'=$"2)KK,5.'0=$".&%0$Y0I)=$"0&73)'=$"05-=$_5&,-.-=$_(7)'$q.53)K=$_-10=$#S&0(%&-=$#&)*/&(&+4.'%-=$S/&**065)-*&(=S.)(+)'*&=$S(&&'(+=$S(&%0(^=$Z))70'=$Z,%06(=$Z,3)'3)**&(-=$Z,**)(5=$M)'-1&'2&=$M%',=$Vi)D0'+(&=$V)'.)g@>=$V6)'+.=$V0/'3)(70-=$V0/'4I5&-=$V,*)3&=$c&55I$Y)(*.'=$c&55IE0.'S,I=$c&J.'\&2*0(=$i&'.'AggA=$i&'')(*/=$Y)F9&3=$Y/&''&3&I&(=$Y0(*&'-&=$W2(),-&=$N5&%)'K)=$!),53)((.'%*0'=$!/.5.11&=$\&**&*)-*=$\.27$V&55.<<&=$\[()I=$\[4.53-.=$\0+(.%&K=$\I)'32.530I5=$9&2(&*g=$903&-*)'+)(+.K&+$(.%0,(=$9*&J&"0'.&=$9*&J&0'[)J)=$D.3/),%/*0'=$D03[)+)3-=$D0'I^)55,=$`.','5(=$U&-5&I=$U&-4.55.)3-=$U/&(&$'&F*$E05,36,-l=$q)3)%,2/.Ä Å =$q,706)=$AB?$)'0'I30,-$&+.*-

B77"5$&+7"%$"#$$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mg>Aj@hBf$k!".+&*3/+"&1:$L51/)[,5.&*=$L3.(&f@=$L11)(.*.0'AA=$L-2~'+&(=$^0,('&[2=$E)&-,()=$E)5*)-=$E)1.*)5\=$E)(-&=$E/(.-!.27&**=$E5),+.0$<.%,&.(&+0=$E50,+W.'&=$E0'J&(-.0'$-2(.1*=$"\0%&(-=$"`"$\$U=$")/2)5)'=$")J.+6)*&*=$"/0553=$".JI)+&&1-/)(3)=$"[327&&A=$_50O,&'2&=$_3.5I6)2/&=$_'02/5),=$SD^)22/,-=S()&3&i=$S()'6,(%,&-)=$S4&('05=$Z)50J.J&7=$Z001&(65006=$Z,A>=$Z,*2/&(=$ZI)+=$V)3&-*02/*&(=$V&3*(&)+4&55=$V%5)++.'%=$V.3V)J)-2(.1*=$V3)(()'K=$V11=$c).*)'&'=$c-'04=$i.<*01/=$Y)(*.'"c=Y&.[+&'^=$Y&.-&=$Y.2/)&5$Z)(+I=$Y.+'.%/*2033=$Y.<*&(=$Y[&33&-0'=$Y1.5)&*&'=$Y,/)'+&-=$YI/.-*&(=$W&46.&?g=$W0(3FFF=$N5+$Y00'()7&(=$N5-0'8-(=$!)'K.=$!&)(5&=$!&*&(^(007-=$!.55=!.'&2)(=$e&3=$\Z)40(*/=$\V#&((&*=$\.7.=$\0+)-3.*/=$9)3,&5$D)'=$9/.(,5)-/&3=$D.33IA>=$D.30$Z0'7)-)50=$D0++-*A=$`.(.+)&=$U)5*&($S}(5.*K=$U/))l=$U.7.1&T*)'=$U.55.)3$LJ&(I=$U.'*&(-*=$A>h)'0'I30,-$&+.*-

:+$"3.&$*(+%$"#$*+3$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfd?BAfgh$k!".+&*3/+"&1:$>@@>:f>&2:6B@):6)+<:>@B:6)<<:<&fA:j?h?=$L6+,55=$L++-/0(&=$L3.(&f@=$L(,'7)=$L(K)2/=E6&'&+&**0=$E&550J&(%)()=$E/(.-*.)'_+4)(+S(,6&(=$"\0%&(-=$")*)9,(<&(=$_/)63&/&+.=$#)()+)I15)'7=$#,((I7&<=$S%%/=$S.55.)3=$S(&)*U/.*&W0(*/&('&(=$Z001&(65006=$V8+&5)'0I=$V&46)22)=$V.)'%=V*045&(=$c3&(&'70J=$i0(+<),-*=$Y/&,--&(=$Y.2/)&5$\)4+0'=$Y.2/.%=$YI/.-*&(=$W0*.')-').+=$N'&6I0'&=$!),5$L,%,-*=$!&%-/.1=$!.'&2)(=$e)++0-/=$\)J&+)J&=$\)J.'+()*=$9\EZ#"=$97IU)57&(=905+&=$9107&'.'-)'-7(.*=$9*&J&'$n/)'%=$9J.27=$D/&\)'%&(=$D/J=$U)5*&($S}(5.*K=$UI5+*4I-*=$n/&'O.'5.=$AAd$)'0'I30,-$&+.*-

9+*$%$"#$*+3$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfdj??hA?$k!".+&*3/+"&1:$8+.%)33)=$L/2=$L/0&(-*&3&.&(=$L5.J&#(&&Z)11I=$L55)'$Y2M''&-=$L55&'$Y00(&=$L'+&(6,665&=$L'+(&)-c),<3)''=$L'+I$".'%5&I=$L'0(*/,1=$L(+0'.7=$L-)J0.)=$L**.5.0-=$L,*)(2/=$^)7&(-%AB=$^+.[7-*()=$^&'#()'*K")5&=$^(.)'$S&11&(*=$E)'.-\,<,-=$E)'*&(6,(I$D).5=$E/(.-$!.27&**=E/(.-*.)'_+4)(+S(,6&(=$E/,27_-*&(6(007=$E5),-&'=$E050'.&-$E/(.-=$E0(J.=$E().%46=$"\0%&(-=$")'Y9=$"&(6&*/=$".-20-1.'-*&(=$"3,5*&(=$_)(5I1-I2/0-.-=$_+)&50'=$_+4)(+$n8$q)'%=$_&4.5+=$_5D=$_5.50=$_J.5$-)5*.'&=$_F2.(.)5=$#5)-/9/&(.+)'=$#()'7D06.)=$#(&+(.7=$#,((I7&<=$SD^)22/,-=$S0-4)3.J.[)I=$S,.55&8/0)(+.'%-=$Z))70'=$Z)')2I=$Z)(.$9,(&'+()'=$Z)I'&=$Z<)-*&+%&=$Z001&(65006=Z-.'%/jj=$ZI1&(-0'.2A>=$M66'=$M'<5,&'*A=$V8+&5)'0I=$V[)3.-0'=$V0&%%.=$V0%50()'=$V0'/)'-0'=$V1)53$gf=$c)30*-=$c)()%0,'.9=$c)(5$".273)'=$c7,=$c0'3)'j>=$c,(,=$i0'%/0('j>=$i00F.F=$Y)(*.'Y)[5.-=$Y)(*.'.%=$Y)FZ,'+=$Y)F9&3=$Y2-&&=$Y/&,--&(=$Y.2/.%=$Y.27&IU.7.=$Y.7&(é-,'+.)5-&(J.2&-8203=$Y0(*&'-&=$Y(8$".-%,.-&=$Y(N55.&=$Y*032K)7=$W)*&$9.5J)=$W6(I)'*=$W&.52=W0*.')-').+=$N/'0.*-[)3.&=$N3(.9&%)5=$N**)4)d&J&(=$!SUS=$!)65)--0=$!)5.'%$L52/&3.-*=$!)'*0-I-=$!),5$L,%,-*=$!),502/&O,&=$!26>A=$!.'&2)(=$!3&(-0'=$\)+)%)-*B=$\).'604N<i.%/*=\)J.)55,(,=$\)J.'+()*=$\&''.&!&*=$\.2/)(+73.55&(=$\[4.53-.=$\0%&(60(%=$\0077&I=$\0IN-/&(0J&=$\I)'-8(I,=$98c8=$9B@@@=$9L_Agh>=$9/I)3$df=$9.30'D(&4=$97&*2/@?A=$95.%027.=$93)55[.3=905+&=$90K.'=$9-+=$9-1.(0=$9*&1/&'6=$9*&J&i0,%/()'=$9*,31-=$9J.27=$94*&2/4(=$9I6&(-')7&=$D#(.&-&'=$D/&3.550<7&I*0'&=$D/J=$D.30$Z0'7)-)50=$D5(02/&=$D06.)-$^&(%&3)''=$D0++-*A=$D0'IY0((.-=$DI5&($N+&(7.(7=$C'.**&-*&(A>B=$C-&(jjjhd=$`Y9$Y0-).2=$`&%/&)+=$`.-/')J)=$U)5*&($S}(5.*K=$U.'/,'*&(=$U3)/)'=$n&+$*002005=$d@g$)'0'I30,-$&+.*-

0(1"%.";&7$(.*+3$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBf?fj?Agh$k!".+&*3/+"&1:$h6.(2=$L)(0'6(.27=$L2&$E0+&(=$L7,3.-K2K)=$L5)'-0/'=$L'+&(-4.7.=$L'+(&$_'%&5-=$L'*0'.&55I=L115[)FA>B=$L(3.Fn=$L(')+è=$L*(02/&=$^&5)'+=$^&'#()'*K")5&=$^&'i.I)')%&=$^&'[)3.'&J)'-f>=$^&'0A@@@=$^&'0.*8+&2/)*&),J.&,F=$^&J0=$^[0('$_5&'<0(-=$^0665&/&)+=$^(027&(*=$^(,--&5--/(&7=^,55\)'%.<&(=$EiL_9=$E)55.+.0(=$E)'+&(@@@@=$E/)(5&-$Y&((.)3=$E0''&55I=$E0'J&(-.0'$-2(.1*=$"Y)27-=$")'/=$")J.+<-*(=$"20,K.'=$".-/)I500=$"')-=$"(&<*I3)2=$"4/&&5&(=$_+$!00(=$_+4)(+=_50'7)=$_(3&I=$#)'%/0'%=$#.'5)I$Y2U)5*&(=$#5.'7^),3=$#504\)*&=$#5IZ.%/=$#()'7D06.)=$#(&275&<00*=$#(&+$^()+-*)+*=$#(&+(.7=$#,((I7&<=$S)'+)5<%&&7=$Z=$ZEVc=$Z&+&>@@@=$ZK/625=$M)'N-%00+=M5I)=$M')D0'2/&J)D0'2/&J)=$M'O,)3=$M'*%(=$V8+&5)'0I=$V)&%&(dfgAj=$V)-0'<(I&=$V&((I06[&2*=$V0/'N4&'-=$V0'Z)(+&(=$V0')*/0'\&.'/)(*=$V0I0,-r=$V,5&-Z=$V400+%&(=$c&45.*0=$c/)5.+$/)--)'.=c0(10=$cI&55)'=$cI5&3&4=$iNi=$i&'0F,-=$i.%,5&3=$i.'%,.-*L*i)(%&=$i,7=$Y)(2.'[&-7&=$Y)(7$\&'.&(=$Y)(*.'.%=$Y)-0'6gfh=$Y)F.3)F.3)F=$Y++=$Y.2/.%=$Y.'*5&)<=$Y.1)+.=$Y0((.550'5.'&=Y(V0'&-=$Y-7&&5=$Y4)''&(=$W&.52=$W.*(03)-*&(A@A=$W0(3$3.*=$NY0,-&=$N5)*/&=$N5.J&(=$N5.J&(??=$N'?+&,=$!8*)I50(é+0*203-0<*4)(&-05,*.0'-8208,7=$!)++I-5)27&(=$!),5$L,%,-*=$!+&36=!&*&<0(-I*/=$!&*&(5=$!/0&'.Ff@=$!05I1)()+.%3=$!(0[&2*>?@A)=$\V#V\=$\)J.'+&(87)+.I)'=$\)I30'+4.''=$\&%(&%&F=$\[4.53-.=$\0+)-3.*/=$\,%01-=$98c8=$9D)((I=$9)34=$9&)[)I=$9/)4'$4.7.=9.%3,'+1&*&(-&'=$9107&'.'-)'-7(.*=$9100'r=$9*&1/)'$i&25&(2O=$9*&J&'$n/)'%=$9J&(+(,1=$9I35I'w=$D)7,I)Y,()*)=$D)(.'*/=$D&0/).7=$D/)*$S,I=$#(03$D/)*$9/04r=$D/(B++I=$D06.)-$^&(%&3)''=D06.)-$Z0&J&7)31=$D033&'-=$D0'I$9.+)4)I=$D01)K=$D()'K.+=$`0.2&$0<$L55=$U)((&'=$UFf=$w031)'*/I=$wI6=$q0(+)'S&0(%.&J=$n.(06I=$Ag>$)'0'I30,-$&+.*-

!"#$%7&#"$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBf?B?dgd@$k!".+&*3/+"&1:$L5.J&#(&&Z)11I=$L55-*)(&2/0=$E/(.-$!.27&**=$E05^)*S,)'0=$E-*Aj=$")(7^5,&9&.+=$")(7#)55-=$")(*/!)'+)=$_)-*5)4=$#5)J.0F)J.&(=$#(&&7$`&(7&(7=$#,((I7&<=$S0*/30%8&-=$Z001&(65006=$M%%Id@>=$M0'+.0+&=$V*045&(=$V4/BB?=$V400+%&(=$i&)J&95&)J&-=$i&'0F,-=$Y)%.05)+.*.-=$Y)'.)2->g=$Y)FZ,'+=Y++=$Y&(,*)7=$Y($L+&O,)*&=$Y(N55.&=$W.665,-=$W.(.8Y=$W3*/031-0'=$!)J&5$n,670J=$!&*&(jj>B=$!.5)<=$!.'&2)(=$!(.3&N6[&2*-=$\V#V\=$\).'604N<i.%/*=$\)ILq)'%=$\&',$%),*)3=9)(+)')1/)5,-=$92.,(.'ê=$9&)'$"$Y)(*.'=$9/&(J.')<-/)(=$9,(,&')=$9I-*&3>A=$D/&[&-/82%=$D/0('2()%=$D/J=$D03)F&(=$D()J&56.(+=$`.7)-6,2/)=$U)5*&($S}(5.*K=$U&('.%/*=$q&''*/=$A?j$)'0'I30,-&+.*-

J9+*$$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBjd@jdjBh$k!".+&*3/+"&1:$L/0&(-*&3&.&(=$L'+(&)-$c),<3)''=$^,('*97I=$E)&-,()=$E/(.-$!.27&**=$")3.)'$q&((.27=$"J.6=$#5)-/9/&(.+)'=#,((I7&<=$S(&&'$2)*&(1.55)(=$V1)53$gf=$c&'I0'=$c/)*(,>=$c7,=$c5&6=$i)-036()=$i.5Z&51)=$Y^.-)'K=$Y)*$.=$Y)F9&3=$Y(N55.&=$W)*&$9.5J)=$N(.$!&5&%=$!)%()-/*)7=$!)*(.7[=$!&'%0=$!/.5.11&L'*()-=!.'&2)(=$e&<=$\&+U05<=$\/1/.55.1-=$\,+)Y0,()=$92/4&('=$9&6)-*.)'^&(%3)''=$9.30'4)27&(=$95)7(=$9(.**),=$D5(02/&=$CK,3&=$h>$)'0'I30,-$&+.*-

!"#$%#$'T#$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mB?jdfj?g?$k!".+&*3/+"&1:$L'+(&)-$c),<3)''=$E/.&</,%%I6&)(=$E/(.-*.)'J.'*&(=$Y&(.+.*/$c=$D/.-)(*.25&.-)-*,6=$D03(6[=$A)'0'I30,-$&+.*-

Y(7@%(TV"7$$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfd?hg?hd$k!".+&*3/+"&1:$AhFg=$L8$^8=$L^#=$LWQS&(R=$L2)*/&(gh=$L55)'5&4.-=$L55&'$Y00(&=$L'+(&)-$c),<3)''=$L'+I$".'%5&I=L'*0'.&55I=$L*)(,=$L,*)(2/=$^)6036=$^&'U.55.)3-0'=$^5,&60Igh=$E/)(5&-$Y)**/&4-=$E.1/&(-=$E5.'7.'%"0%=$E0+&E)-*&(=$E052)-=$EI6&(206()=$"ZS)((&**&=$"2)31BAd=$"&(6&*/=$"/0&(5=$_+4)(+n8$q)'%=$_5.50=$_55.--0,'+=$_(.2$i&$^.%0*=$S/&**065)-*&(=$Z001&(65006=$M2&Y)'^()K.5=$V)3&-9/0(&=$c2f*1K=$c/)5.+$/)--)'.=$c7,=$i&T-&'-T2033,'=$i3)[)'0=$i0*[&=$Y)'%&@A=$Y)(2/)0-=Y)(*.'.%=$Y)F9&3=$Y7)(5&-7I=$W.%&5[=$W()6.'04.*K=$!),5$#0F40(*/I=$!&2)1&(01&5.=$!/.5.1$D(,&3)'=$!.'&2)(=$\b'b^=$\&+&)%5&hff=$\0+(.%&K=$\0IN-/&(0J&=$\-*)'+&<&(=$9.30'4)27&(=97IU)57&(=$95,6S5,6=$91,((I30-&-=$9*&1/)'$i&&+-=$9*&J&i0,%/()'=$D_^j>f=$D/,31&(4)(+=$D06.)-$^&(%&3)''=$D03(6[=$U/.*&/)47$[,5.&=$ABA$)'0'I30,-$&+.*-

G"5&.&$*(+%(;%7(+7".+#$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBjhfj?BBj$k!".+&*3/+"&1:$L%5A=$L'+(&4$_.-&'6&(%=$L--&'**=$^)+/3)1()7)-/=$^&'#()'*K")5&=$^5).-0(65)+&=$^06^)+0,(=$^0665&/&)+=$^,''I/01AA=$E9!(0<^.55=$E/)(5&-E=$E/(.-$*/&$-1&55&(=$E050'.&-$E/(.-=$"20&*K&&=$"&(&7%(&&(=$"(&<*I3)2=$_+0'%5.,=$_(.2AAg=$SD^)22/,-=$S,+&5+)(=$S,(2/=$S4)55)=$Z(J0[&9.3.2=$V)20605,-=$V-'F=$c)()+)=$c)(2/=$c0(10=$Y_\TE=$Y)2O,.%%=$Y)(.)$E$Y0-)7=$Y),(.2&$E)(60')(0=$Y++=$Y%(&&'6&=$Y/>g>??=$Y.2/)&5$Z)(+I=$Y.'%/0'%=$Y06.,-ABAAfh=$Y0,'*).'=W)*7&&()'=$W6)(*/=$W,15&F=$!),5$L,%,-*=$!2)1=$!.&(.'0>B=$!3&(-0'=$\&7.-/._V=$\&3,&5=$\06.'c=$9&Ah*&++I=$9/)4'$4.7.=$9.5-0(=$9.F9.F=$90<**&-*A>B=$9*&1/&'U&6&(=$9*&J&'$#0(*/=$9*.31Ijj=D)7)2K)17)=$D&+Z,-*&+=$D.+&$(055-=$U.'-*0'Bh?=$U00/007.**I=$?d$)'0'I30,-$&+.*-

K"5"+1"+7D%*+V"7$*(+$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBf?g@Bf@A$k!".+&*3/+"&1:$A#0(D/&Y0'&I=$L'+(&)-$c),<3)''=$L'+(&4$2=$L'+IS)J.'=$L'%,-$i&11&(=$L1)(()%)=$LJ&%)-=$^&5)'+=$^&'+&(>AA>=$^&('+$J+^=$^(.)'d>f=$^*Fd@=$EZBBjdZ=$E/)+/=$E/(.-*.)'_+4)(+S(,6&(=$E/,27$L+)3-=$E5&3&'*8&-20<<.&(=$EI6&(206()=$"_<,-.0'=$")'.&58E)(+&')-=$")*0.'&=

Page 59: Test-Driven Development Wikipedia Collection

L(*.25&$90,(2&-$)'+$E0'*(.6,*0(- ?j

"&(&7%(&&(=$"&FY=$".&%0$Y0I)=$"0'-&K=$"0()+,-=$"0*W&*S,I=$"0,65&2031.5&=$_6I)6&=$_/'=$_7)3&5&0'=$_51&2&7=$_3(I-7=$_(()'+.(=$#)*)5_((0(=$#5)-/9/&(.+)'=$#()'5=$#(&+(.7=$S(&%*,('=Z.%/c.'%=$V)+(.3)'=$V&5)15)'=$V[+)4-0'j=$V[&'70J>=$V0-/,)*6(04'=$V,5&-+=$c&'#&/5.'%=$c&(&+-0'=$c&J.'D&)%,&=$c&J.'6g'=$c/)5.+$/)--)'.=$c.205060=$c[.'A@A=$c[7056=$c7,=$c056)-K=$i)-*2()<*=i&+%&'+S)3&(=$i,3.'%K=$Y)*/.&,=$Y)*/(.27=$Y)*.--&_'K&(=$Y<,((=$Y.7&$#.7&-=$Y.-*&(2,12)7&=$Y0'%6&.=$Y0(*&'-&=$Y(N55.&=$YI92/.K0^,++I=$W&.52=$W&5-0'=$W&,(05I-.-=$W70/)(.=$W0-6.%=N'&.(0-=$!)6509*(),6=$!)'+(.[)=$!&*&($5)4(&I=$!&*&(828%()'*=$!&*&(!(0J0-*=$!.)'0$'0'$*(0110=$\i@gAg=$\)3.(03)%)5/)&-=$\&+U05<=$\.27^&*0'=$\0+6&27=$\1)4-0'=$\,A<+0=$9)&Agh>=$9&*)iI)-=9%(,'+-0&=$9/)'%(.hj=$9.70'=$9[2=$91)2&#5.%/*fg=$D/&$U.5+$#)520'=$D0()65.=$D(&IZ)((.-=$U.7.+(0'&=$q&T*/0('=$n&<5)-/&(=$>@g$)'0'I30,-$&+.*-

K"5"+1"+7D%*+-".#*(+%5.*+7*58"$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfhA>gd?>$k!".+&*3/+"&1:$L'+(&)-$c),<3)''=$^)(7&&1=$^5).-0(65)+&=$^3/3=$^1<,(*)+0=$^(&**(.%/*=")J&4/0>=$"&(&7%(&&(=$".&%0$Y0I)=$"�,%0-K=$c[7056=$i.%,5&3=$i1-.1/.=$N'&.(0-=$\.*.%)5)V)I)-&')=$A@$)'0'I30,-$&+.*-

B##".$*(+%<7()5'$*+3=$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l05+.+mBfhjhAjj>$k!".+&*3/+"&1:$L6+,55=$L/0&(-*&3&.&(=$L5)'-0/'=$L5&F-=$^&'LJ&5.'%=$^&'&5,F60I=$^776()+=$^5,&300-&=^*Fd@=$")J.+E)(I=$")J.+S(.&-=$"&7)(*=$"0,%$^&55=$"I-1(0-.)=$_2/0()I=$_F2.(.)5=$#)*^)-*)(+M'7=$#()%%5&*=$#,((I7&<=$#,KK.&=$S95.2&(=$S)5)F.))+=$S)'%h?=$S&'')(0$!(0*)=$S015)*=$S(&&'(+=S-16&&*5&=$Z001&(65006=$VY^)**.-*)=$V&()K05=$V%()/'=$V0/'$`)'+&'6&(%=$V1604&'=$c7,=$i&.6'.K=$i.**5&")'=$Y)F9&3=$Y.2/)&5$"&J0(&=$Y.1)+.=$Y,+Fjj=$W&.52=$W&0'Y&(5.'=$N5.1/),'*=$N(+&(,+=!VD().55=$!&,=$!(%(3(é4(7=$\).-&$&F2&1*.0'=$\.11&(>Bd=$\,'&<(0-*=$\,,+$c00*=$9)3$`)'$c00*&'=$9+0(()'2&=$9*&1/)'&6&%,.'=$D)7,I)Y,()*)=$D06.)-$^&(%&3)''=$U)12)15&*=$U.7.606=$U.'*&(-*=U5.&J&'-=$n.%%&(=$n(0'=$ëTAABí=$hB$)'0'I30,-$&+.*-

Page 60: Test-Driven Development Wikipedia Collection

M3)%&$90,(2&-=$i.2&'-&-$)'+$E0'*(.6,*0(- ?f

:)&3"%G('.7"#U%E*7"+#"#%&+1%0(+$.*T'$(.#:)&3"W!"#$21.*-"+%1"-"8(5)"+$NAC4$k="/&8':$/**1:;;&'84.7.1&+.)80(%;4;.'+&F81/1l*.*5&m#.5&:D&-*T+(.J&'p+&J&5013&'*8!WS$kU*8'.1':$E(&)*.J&$E0330'-$L**(.6,*.0'T9/)(&)5.7&$B8@k!".+&*3/+"&1:$C-&(:_F2.(.)5

Page 61: Test-Driven Development Wikipedia Collection

i.2&'-& ?g

E*7"+#"E(&)*.J&$E0330'-$L**(.6,*.0'T9/)(&$L5.7&$B8@$C'10(*&+/**1:;$;$2(&)*.J&20330'-8$0(%;$5.2&'-&-;$6IT-);$B8$@;