 |
|
 |
|
 |
 |
|
    |
SNS (ÆäÀ̽ººÏ, Æ®À§ÅÍ, ¹ÌÅõµ¥ÀÌ, MSN) ¸¦
ÅëÇØ YES24ÀÇ »óǰÁ¤º¸¸¦ ºü¸£°Ô ÃßõÇϰí,
Æí¸®ÇÏ°Ô °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. |
|
 |
 |
¿øÇÏ´Â ¼ºñ½ºÀÇ ¹öư Ŭ¸¯ |
 |
ÇØ´ç ¼ºñ½º ·Î±×ÀÎ |
 |
SNS¿¡ »óǰÁ¤º¸ ÀÚµ¿ÀÔ·Â |
 |
»óǰÁ¤º¸ º¸³»±â ¿Ï·á |
|
|
|
 |
|
 |
-
- Ãâ°£ÀÏ
-
2010³â 03¿ù 12ÀÏ
1056ÂÊ | 2024g | 188*254mm
- ISBN-13
9788960771253
ISBN-108960771252
- ÆÇ¸ÅÁß
| ÆÇ¸ÅÁö¼ö 1566
- ¹è¼Ûºñ
- ¹«·á

- ÁÖ¹®¼ö·®
-
- ÇØ¿Ü¹è¼Û°¡´É, ÃÖÀú°¡ º¸»ó
īƮ¿¡ »óǰÀÌ ´ã°å½À´Ï´Ù.




ÀÚµ¿ Å×½ºÆÃ(Automated testing)Àº ¾ÖÀÚÀÏ °³¹ßÀÇ ±âÃÊ·Î, Å×½ºÆÃ Àü·«À» Àß È°¿ëÇÏ¸é ±â´ÉÀÇ Ãß°¡¿Í »ç¿ëÀÚ Çǵå¹éÀ» ºü¸£°Ô ¹ÞÀ» ¼ö ÀÖ´Â µîÀÇ ±àÁ¤ÀûÀÎ ºÎºÐÀÌ ¸¹´Ù. ÇÏÁö¸¸ ¸¹Àº °³¹ßÀÚ°¡ ÀÚµ¿ Å×½ºÆ®¿¡ ´ëÇÑ °æÇèÀÌ ºÎÁ·ÇØ È¿°úÀûÀÎ Å×½ºÆ® ÀÛ¼ºÀ» ¾î·Á¿öÇÑ´Ù. ÀÌ Ã¥Àº °¡Àå Àαâ ÀÖ´Â ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ xUnitÀ¸·Î ÀÚµ¿ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¿Ïº®ÇÏ°Ô ¾È³»Çϰí ÀÖ´Ù.
ÀúÀÚ´Â ¾ÖÀÚÀÏ ÄÚÄ¡ÀÌÀÚ Å×½ºÆ® ÀÚµ¿È Àü¹®°¡·Î, Å×½ºÆ® ÀÛ¼º, ÀÌÇØ, À¯Áö º¸¼ö¸¦ ½±°Ô ÇØÁÖ´Â 68°³ÀÇ ÀÔÁõµÈ ÆÐÅÏÀ» ¼Ò°³ÇÑ´Ù. Å×½ºÆ® Àü·«¿¡¼ºÎÅÍ ½ÇÁ¦ Å×½ºÆ® ÄÚµù±îÁö Å×½ºÆ® ÀÚµ¿È¸¦ ´Ù·ç°í, ÀÚÁÖ ¸¸³¯ ¼ö ÀÖ´Â 18°¡Áö 'Å×½ºÆ® ³¿»õ' ¸ñ·ÏÀ» º¸¿©ÁÖ°í, ¹®Á¦ÀÇ ±Ùº» ¿øÀΰú ±×¿¡ ¸Â´Â °¡Àå Àû´çÇÑ ÆÐÅÏÀ» ã´Â µ¥ µµ¿òÀ» ÁÖ´Â ÇØ°á ¹æ¾ÈÀ» Á¦°øÇÑ´Ù. ¶ÇÇÑ °¢ ÆÐÅÏÀ» ÀÚ¼¼ÇÏ°Ô ¼³¸íÇϰí, ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ ¿¹Á¦ Äڵ带 ÅëÇØ ¸®ÆÑÅ丵ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.

