Ã¥¼Ò°³
TDD ¶§¹®¿¡ ÁÂÀýÀ» °æÇèÇÑ °³¹ßÀÚ¿¡°Ô µé·ÁÁÖ´Â TDD À̾߱â!
Å×½ºÆ® ÁÖµµ °³¹ß(Test-Driven Development)À̶ó ºÒ¸®´Â TDD´Â °³¹ßÀÚ »çÀÌ¿¡¼ ¸¹Àº À̽´°¡ µÇ¾ú°í, ÇöÀçµµ °ü½ÉÀ» ¸¹ÀÌ ¹Þ°í ÀÖ´Ù. ÇÏÁö¸¸ TDDÀÇ À¯¸í¼¼¿¡µµ ºÒ±¸ÇÏ°í, TDD¸¦ ½ÇÁ¦·Î Àû¿ëÇغ¸°Å³ª ÇнÀÇغ¸·Á´Â °ü½É°ú È£±â½ÉÀº ºÎÁ·ÇÏ´Ù. ¾Æ¸¶µµ TDD¿¡ ´ëÇÑ À߸øµÈ Áö½ÄÀ̳ª °íÁ¤°ü³ä, ¡®Å×½ºÆ® Äڵ带 ¸ÕÀú ¸¸µç´Ù¡¯´Â, Áö±Ý±îÁö üÇèÇÏÁö ¸øÇÑ °³³ä ¶§¹®ÀÏ °ÍÀÌ´Ù. TDD°¡ °ü½ÉÀ» ¹Þ´Â µ¥´Â ºÐ¸í ±×¸¸ÇÑ ÀÌÀ¯°¡ ÀÖ´Ù. ÀÌ Ã¥ÀÇ ÀúÀÚ´Â TDD¸¦ ½Ç¹«¿¡ µµÀÔÇÏ¸é¼ °Þ¾ú´ø ÁÂÀý°ú TDD¿¡ ´ëÇÑ ¿ÀÇØ, ±×¸®°í À̸¦ ÇØ°áÇØ ³ª°¡¸é¼ ¹è¿î °ÍµéÀ» ´ã¾Ò´Ù. À̸¦ ÅëÇؼ TDD¸¦ ½Ç¹«¿¡ ¾î¶»°Ô Àû¿ëÇÒ ¼ö ÀÖ´ÂÁö¿Í ½Ç¹« ÆÁÀ» ¹è¿ï ¼ö ÀÖ´Ù. ¶ÇÇÑ, TDD°¡ ¾î·Æ°í º¹ÀâÇÏ´Ù´Â ¿ÀÇظ¦ Ç®°í, ¿Ö TDD¸¦ »ç¿ëÇØ¾ß ÇÏ´ÂÁö ¾Ë°Ô µÉ °ÍÀÌ´Ù.
¸ñÂ÷
1Àå. ¹Ý°¡¿ö, TDD
__1.1 TDD, ¾îµð¿¡ ¾²´Â°¡?
__1.2 Áö±Ý TDD°¡ ÇÊ¿äÇÏ´Ù
2Àå. TDD¿¡ °üÇÑ ¿ÀÇØ¿Í Áø½Ç
__2.1 (¿ÀÇØ 1) TDD´Â ºñ¿ëÀÌ ´õ µé°í, °á±¹ °³¹ß ¼Óµµ¸¦ ÀúÇϽÃŲ´Ù
__2.2 (¿ÀÇØ 2) ÄÚµå Ä¿¹ö¸®Áö°¡ ³ôÀ¸¸é ÁÁÀº ÄÚµå´Ù
__2.3 (¿ÀÇØ 3) Áø¾Ðº¸´Ù ¿¹¹æ¿¡ ¼ÒºñµÇ´Â ºñ¿ëÀÌ ³ô´Ù
__2.4 (Áø½Ç 1) TDD != Unit Testing
__2.5 (Áø½Ç 2) TDD´Â ¼³°è °³¼±¿¡ µµ¿òÀ» ÁØ´Ù
3Àå. ÇöÀå À̾߱â
__3.1 Mock °´Ã¼, ¾ðÁ¦ ±×¸®°í ¾î¶»°Ô »ç¿ëÇÒ±î?
__3.2 Fixture, ¾î¶»°Ô »ç¿ëÇØ¾ß ÇÒ±î?
__3.3 TDD¿Í µðÀÚÀÎ ÆÐÅÏÀÇ ¾Æ¸§´Ù¿î µ¿Çà
__3.4 private ¸Þ¼µå ±×¸®°í ´ÜÀ§ Å×½ºÆ®
__3.5 ¸¸Áö±â ½ÈÀº ·¹°Å½Ã ÄÚµå, TDD°¡ ÇعýÀÌ´Ù
4Àå. TDD, ¿Ã¹Ù¸¥ »ç¿ë°ú »ç¿ë ½À°ü
__4.1 Top-DownÀ¸·Î ¹æÇâÀ» Àâ°í, Bottom-UpÀ¸·Î ±¸Çö¿¡ ÁýÁßÇÏÀÚ
__4.2 ¹Ùº¸ ´Ü°è °ÅÄ¡±â
__4.3 ½Ã³ª¸®¿À ±¸»óÇϱâ
__4.4 TDDÀÇ ´ÜÀ§ Å×½ºÆ®¸¦ ¹®¼ÈÇÏÀÚ
Appendix ¸¶Æ¾ ÆÄ¿ï·¯ÀÇ ¡°MockÀº StubÀÌ ¾Æ´Ï´Ù.¡±
__Mock°ú StubÀÇ ±¸ºÐÀ» ³Ñ¾î¼
__Driving TDD(TDD ÁøÇà ¹æ½ÄÀÇ Â÷ÀÌ)
__Fixture Setup(Fixture, ¾ó¸¶³ª ¾î¶»°Ô »ç¿ëÇϴ°¡?)
__Isolation(´ÜÀ§ Å×½ºÆ® °Ý¸®¿¡ ´ëÇÑ °üÁ¡ÀÇ Â÷ÀÌ)
__Coupling Tests to Implementations(´ÜÀ§ Å×½ºÆ®¿Í ±¸ÇöüÀÇ °áÇÕµµ¿¡ µû¸¥ ¿µÇâ)
__Design Style(Å×½ºÆ®°¡ ¼³°è¿¡ ¹ÌÄ¡´Â ¿µÇâ)
__´Ù¾çÇÑ ½Ã°¢, Á¡ÁøÀû »ç¿ë, ±×¸®°í ¼ºÀå