ÀúÀÚ: Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)
Ͱŏ®(Calgary)¿¡ ÀÖ´Â ¾ÖÀÚÀÏ °³¹ß Àü¹® ÄÁ¼³ÆÃ ȸ»ç Ŭ¸®¾î½ºÆ®¸² ÄÁ¼³ÆÃ(ClearStream Consulting)ÀÇ ¼ö¼® °úÇÐÀÚ(Chief Scientist)ÀÌÀÚ ¼±ÀÓ ÄÁ¼³ÅÏÆ®´Ù. Á¦¶óµå´Â ½Ê ³â ÀÌ»ó ÀÚµ¿ ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ© ºÐ¾ß¿¡¼ °æÇèÀ» ½×¾Ò°í Å×½ºÆ® ÀÚµ¿ ÆÐÅÏ, ¼ÒÇÁÆ®¿þ¾î¿Í Å×½ºÆ® ¸®ÆÑÅ丵, Å×½ºÆ® ¿ëÀ̼ºÀ» À§ÇÑ ¼³°è ºÐ¾ß¸¦ ¼±µµÇÏ´Â Àü¹®°¡´Ù.
¿ªÀÚ: ¹ÚÀÏ
¿¬¼¼´ë ÄÄÇ»ÅͰúÇаú¸¦ Á¹¾÷Çß´Ù. 2000³â ÃÊ¿¡ °³¹ßÀ» ½ÃÀÛÇØ Áö±ÝÀº ¸®´ÏÁö2 ¼¹ö ÆÀ¿¡¼ ±Ù¹« ÁßÀÌ´Ù. ¿Å±ä Ã¥À¸·Î´Â ¡º½ºÅ©·³¡»(2008³â)ÀÌ ÀÖ´Ù.

¾î´Àµ¡ '´ÜÀ§ Å×½ºÆ®'¶ó´Â ´Ü¾î´Â °³¹ßÀÚµé »çÀÌ¿¡¼ Àͼ÷ÇØÁ³½À´Ï´Ù. ÆÀ¿¡ Àû¿ëÇϰí ÀÖ´Ù´Â ºÐµéµµ ¸¹´õ±º¿ä. JUnitÀº 4.8±îÁö ³ª¿Ô°í, ±¸±Û¿¡¼µµ GoogleTest °°Àº ÇÁ·ÎÁ§Æ®°¡ ³ª¿Ô½À´Ï´Ù. CruiseControlÀ̳ª Hudson °°Àº CI(Continuous Integration) Åø¿¡ ´ÜÀ§ Å×½ºÆ®¸¦ ºÙ¿© Áö¼ÓÀûÀÎ ÅëÇÕÀ» ÇÏ´Â ÆÀ»Ó¸¸ ¾Æ´Ï¶ó, ´ÜÀ§ Å×½ºÆ® ÄÚµå Ä¿¹ö¸®Áö 90% ÀÌ»ó ´Þ¼ºÀ» KPI·Î Àâ´Â °³¹ß ÆÀµµ ÀÖ´Ù°í µé¾ú½À´Ï´Ù.
ÀÌ·¸°Ô ´ÜÀ§ Å×½ºÆ®°¡ ¸¹ÀÌ ÀüÆÄµÈ °Íó·³ º¸ÀÌÁö¸¸ ¸·»ó °³¹ßÀÚµé ¾ê±â¸¦ µé¾îº¸¸é °í¹ÎÀÌ ¸¹½À´Ï´Ù. "Á¦´ë·Î µÈ Ã¥µµ º°·Î ¾ø°í, ¸ðÀÇ °´Ã¼(Mock Object)¸¦ ¾î¶»°Ô ¼³Á¤ÇØ¾ß ÇÏ´ÂÁö Àß ¸ð¸£°Ú°í, ÇÔ¼ö Çϳª¸¸ °íÃĵµ ÄÄÆÄÀÏ ¿¡·¯°¡ ³Ê¹« ¸¹ÀÌ ³ª¼ °³¹ß¿¡ °ÅÄ¡Àû°Å¸®´Â °Í¸¸ °°°í, °ü¸®ÀÚ´Â ±×·± °Å ¿Ö ÇÏ³Ä°í ¹«½ÃÇϱ⳪ Çϰí, ¿¡ÀÌ, ±×³É ÇÏÁö ¸»±î?"
¸®´ÏÁö2 °³¹ß ÆÀ¿¡¼´Â 2007³â 4¿ùºÎÅÍ ´ÜÀ§ Å×½ºÆ®(UnitTest++)¸¦ µµÀÔÇß½À´Ï´Ù. óÀ½ºÎÅÍ ½¬¿ü´ø °Ç ¾Æ´Õ´Ï´Ù. ÄÚµå ¿©±âÀú±â¸¦ #ifdef USING_TDD·Î °¨½ÎÁáÀ½¿¡µµ ºÒ±¸Çϰí Å×½ºÆ® ´ë»ó ½Ã½ºÅÛ(SUT, system unter test) Äڵ带 À߸ø °Çµå¸®´Â ¹Ù¶÷¿¡ ¿ÀÈ÷·Á ¾ø´ø ¹ö±×¸¦ ¸¸µé±âµµ Çϰí, if (g_bTesting) °°...¾î´Àµ¡ '´ÜÀ§ Å×½ºÆ®'¶ó´Â ´Ü¾î´Â °³¹ßÀÚµé »çÀÌ¿¡¼ Àͼ÷ÇØÁ³½À´Ï´Ù. ÆÀ¿¡ Àû¿ëÇϰí ÀÖ´Ù´Â ºÐµéµµ ¸¹´õ±º¿ä. JUnitÀº 4.8±îÁö ³ª¿Ô°í, ±¸±Û¿¡¼µµ GoogleTest °°Àº ÇÁ·ÎÁ§Æ®°¡ ³ª¿Ô½À´Ï´Ù. CruiseControlÀ̳ª Hudson °°Àº CI(Continuous Integration) Åø¿¡ ´ÜÀ§ Å×½ºÆ®¸¦ ºÙ¿© Áö¼ÓÀûÀÎ ÅëÇÕÀ» ÇÏ´Â ÆÀ»Ó¸¸ ¾Æ´Ï¶ó, ´ÜÀ§ Å×½ºÆ® ÄÚµå Ä¿¹ö¸®Áö 90% ÀÌ»ó ´Þ¼ºÀ» KPI·Î Àâ´Â °³¹ß ÆÀµµ ÀÖ´Ù°í µé¾ú½À´Ï´Ù.
ÀÌ·¸°Ô ´ÜÀ§ Å×½ºÆ®°¡ ¸¹ÀÌ ÀüÆÄµÈ °Íó·³ º¸ÀÌÁö¸¸ ¸·»ó °³¹ßÀÚµé ¾ê±â¸¦ µé¾îº¸¸é °í¹ÎÀÌ ¸¹½À´Ï´Ù. "Á¦´ë·Î µÈ Ã¥µµ º°·Î ¾ø°í, ¸ðÀÇ °´Ã¼(Mock Object)¸¦ ¾î¶»°Ô ¼³Á¤ÇØ¾ß ÇÏ´ÂÁö Àß ¸ð¸£°Ú°í, ÇÔ¼ö Çϳª¸¸ °íÃĵµ ÄÄÆÄÀÏ ¿¡·¯°¡ ³Ê¹« ¸¹ÀÌ ³ª¼ °³¹ß¿¡ °ÅÄ¡Àû°Å¸®´Â °Í¸¸ °°°í, °ü¸®ÀÚ´Â ±×·± °Å ¿Ö ÇÏ³Ä°í ¹«½ÃÇϱ⳪ Çϰí, ¿¡ÀÌ, ±×³É ÇÏÁö ¸»±î?"
¸®´ÏÁö2 °³¹ß ÆÀ¿¡¼´Â 2007³â 4¿ùºÎÅÍ ´ÜÀ§ Å×½ºÆ®(UnitTest++)¸¦ µµÀÔÇß½À´Ï´Ù. óÀ½ºÎÅÍ ½¬¿ü´ø °Ç ¾Æ´Õ´Ï´Ù. ÄÚµå ¿©±âÀú±â¸¦ #ifdef USING_TDD·Î °¨½ÎÁáÀ½¿¡µµ ºÒ±¸Çϰí Å×½ºÆ® ´ë»ó ½Ã½ºÅÛ(SUT, system unter test) Äڵ带 À߸ø °Çµå¸®´Â ¹Ù¶÷¿¡ ¿ÀÈ÷·Á ¾ø´ø ¹ö±×¸¦ ¸¸µé±âµµ Çϰí, if (g_bTesting) °°Àº Å×½ºÆ® ÈÅ(Test Hook)À» À߸ø ³Ö°Å³ª, °øÀ¯ ÇȽºÃ³(Shared Fixture)¸¦ Á¦´ë·Î ÇØÃ¼(Teardown)ÇÏÁö ¾Ê¾Æ¼ ´Ù¸¥ ÆÀ¿øµé±îÁö ¸¹ÀÌ °í»ý½ÃÄ×½À´Ï´Ù.
ÇÏÁö¸¸ ¸¹Àº ºÐ²²¼ µµ¿ÍÁֽŠ´öºÐ¿¡ ´ÜÀ§ Å×½ºÆ®´Â Á¡Â÷ ¾ÈÁ¤µÇ¾î °¬½À´Ï´Ù. 2007³â¿¡ 200¿© °³¿´´ø ´ÜÀ§ Å×½ºÆ®´Â 2009³â¿¡´Â 1,300°³ ÀÌ»óÀ¸·Î ´Ã¾ú½À´Ï´Ù. ´ÜÀ§ Å×½ºÆ®°¡ ½ÇÆÐÇÏ¸é °³¹ß ÆÀ Àü¿ø¿¡°Ô À̸ÞÀÏÀ» º¸³» ¿Ö Å×½ºÆ®°¡ ±úÁ³´ÂÁö¸¦ ¸ðµÎ°¡ °øÀ¯ÇÏ°í µµ¿ÍÁÙ ¼ö ÀÖ°Ô Çß½À´Ï´Ù. ´öºÐ¿¡ ³ªÁß¿¡´Â ±âȹ ÆÀ°ú ÇÔ²² ´ÜÀ§ Å×½ºÆ® Äڵ带 º¸¸é¼ ±â´ÉÀÌ ¼öÁ¤µÉ ¶§ °á°ú°¡ ¾î¶³Áö¸¦ ¹Ù·Î È®ÀÎÇÒ ¼ö ÀÖ¾ú°í, ÈξÀ Æí¾ÈÇÑ ¸¶À½À¸·Î ¸®ÆÑÅ丵ÇÏ°í »õ·Î¿î ±â´ÉÀ» ºü¸£°Ô Ãß°¡ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. KGC(Korea Games Conference) 2008 °¿¬À» ÁغñÇÏ¸é¼ ´ÜÀ§ Å×½ºÆ®°¡ ÆÀÀÇ °³¹ß¿¡ ¾î¶² µµ¿òÀ» ÁÖ¾ú´ÂÁö¸¦ º¸±â À§ÇØ ¹ö±× Æ®·¡Ä¿ ÀڷḦ ±â¹ÝÀ¸·Î °³¹ß ±â°£ µ¿¾È ¹ß»ýÇÑ ¹ö±× °³¼ö¿Í ¿¡·¯ ¼öÁ¤¿¡ °É¸®´Â ½Ã°£À» ÆÀ Àüü¿Í ´ÜÀ§ Å×½ºÆ®°¡ Àû¿ëµÈ ÆÄÆ®·Î ³ª´² Á¶»çÇØºÃ½À´Ï´Ù. ±× °á°ú ´ÜÀ§ Å×½ºÆ® °³¼ö°¡ ´Ã¾î³¯¼ö·Ï ¹ö±× ¹ß»ý ºñÀ²ÀÌ ³·¾ÆÁö°í, ¹ö±× ¼öÁ¤ ¼Óµµµµ ÃÖ´ë 2¹è ÀÌ»ó »¡¶óÁ³À½À» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù(°ü·Ã ÀÚ·á: http://parkpd.egloos. com/1944077).
ÀÌ Ã¥ ¡ºxUnit Å×½ºÆ® ÆÐÅÏ¡»¿¡´Â ´ÜÀ§ Å×½ºÆ®¿¡ ´ëÇÑ °ÅÀÇ ¸ðµç Á¤º¸°¡ µé¾î ÀÖ½À´Ï´Ù. 'ÀÌ Ã¥À» 1~2³â¸¸ ´õ »¡¸® Àоú´õ¶ó¸é »ðÁúÀ» ´ú ÇßÀ» ÅÙµ¥' ÇÏ´Â »ý°¢¿¡ ¾Æ½¬¿òµµ µé´õ±º¿ä. '¿ì¸® ÇÁ·ÎÁ§Æ®¿¡¼´Â ¾î¶»°Ô Àû¿ëÇØº¼ ¼ö ÀÖÀ»±î'¸¦ »ý°¢ÇÏ¸é¼ ÀÐÀ¸¸é ´õ Àç¹ÌÀÖ°Ô º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌÇØ°¡ Àß ¾È µÉ ¶§´Â ¿¹Á¦ Äڵ带 ¸ÕÀú º¸¼¼¿ä. ¶§·Î´Â õ¸¶µð ±Ûº¸´Ù ÇÑ ÁÙÀÇ Äڵ尡 ´õ ÀÌÇØÇϱ⠽¬¿ï ¶§°¡ ÀÖÀ¸´Ï±î¿ä.
--- '¿ªÀÚÀÇ ¸»' Áß¿¡¼

ÀÚµ¿ Å×½ºÆÃ(Automated testing)Àº ¾ÖÀÚÀÏ °³¹ßÀÇ ±âÃÊ´Ù. Å×½ºÆÃ Àü·«À» Àß È°¿ëÇÏ¸é ±â´ÉÀ» °ú°¨ÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ°í, »ç¿ëÀÚ Çǵå¹éÀ» ºü¸£°Ô ¹ÞÀ» ¼ö ÀÖÀ¸¸ç, ǰÁúÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¸¹Àº °³¹ßÀÚ°¡ ÀÚµ¿ Å×½ºÆ®¿¡ ´ëÇÑ °æÇèÀÌ ºÎÁ·ÇØ È¿°úÀûÀÎ Å×½ºÆ® ÀÛ¼ºÀ» ¾î·Á¿öÇÑ´Ù.
¡ºxUnit Å×½ºÆ® ÆÐÅÏ¡»Àº °¡Àå Àαâ ÀÖ´Â ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ xUnitÀ¸·Î ÀÚµ¿ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¿Ïº®ÇÏ°Ô ÁöµµÇØÁØ´Ù. ¾ÖÀÚÀÏ ÄÚÄ¡ÀÌÀÚ Å×½ºÆ® ÀÚµ¿È Àü¹®°¡ÀÎ Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)´Â Å×½ºÆ® ÀÛ¼º, ÀÌÇØ, À¯Áö º¸¼ö¸¦ ½±°Ô ÇØÁÖ´Â 68°³ÀÇ ÀÔÁõµÈ ÆÐÅÏÀ» ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¾î¶»°Ô Çϸé Å×½ºÆ®¸¦ ´õ °ß°íÇÏ°í ¹Ýº¹ °¡´ÉÇϸç, ½±°Ô ¸¸µé ¼ö ÀÖ´ÂÁöµµ º¸¿©ÁØ´Ù.
ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë
Å×½ºÆ®¸¦ ´õ ºü¸£°Ô, Àß ÀÛ¼ºÇÏ´Â ¹æ¹ý ÀÚµ¿ Å×½ºÆ®ÀÇ 4´Ü°è: ÇȽºÃ³ ¼³Ä¡, Å×½ºÆ® ´ë»ó ½Ã½ºÅÛ ½ÇÇà, °á°ú °ËÁõ, ÇȽºÃ³ ÇØÃ¼ Å×½ºÆ® ½ºÅÓ(Test Stub)°ú ¸ðÀÇ °´Ã¼(Mock Object)·Î ¼ÒÇÁÆ®¿þ¾î¸¦ ȯ°æÀ¸·ÎºÎÅÍ °Ý¸®½ÃÄÑ Å×½ºÆ® Ä¿¹ö¸®Áö¸¦ Çâ»ó½ÃŰ´Â ¹æ¹ý Å×½ºÆ®Çϱâ ÁÁ°Ô ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³°èÇÏ´Â ¹æ¹ý (ÄÚµå ³¿»õ, µ¿ÀÛ ³¿»õ, ÇÁ·ÎÁ§Æ® ³¿»õ¸¦ Æ÷ÇÔÇÑ) Å×½ºÆ® '³¿»õ'·Î ¹®Á¦¸¦ ÆÄ¾ÇÇϰí, ÀÌ·± ³¿»õ¸¦ ¾ðÁ¦ ¾î¶»°Ô Á¦°ÅÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¾Æ³»´Â ¹æ¹ý Å×½ºÆ®¸¦ ¸®ÆÑÅä¸µÇØ ´õ ´Ü¼øÇÏ°í °ß°íÇÏ¸ç ºü¸£°Ô ½ÇÇàµÉ ¼ö ÀÖ°Ô ¸¸µå´Â ¹æ¹ý
ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ °³¹ßÀÚ, °ü¸®ÀÚ, Å×½ºÅÍ¿¡°Ô ÇÊ¿äÇÑ Ã¥ÀÌ´Ù. ¾ÖÀÚÀÏ °³¹ß ȯ°æ¿¡¼ ÀÏÇÏ´À³Ä, ÀüÅëÀûÀÎ °³¹ß ȯ°æ¿¡¼ ÀÏÇÏ´À³Ä, Å×½ºÆ® ÁÖµµ °³¹ßÀ» ÇÏ´À³Ä, Å×½ºÆ® ³ªÁß ÀÛ¼ºÀ» ÇÏ´À³Ä´Â Áß¿äÇÏÁö ¾Ê´Ù. ÀÌ Ã¥¿¡¼ ³ª¿Â ÆÐÅϰú ³¿»õµéÀº ¸ðµç xUnit °è¿¿¡ Àû¿ëÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó Â÷¼¼´ë µ¿ÀÛ ÁÖµµ °³¹ß(Behavior-Driven Development) ÇÁ·¹ÀÓ¿öÅ©ÀÎ RSpect, JBehave»Ó¸¸ ¾Æ´Ï¶ó ±â·Ï Å×½ºÆ® ÅøÀ̶óµçÁö, Fit³ª FitNesse °°Àº µ¥ÀÌÅÍ ÁÖµµ Å×½ºÆ®(Data-Driven Test) Åø¿¡¼µµ Ȱ¿ëÇÒ ¼ö ÀÖ´Ù.
ÀÌ Ã¥ÀÇ ±¸¼º
3±ÇÀÇ Ã¥À» ÇÑ ±ÇÀ¸·Î ÇÕÃÄ ³õÀº µíÇÑ ¹æ´ëÇÑ ³»¿ëÀ¸·Î ±¸¼ºµÅÀÖ´Ù. 1ºÎ¿¡¼´Â Å×½ºÆ® Àü·«¿¡¼ºÎÅÍ ½ÇÁ¦ Å×½ºÆ® ÄÚµù±îÁö Å×½ºÆ® ÀÚµ¿È¿¡ ´ëÇÑ ¸ðµç °ÍÀ» ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÑ´Ù. 2ºÎ¿¡¼´Â ÀÚÁÖ ¸¸³¯ ¼ö ÀÖ´Â 18°¡Áö 'Å×½ºÆ® ³¿»õ' ¸ñ·ÏÀ» º¸¿©ÁÖ°í, ¹®Á¦ÀÇ ±Ùº» ¿øÀΰú ±×¿¡ ¸Â´Â °¡Àå Àû´çÇÑ ÆÐÅÏÀ» ã´Â µ¥ µµ¿òÀ» ÁÖ´Â ÇØ°á ¹æ¾ÈÀ» Á¦°øÇÑ´Ù. 3ºÎ¿¡¼´Â °¢ ÆÐÅÏÀ»...ÀÚµ¿ Å×½ºÆÃ(Automated testing)Àº ¾ÖÀÚÀÏ °³¹ßÀÇ ±âÃÊ´Ù. Å×½ºÆÃ Àü·«À» Àß È°¿ëÇÏ¸é ±â´ÉÀ» °ú°¨ÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ°í, »ç¿ëÀÚ Çǵå¹éÀ» ºü¸£°Ô ¹ÞÀ» ¼ö ÀÖÀ¸¸ç, ǰÁúÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¸¹Àº °³¹ßÀÚ°¡ ÀÚµ¿ Å×½ºÆ®¿¡ ´ëÇÑ °æÇèÀÌ ºÎÁ·ÇØ È¿°úÀûÀÎ Å×½ºÆ® ÀÛ¼ºÀ» ¾î·Á¿öÇÑ´Ù.
¡ºxUnit Å×½ºÆ® ÆÐÅÏ¡»Àº °¡Àå Àαâ ÀÖ´Â ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ xUnitÀ¸·Î ÀÚµ¿ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¿Ïº®ÇÏ°Ô ÁöµµÇØÁØ´Ù. ¾ÖÀÚÀÏ ÄÚÄ¡ÀÌÀÚ Å×½ºÆ® ÀÚµ¿È Àü¹®°¡ÀÎ Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)´Â Å×½ºÆ® ÀÛ¼º, ÀÌÇØ, À¯Áö º¸¼ö¸¦ ½±°Ô ÇØÁÖ´Â 68°³ÀÇ ÀÔÁõµÈ ÆÐÅÏÀ» ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¾î¶»°Ô Çϸé Å×½ºÆ®¸¦ ´õ °ß°íÇÏ°í ¹Ýº¹ °¡´ÉÇϸç, ½±°Ô ¸¸µé ¼ö ÀÖ´ÂÁöµµ º¸¿©ÁØ´Ù.
ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë
Å×½ºÆ®¸¦ ´õ ºü¸£°Ô, Àß ÀÛ¼ºÇÏ´Â ¹æ¹ý ÀÚµ¿ Å×½ºÆ®ÀÇ 4´Ü°è: ÇȽºÃ³ ¼³Ä¡, Å×½ºÆ® ´ë»ó ½Ã½ºÅÛ ½ÇÇà, °á°ú °ËÁõ, ÇȽºÃ³ ÇØÃ¼ Å×½ºÆ® ½ºÅÓ(Test Stub)°ú ¸ðÀÇ °´Ã¼(Mock Object)·Î ¼ÒÇÁÆ®¿þ¾î¸¦ ȯ°æÀ¸·ÎºÎÅÍ °Ý¸®½ÃÄÑ Å×½ºÆ® Ä¿¹ö¸®Áö¸¦ Çâ»ó½ÃŰ´Â ¹æ¹ý Å×½ºÆ®Çϱâ ÁÁ°Ô ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³°èÇÏ´Â ¹æ¹ý (ÄÚµå ³¿»õ, µ¿ÀÛ ³¿»õ, ÇÁ·ÎÁ§Æ® ³¿»õ¸¦ Æ÷ÇÔÇÑ) Å×½ºÆ® '³¿»õ'·Î ¹®Á¦¸¦ ÆÄ¾ÇÇϰí, ÀÌ·± ³¿»õ¸¦ ¾ðÁ¦ ¾î¶»°Ô Á¦°ÅÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¾Æ³»´Â ¹æ¹ý Å×½ºÆ®¸¦ ¸®ÆÑÅä¸µÇØ ´õ ´Ü¼øÇÏ°í °ß°íÇÏ¸ç ºü¸£°Ô ½ÇÇàµÉ ¼ö ÀÖ°Ô ¸¸µå´Â ¹æ¹ý
ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ °³¹ßÀÚ, °ü¸®ÀÚ, Å×½ºÅÍ¿¡°Ô ÇÊ¿äÇÑ Ã¥ÀÌ´Ù. ¾ÖÀÚÀÏ °³¹ß ȯ°æ¿¡¼ ÀÏÇÏ´À³Ä, ÀüÅëÀûÀÎ °³¹ß ȯ°æ¿¡¼ ÀÏÇÏ´À³Ä, Å×½ºÆ® ÁÖµµ °³¹ßÀ» ÇÏ´À³Ä, Å×½ºÆ® ³ªÁß ÀÛ¼ºÀ» ÇÏ´À³Ä´Â Áß¿äÇÏÁö ¾Ê´Ù. ÀÌ Ã¥¿¡¼ ³ª¿Â ÆÐÅϰú ³¿»õµéÀº ¸ðµç xUnit °è¿¿¡ Àû¿ëÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó Â÷¼¼´ë µ¿ÀÛ ÁÖµµ °³¹ß(Behavior-Driven Development) ÇÁ·¹ÀÓ¿öÅ©ÀÎ RSpect, JBehave»Ó¸¸ ¾Æ´Ï¶ó ±â·Ï Å×½ºÆ® ÅøÀ̶óµçÁö, Fit³ª FitNesse °°Àº µ¥ÀÌÅÍ ÁÖµµ Å×½ºÆ®(Data-Driven Test) Åø¿¡¼µµ Ȱ¿ëÇÒ ¼ö ÀÖ´Ù.
ÀÌ Ã¥ÀÇ ±¸¼º
3±ÇÀÇ Ã¥À» ÇÑ ±ÇÀ¸·Î ÇÕÃÄ ³õÀº µíÇÑ ¹æ´ëÇÑ ³»¿ëÀ¸·Î ±¸¼ºµÅÀÖ´Ù. 1ºÎ¿¡¼´Â Å×½ºÆ® Àü·«¿¡¼ºÎÅÍ ½ÇÁ¦ Å×½ºÆ® ÄÚµù±îÁö Å×½ºÆ® ÀÚµ¿È¿¡ ´ëÇÑ ¸ðµç °ÍÀ» ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÑ´Ù. 2ºÎ¿¡¼´Â ÀÚÁÖ ¸¸³¯ ¼ö ÀÖ´Â 18°¡Áö 'Å×½ºÆ® ³¿»õ' ¸ñ·ÏÀ» º¸¿©ÁÖ°í, ¹®Á¦ÀÇ ±Ùº» ¿øÀΰú ±×¿¡ ¸Â´Â °¡Àå Àû´çÇÑ ÆÐÅÏÀ» ã´Â µ¥ µµ¿òÀ» ÁÖ´Â ÇØ°á ¹æ¾ÈÀ» Á¦°øÇÑ´Ù. 3ºÎ¿¡¼´Â °¢ ÆÐÅÏÀ» ÀÚ¼¼ÇÏ°Ô ¼³¸íÇϰí, ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ ¿¹Á¦ Äڵ带 ÅëÇØ ¸®ÆÑÅ丵ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
¡ºxUnit Å×½ºÆ® ÆÐÅÏ¡»Àº °¡Àå Àαâ ÀÖ´Â ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ xUnitÀ¸·Î ÀÚµ¿ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¿Ïº®ÇÏ°Ô ÁöµµÇØÁØ´Ù. ¾ÖÀÚÀÏ ÄÚÄ¡ÀÌÀÚ Å×½ºÆ® ÀÚµ¿È Àü¹®°¡ÀÎ Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)´Â Å×½ºÆ® ÀÛ¼º, ÀÌÇØ, À¯Áö º¸¼ö¸¦ ½±°Ô ÇØÁÖ´Â 68°³ÀÇ ÀÔÁõµÈ ÆÐÅÏÀ» ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¾î¶»°Ô Çϸé Å×½ºÆ®¸¦ ´õ °ß°íÇÏ°í ¹Ýº¹ °¡´ÉÇϸç, ½±°Ô ¸¸µé ¼ö ÀÖ´ÂÁöµµ º¸¿©ÁØ´Ù.

|