·Î±×ÀÎ ¤Ó ȸ¿ø°¡ÀÔ ¤Ó Àå¹Ù±¸´Ï ¤Ó °í°´¼¾ÅÍ ¤Ó ¸¶ÀÌÆäÀÌÁö ¤Ó ȸ»ç¼Ò°³
kangcom
java , ¾Èµå·ÎÀ̵å , asp ¼îÇθô , »ö¼ÒÆùÀÇ ´ÞÀÎ
Àüü
°­ÄÄÀº Áö±Ý ºò ¼¼ÀÏÁß!-¸ðµçµµ¼­ ÃÖ´ë50%
Àαâ°Ë»ö¾î 
Home >   >   > 
xUnit Å×½ºÆ® ÆÐÅÏ [68°¡Áö ´ÜÀ§ Å×½ºÆ® ÆÐÅÏÀ» ÅëÇÑ Å×½ºÆ® ÄÚµå ¸®ÆÑÅ丵 ±â¹ý]   
ÁöÀºÀÌ Á¦¶óµå ¸Þ½ºÀڷνº ¿ªÀÚ : ¹ÚÀÏ   |   ÃâÆÇ»ç ¿¡ÀÌÄÜ  |   ¹ßÇàÀÏ 2010³â 03¿ù 12ÀÏ
 
Ŭ¸¯ÇϽøé Å« µµ¼­À̹ÌÁö¸¦ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
ÆÇ¸Å°¡ 48,000¿ø ¡æ 43,200¿ø 10%
¸¶Àϸ®Áö 10% 4,320¿ø
¹ßÇàÀÏ 2010-03-12
ISBN 8960771252 | 9788960771253
±âŸÁ¤º¸ ¹ø¿ª¼­ | 1056ÂÊ
¿¹»óÃâ°íÀÏ 1ÀÏ (±Ù¹«ÀϱâÁØ)
¹è¼Ûºñ ¹«·á¹è¼Û
   
¼ÒÇÁÆ®¿þ¾î
Á¾ÇÕÁö¼ö 15p 40 À§
¿ù°£Áö¼ö 21p 2 À§
   
  ¡Ø ³×À̹ö üũ¾Æ¿ôÀ¸·Î ±¸¸Å½Ã ºñȸ¿øÀ¸·Î ±¸¸Å°¡
      µÊÀ¸·Î °­ÄÄ ¸¶Àϸ®Áö´Â Àû¸³ µÇÁö ¾Ê½À´Ï´Ù.
 


[ÃâÆÇ»ç¼­Æò]

< ¿ä¾à >

¡ºxUnit Å×½ºÆ® ÆÐÅÏ¡»Àº °¡Àå Àαâ ÀÖ´Â ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ xUnitÀ¸·Î ÀÚµ¿ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¿Ïº®ÇÏ°Ô ÁöµµÇØÁØ´Ù. ¾ÖÀÚÀÏ ÄÚÄ¡ÀÌÀÚ Å×½ºÆ® ÀÚµ¿È­ Àü¹®°¡ÀÎ Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)´Â Å×½ºÆ® ÀÛ¼º, ÀÌÇØ, À¯Áö º¸¼ö¸¦ ½±°Ô ÇØÁÖ´Â 68°³ÀÇ ÀÔÁõµÈ ÆÐÅÏÀ» ¼Ò°³ÇÑ´Ù. ¶ÇÇÑ ¾î¶»°Ô Çϸé Å×½ºÆ®¸¦ ´õ °ß°íÇÏ°í ¹Ýº¹ °¡´ÉÇϸç, ½±°Ô ¸¸µé ¼ö ÀÖ´ÂÁöµµ º¸¿©ÁØ´Ù.

< ¼Ò°³ >

ÀÚµ¿ Å×½ºÆÃ(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ºÎ¿¡¼­´Â °¢ ÆÐÅÏÀ» ÀÚ¼¼ÇÏ°Ô ¼³¸íÇϰí, ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ ¿¹Á¦ Äڵ带 ÅëÇØ ¸®ÆÑÅ丵ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.


¡Ú ÃßõÀÇ ±Û ¡Ú

junit.org¿¡ °¡º¸¸é Á¦°¡ ´ÙÀ½°ú °°ÀÌ ½á ³õÀº ±ÛÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¡°¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ÀÖ¾î ÀÌó·³ ¸¹Àº »ç¶÷ÀÌ ÀÌ·¸°Ô ÀûÀº ÄÚµå·ÎºÎÅÍ ÀÌ·± Å« µµ¿òÀ» ¹ÞÀº ÀûÀº ¾ø¾ú´Ù.¡± ¸¹Àº »ç¶÷ÀÌ JUnitÀ» ¶È¶ÈÇÑ ÇÁ·Î±×·¡¸Ó°¡ ÀÏÁÖÀÏÀÌ¸é ¸¸µé ¼ö ÀÖ´Â º° °Å ¾Æ´Ñ °ÍÀ̶ó°í ȤÆòÇØ¿Ô½À´Ï´Ù. ±×·± Æò°¡°¡ »ç½ÇÀÏÁö´Â ¸ô¶óµµ Çٽɿ¡´Â ¿ÏÀüÈ÷ ¹þ¾î³ª ÀÖ½À´Ï´Ù. JUnitÀÌ Áß¿äÇϰí óĥÀÇ ¿¬¼³(¡°Àηù ºÐÀïÀÇ ¿µ¿ª¿¡ ÀÖ¾î ÀÌó·³ ¸¹Àº »ç¶÷ÀÌ ÀÌ·¸°Ô ÀûÀº »ç¶÷µé¿¡°Ô ÀÌ·± Å« µµ¿òÀ» ¹ÞÀº ÀûÀÌ ¾ø¾ú´Ù¡±¶ó´Â ¿¬¼³Àº óĥÀÌ ¿µ±¹ º»ÅäÇ×°øÀü ½Â¸® ÀÌÈÄ ¿Õ¸³°ø±º Á¶Á¾»çµéÀÇ ³ë°í¸¦ Ä¡ÇÏÇϸç ÇÑ ¸»ÀÓ - ¿Å±äÀÌ)À» ÆÐ·¯µðÇÒ ÀÚ°ÝÀÌ ÀÖ´Â ÀÌÀ¯´Â, ÀÌ·± ÀÛÀº µµ±¸ ´öºÐ¿¡ ¼ö¸¹Àº ÇÁ·Î±×·¡¸Ó¿¡°Ô Å×½ºÆÃÀÌ ÇÁ·Î±×·¡¹ÖÀÇ Áß½ÉÀÌÀÚ Àü¸éÀ¸·Î ¶°¿À¸¦ ¼ö ÀÖ´Â °è±â°¡ µÆ±â ¶§¹®ÀÔ´Ï´Ù. ÀÌÀü¿¡µµ À̸¦ ÁÖÀåÇØ ¿Â »ç¶÷µéÀÌ ÀÖ¾úÁö¸¸ ¹«¾ùº¸´Ùµµ JUnitÀÌ ÀÌ·± º¯È­¿¡ °¡Àå Å©°Ô ±â¿©Çß½À´Ï´Ù.

¹°·Ð xUnitÀº ´Ü¼øÇÑ JUnitÀÌ ¾Æ´Ñ ±× ÀÌ»óÀÇ °ÍÀÔ´Ï´Ù. JUnitÀº ¼ö¸¹Àº ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î Æ÷ÆÃµÆ½À´Ï´Ù. xUnit µµ±¸¶ó°í ºÒ¸®±âµµ ÇÏ´Â Àϰ¡Ä£Ã´ °°Àº µµ±¸µéÀº ÀÚ¹Ù¶ó´Â »Ñ¸®¸¦ ³Ñ¾î ¸Ö¸®¸Ö¸® ÆÛÁ®³ª°¬½À´Ï´Ù(»ç½Ç »Ñ¸®´Â ÀÚ¹Ù°¡ ¾Æ´Õ´Ï´Ù. JUnitº¸´Ù ¸î ³â Àü¿¡ ÄËÆ® º¤(Kent Beck)ÀÌ ½º¸ôÅäÅ©·Î ¸ÕÀú ¸¸µé¾ú½À´Ï´Ù).

xUnit Åø°ú öÇÐÀº ÇÁ·Î±×·¡¹Ö ÆÀÀÌ ÀûÀº ¸®½ºÅ©·Î Äڵ带 ´ë´ÜÀ§·Î ¼öÁ¤ÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÖ´Â °­·ÂÇÑ È¸±Í Å×½ºÆ® ½ºÀ§Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ°í, Å×½ºÆ® ÁÖµµ °³¹ß·Î ¼³°è °úÁ¤À» ´Ù½Ã »ý°¢Çغ¼ ¼ö ÀÖ´Â ±²ÀåÇÑ ±âȸ¸¦ Á¦°øÇÕ´Ï´Ù.

ÇÏÁö¸¸ ÀÌ·± ±âȸ¿Í ´õºÒ¾î »õ·Î¿î ¹®Á¦¿Í ±â¼úµµ »ý°å½À´Ï´Ù. ´Ù¸¥ µµ±¸Ã³·³ xUnitµµ ´É¼÷ÇÏ°Ô ¾²ÀÌ´Â °æ¿ìµµ ÀÖÁö¸¸ ¼­Åõ¸£°Ô ¾²À̱⵵ ÇÕ´Ï´Ù. ¶È¶ÈÇÑ »ç¶÷µéÀº xUnitÀ¸·Î Å×½ºÆ®¿Í µ¥ÀÌÅ͸¦ È¿°úÀûÀ¸·Î Á¶Á÷ÇÒ ¼ö ÀÖ´Â ¿©·¯ ¹æ¹ýÀ» ã¾Æ³Â½À´Ï´Ù. ÃÊâ±â °´Ã¼ÁöÇ⠽ô뿡¼­Ã³·³ xUnit µµ±¸¸¦ Àß »ç¿ëÇÒ ¼ö ÀÖ´Â Áö½Ä ´ëºÎºÐÀº ¼÷·ÃµÈ »ç¶÷µéÀÇ ¸Ó¸´¼Ó¿¡¸¸ ¼û¾î ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ¼û¾îÀÖ´Â Áö½Ä ¾øÀÌ´Â xUnitÀÇ ÇýÅÃÀ» 100% ¾òÁö ¸øÇÕ´Ï´Ù.

°´Ã¼ÁöÇâ ÂÊ »ç¶÷µéÀÌ °´Ã¼¿¡ ÀÌ·± ¹®Á¦°¡ ÀÖ´Ù´Â °É ±ú´Ý°í ÇØ´äÀ» ã±â ½ÃÀÛÇÑ °ÍÀÌ °ÅÀÇ 20³â ÀüÀÔ´Ï´Ù. ±× ÇØ´äÀº ¼û¾îÀÖ´Â Áö½ÄÀ» ÆÐÅÏ Çü½ÄÀ¸·Î ÀÛ¼ºÇÏ´Â °ÍÀ̾ú½À´Ï´Ù. Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)´Â ÀÌ·± ÀÏÀ» ÇÏ´Â ¼±±¸ÀÚ Áß ÇÑ ¸íÀ̾ú½À´Ï´Ù. Á¦°¡ óÀ½ ÆÐÅÏÀ» °øºÎÇÒ ¶§ Á¦¶óµå´Â Á¦°¡ ¹è¿ü´ø ¸®´õ Áß ÇÑ ¸íÀ̾ú½À´Ï´Ù. ÆÐÅÏ ¼¼°è¿¡ ÀÖ´Â ´Ù¸¥ ¿©·¯ »ç¶÷ó·³ Á¦¶óµå ¿ª½Ã ÀͽºÆ®¸² ÇÁ·Î±×·¡¹ÖÀ» ÃÊâ±â¿¡ µµÀÔÇß°í ´öºÐ¿¡ ÃÊâ±âºÎÅÍ xUnit µµ±¸·Î ÀÛ¾÷ÇØ¿Ô½À´Ï´Ù. ÀÌ·¯´Ï Á¦¶óµå°¡ ÀÌ·± Àü¹® Áö½ÄÀ» ÆÐÅÏ Çü½ÄÀ¸·Î ±â·ÏÇÏ´Â ÀÛ¾÷À» ¸Ã´Â °Ç ´ç¿¬ÇÕ´Ï´Ù.

Àú´Â óÀ½ ÀÌ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ¾ê±â¸¦ µè°í ±²ÀåÈ÷ µé¶¹½À´Ï´Ù(Àú´Â ÀÌ Ã¥À» ÀúÀÇ ¸¶Æ¾ ÆÄ¿ï·¯ ½Ã¸®Áî¿¡ Ãß°¡ÇÏ°í ½Í¾úÀ¸¹Ç·Î ¿Â°® ¼ö¸¦ ´Ù ½á¼­ ÀÌ Ã¥À» ¹ä ¸¶Æ¾(Bob Martin) ½Ã¸®Áî¿¡¼­ »©³»¿Ô½À´Ï´Ù). ´Ù¸¥ ÁÁÀº ÆÐÅÏ Ã¥°ú ¸¶Âù°¡Áö·Î ÀÌ Ã¥Àº »õ·Î¿î »ç¶÷µé¿¡°Ô ÀÌ ÂÊ ºÐ¾ß¿¡ ´ëÇÑ Áö½ÄÀ» Á¦°øÇÒ »Ó¸¸ ¾Æ´Ï¶ó °æÇè ¸¹Àº Àü¹®°¡°¡ ÀÚ½ÅÀÇ Áö½ÄÀ» µ¿·áµé¿¡°Ô Àü´ÞÇϱâ À§ÇÑ ¿ë¾î¿Í ±âÃʸ¦ Á¦°øÇÕ´Ï´Ù. À¯¸íÇÑ Gang of FourÀÇ Ã¥ÀÎ ¡ºµðÀÚÀÎ ÆÐÅÏ(Design Patterns)¡»Àº ¸¹Àº »ç¶÷¿¡°Ô °´Ã¼ÁöÇâ ¼³°èÀÇ ¼û¾îÀÖ´Â º¸¹°»óÀÚ¸¦ ¿­¾îÁá½À´Ï´Ù. ÀÌ Ã¥Àº xUnit¿¡ ÀÖ¾î ±×·± ¿ªÇÒÀ» ÇÒ °ÍÀÔ´Ï´Ù.

¸¶Æ¾ ÆÄ¿ï·¯
ThoughtWorksÀÇ ¼ö¼® °úÇÐÀÚÀÌÀÚ ¸¶Æ¾ ÆÄ¿ï·¯ ½Ã¸®Áî ¿¡µðÅÍ

¡Ú ¿Å±äÀÌÀÇ ¸» ¡Ú

¾î´Àµ¡ ¡®´ÜÀ§ Å×½ºÆ®¡¯¶ó´Â ´Ü¾î´Â °³¹ßÀÚµé »çÀÌ¿¡¼­ Àͼ÷ÇØÁ³½À´Ï´Ù. ÆÀ¿¡ Àû¿ëÇϰí ÀÖ´Ù´Â ºÐµéµµ ¸¹´õ±º¿ä. 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³â¸¸ ´õ »¡¸® Àоú´õ¶ó¸é »ðÁúÀ» ´ú ÇßÀ» ÅÙµ¥¡¯ ÇÏ´Â »ý°¢¿¡ ¾Æ½¬¿òµµ µé´õ±º¿ä. ¡®¿ì¸® ÇÁ·ÎÁ§Æ®¿¡¼­´Â ¾î¶»°Ô Àû¿ëÇØº¼ ¼ö ÀÖÀ»±î¡¯¸¦ »ý°¢Çϸ鼭 ÀÐÀ¸¸é ´õ Àç¹ÌÀÖ°Ô º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌÇØ°¡ Àß ¾È µÉ ¶§´Â ¿¹Á¦ Äڵ带 ¸ÕÀú º¸¼¼¿ä. ¶§·Î´Â õ¸¶µð ±Ûº¸´Ù ÇÑ ÁÙÀÇ Äڵ尡 ´õ ÀÌÇØÇϱ⠽¬¿ï ¶§°¡ ÀÖÀ¸´Ï±î¿ä.
1ºÎ ¼³¸í

1Àå °£´ÜÇÏ°Ô µÑ·¯º¸±â
°³¿ä
°¡Àå È®½ÇÇϸ鼭µµ °£´ÜÇÑ Å×½ºÆ® ÀÚµ¿È­ Àü·«
°³¹ß ÇÁ·Î¼¼½º
°í°´ Å×½ºÆ®
´ÜÀ§ Å×½ºÆ®
Å×½ºÆ®Çϱ⠽¬¿î ¼³°è
Å×½ºÆ® Á¶Á÷
Á¤¸®

2Àå Å×½ºÆ® ³¿»õ 85
°³¿ä
Å×½ºÆ® ³¿»õ ¼Ò°³
Å×½ºÆ® ³¿»õ¶õ?
Å×½ºÆ® ³¿»õÀÇ Á¾·ù
³¿»õ°¡ ³¯ ¶§ ´ëó ¹æ¾È
³¿»õ ºÐ·ù
ÇÁ·ÎÁ§Æ® ³¿»õ
µ¿ÀÛ ³¿»õ
ÄÚµå ³¿»õ
Á¤¸®

3Àå Å×½ºÆ® ÀÚµ¿È­ÀÇ ¸ñÇ¥
°³¿ä
Å×½ºÆ®¸¦ ÇÏ´Â ÀÌÀ¯
Å×½ºÆ® ÀÚµ¿È­ °æÁ¦ÇÐ
Å×½ºÆ® ÀÚµ¿È­ÀÇ ¸ñÇ¥
Å×½ºÆ®´Â ǰÁú Çâ»ó¿¡ µµ¿òÀÌ µÅ¾ß ÇÑ´Ù
Å×½ºÆ®´Â SUT¸¦ ÀÌÇØÇÏ´Â µ¥ µµ¿òÀÌ µÅ¾ß ÇÑ´Ù
Å×½ºÆ®´Â À§ÇèÀ» ÁÙ¿©¾ß(Ãß°¡ÇÏÁöµµ ¾Ê¾Æ¾ß) ÇÑ´Ù
Å×½ºÆ®´Â ½ÇÇàÇϱ⠽¬¿ö¾ß ÇÑ´Ù
Å×½ºÆ®´Â ¸¸µé°í À¯ÁöÇϱ⠽¬¿ö¾ß ÇÑ´Ù
Å×½ºÆ®´Â µÎ °¡Áö ÀÌÀ¯·Î º¹ÀâÇØÁø´Ù
½Ã½ºÅÛÀÌ ¹ßÀüÇÏ´Â µ¿¾È Å×½ºÆ®¿¡ ÇÊ¿äÇÑ À¯Áö º¸¼ö ºñ¿ëÀÌ ÃÖ¼ÒÈ­µÅ¾ß ÇÑ´Ù
Á¤¸® 108

4Àå Å×½ºÆ® ÀÚµ¿È­ÀÇ Ã¶ÇÐ
°³¿ä
öÇÐÀÌ Áß¿äÇÑ ÀÌÀ¯
öÇÐÀû Â÷ÀÌÁ¡
Å×½ºÆ® ¸ÕÀú³Ä Å×½ºÆ® ³ªÁßÀ̳Ä?
Å×½ºÆ®³Ä ¿¹Á¦³Ä?
´Ü°èº° Å×½ºÆ®³Ä ÇѲ¨¹ø¿¡ Å×½ºÆ®³Ä?
¹Û¿¡¼­ ¾ÈÀ¸·Î³Ä ¾È¿¡¼­ ¹ÛÀ¸·Î³Ä?
µ¿ÀÛ °ËÁõÀÌ³Ä »óÅ °ËÁõÀ̳Ä?
ÇȽºÃ³¸¦ ¹Ì¸® ¼³°èÇϱâ³Ä ÇȽºÃ³¸¦ ´Ü°èº° Å×½ºÆ®¿¡ µû¶ó ¼³°èÇϱâ³Ä?
öÇÐÀÌ ´Ù¸¦ ¶§
³ªÀÇ Ã¶ÇÐ
Á¤¸®

5Àå Å×½ºÆ® ÀÚµ¿È­ÀÇ ¿øÄ¢
°³¿ä
¿øÄ¢
Á¤¸®

6Àå Å×½ºÆ® ÀÚµ¿È­ Àü·«
°³¿ä
¹«¾ùÀÌ Àü·«ÀûÀΰ¡?
¾î¶² Á¾·ùÀÇ Å×½ºÆ®¸¦ ÀÚµ¿È­ÇØ¾ß Çϴ°¡?
±â´Éº° Å×½ºÆ®
±³Â÷ ±â´É Å×½ºÆ®
¾î¶² Å×½ºÆ® ÀÚµ¿È­¿¡´Â ¾î¶² µµ±¸¸¦ »ç¿ëÇϴ°¡?
Å×½ºÆ® ÀÚµ¿È­ ¹æ½Ä°ú ¹æ¹ý
xUnit ¼Ò°³
xUnitÀÇ ½ºÀ­ ½ºÆÌ
¾î¶² Å×½ºÆ® ÇȽºÃ³ Àü·«À» »ç¿ëÇϴ°¡?
¹«¾ùÀÌ ÇȽºÃ³Àΰ¡?
ÁÖ¿ä ÇȽºÃ³ Àü·«
1ȸ¿ë ½Å¼±ÇÑ ÇȽºÃ³
Áö¼ÓµÇ´Â ½Å¼±ÇÑ ÇȽºÃ³
°øÀ¯ ÇȽºÃ³ Àü·«
Å×½ºÆ® ¿ëÀ̼ºÀ» º¸ÀåÇÏ´Â ¹æ¹ý
Å×½ºÆ® ³ªÁß - °¢¿À°¡ µÅ Àִ°¡?
Å×½ºÆ®Çϱ⠽¬¿î ¼³°è - ¹Ì¸® Çϱâ
Å×½ºÆ® ÁÖµµ Å×½ºÆ® ¿ëÀ̼º
Á¦¾î À§Ä¡¿Í °üÂû À§Ä¡
»óÈ£ÀÛ¿ë ¹æ½Ä°ú Å×½ºÆ® ¿ëÀ̼º ÆÐÅÏ
³ª´« ÈÄ Å×½ºÆ®
Á¤¸®

7Àå xUnit ±âÃÊ
°³¿ä
xUnit ¼Ò°³
°øÅë Æ¯Â¡
ÃÖ¼ÒÇÑ ¾Ë¾Æ¾ß ÇÒ °Í
Å×½ºÆ® Á¤ÀÇÇϱâ
ÇȽºÃ³¶õ?
Å×½ºÆ®µéÀÇ ½ºÀ§Æ® Á¤ÀÇ
Å×½ºÆ® ½ÇÇà
Å×½ºÆ® °á°ú
xUnitÀÇ ³»ºÎ
Å×½ºÆ® ¸í·É
Å×½ºÆ® ½ºÀ§Æ® °´Ã¼
ÀýÂ÷Àû ¼¼»ó¿¡¼­ÀÇ xUnt
Á¤¸®

8Àå 1ȸ¿ë ÇȽºÃ³ °ü¸®
°³¿ä
Å×½ºÆ® ÇȽºÃ³ ¿ë¾î
ÇȽºÃ³¶õ?
½Å¼±ÇÑ ÇȽºÃ³¶õ?
¹«¾ùÀÌ 1ȸ¿ë ½Å¼±ÇÑ ÇȽºÃ³Àΰ¡?
½Å¼±ÇÑ ÇȽºÃ³ »ý¼º
ÀζóÀÎ ÇȽºÃ³ ¼³Ä¡
À§ÀÓ ÇȽºÃ³ ¼³Ä¡
¾Ï¹¬Àû ÇȽºÃ³ ¼³Ä¡
È¥ÇÕÇü ÇȽºÃ³ ¼³Ä¡
1ȸ¿ë ½Å¼±ÇÑ ÇȽºÃ³ ÇØÃ¼Çϱâ
Á¤¸®

9Àå Áö¼ÓµÇ´Â ÇȽºÃ³ °ü¸®
°³¿ä
Áö¼ÓµÇ´Â ½Å¼±ÇÑ ÇȽºÃ³ °ü¸®
¹«¾ùÀÌ ÇȽºÃ³¸¦ Áö¼ÓÇÏ°Ô ¸¸µå´Â°¡?
Áö¼ÓµÇ´Â ½Å¼±ÇÑ ÇȽºÃ³·Î ÀÎÇØ »ý±â´Â ¹®Á¦
Áö¼ÓµÇ´Â ½Å¼±ÇÑ ÇȽºÃ³ ÇØÃ¼Çϱâ
ÇØÃ¼ Äڵ带 ¾Æ¿¹ ÇÊ¿ä ¾ø°Ô ¸¸µé±â
´À¸° Å×½ºÆ®¿¡ ´ëóÇϱâ
°øÀ¯ ÇȽºÃ³ °ü¸®
°øÀ¯ ÇȽºÃ³ Á¢±ÙÇϱâ
°øÀ¯ ÇȽºÃ³ »ý¼ºÀÚ È£ÃâÇϱâ
Á¤¸®

10Àå °á°ú °ËÁõ
°³¿ä
ÀÚü °Ë»ç Å×½ºÆ® ¸¸µé±â
»óÅ °ËÁõÀÌ³Ä µ¿ÀÛ °ËÁõÀ̳Ä?
»óÅÂ °ËÁõ
³»Àå ´Ü¾ð¹® »ç¿ëÇϱâ
µ¨Å¸ ´Ü¾ð¹®
¿ÜºÎ °á°ú °ËÁõ
µ¿ÀÛ °ËÁõ
ÀýÂ÷Çü µ¿ÀÛ °ËÁõ
±â´ë µ¿ÀÛ ¸í¼¼
Å×½ºÆ® ÄÚµå Áߺ¹ ÁÙÀ̱â
±â´ë °´Ã¼
¸ÂÃ㠴ܾð¹®
°á°ú¸¦ ¼³¸íÇÏ´Â °ËÁõ ¸Þ¼Òµå
ÀÎÀÚ¸¦ ¹Þ´Â Å×½ºÆ®¿Í µ¥ÀÌÅÍ ÁÖµµ Å×½ºÆ®
Å×½ºÆ® ³» Á¶°Ç¹® ·ÎÁ÷ ÇÇÇϱâ
if¹® Á¦°ÅÇϱâ
¹Ýº¹¹® Á¦°ÅÇϱâ
±âŸ ±â¹ý
°Å²Ù·Î, ¹Û¿¡¼­ ¾ÈÀ¸·Î ÀÛ¾÷Çϱâ
Å×½ºÆ® ÁÖµµ °³¹ß·Î Å×½ºÆ® À¯Æ¿¸®Æ¼ ¸Þ¼Òµå ÀÛ¼ºÇϱâ
Àç»ç¿ë °¡´ÉÇÑ °ËÁõ ·ÎÁ÷À» µÑ À§Ä¡
Á¤¸®

11Àå Å×½ºÆ® ´ë¿ª »ç¿ë
°³¿ä
°£Á¢ ÀԷ°ú °£Á¢ Ãâ·Â
°£Á¢ ÀÔ·ÂÀ» ½Å°æ ½á¾ß ÇÏ´Â ÀÌÀ¯
°£Á¢ Ãâ·ÂÀ» ½Å°æ ½á¾ß ÇÏ´Â ÀÌÀ¯
°£Á¢ ÀÔ·ÂÀº ¾î¶»°Ô Á¦¾îÇÒ ¼ö ÀÖÀ»±î?
°£Á¢ Ãâ·ÂÀº ¾î¶»°Ô °ËÁõÇÒ °ÍÀΰ¡?
´ë¿ªÀ¸·Î Å×½ºÆ®Çϱâ
Å×½ºÆ® ´ë¿ªÀÇ Á¾·ù
Å×½ºÆ® ´ë¿ª Á¦°øÇϱâ
Å×½ºÆ® ´ë¿ª ¼³Á¤Çϱâ
Å×½ºÆ® ´ë¿ª ¼³Ä¡Çϱâ
Å×½ºÆ® ´ë¿ªÀÇ ´Ù¸¥ ¿ëµµ
³»½Ã°æ Å×½ºÆÃ
ÇÊ¿ä ÁÖµµ °³¹ß
ÇȽºÃ³ ¼³Ä¡ ºü¸£°Ô Çϱâ
Å×½ºÆ® ½ÇÇà ºü¸£°Ô Çϱâ
±âŸ °í·Á »çÇ×
Á¤¸®

12Àå Å×½ºÆ® Á¶Á÷Çϱâ
°³¿ä
±âº» xUnit ¸ÞÄ¿´ÏÁò
Àû´çÇÑ Å©±âÀÇ Å×½ºÆ® ¸Þ¼Òµå
Å×½ºÆ® ¸Þ¼Òµå¿Í Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º
Ŭ·¡½ºº° Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º
±â´Éº° Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º
ÇȽºÃ³º° Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º
Å×½ºÆ® ¸Þ¼Òµå Á¶Á÷ Àü·« ¼±ÅÃÇϱâ
Å×½ºÆ® À̸§ ±Ô¾à
Å×½ºÆ® ½ºÀ§Æ® Á¶Á÷Çϱâ
Å×½ºÆ® Áý´Ü ½ÇÇàÇϱâ
ÇϳªÀÇ Å×½ºÆ® ½ÇÇàÇϱâ
Å×½ºÆ® ÄÚµå Àç»ç¿ë
Å×½ºÆ® À¯Æ¿¸®Æ¼ ¸Þ¼Òµå À§Ä¡
Å×½ºÆ®ÄÉÀ̽º »ó¼Ó°ú Àç»ç¿ë
Å×½ºÆ® ÆÄÀÏ ±¸¼º
³»Àå ÀÚü Å×½ºÆ®
Å×½ºÆ® ÆÐŰÁö
Å×½ºÆ® ÀÇÁ¸
Á¤¸®

13Àå µ¥ÀÌÅͺ£À̽º¿Í Å×½ºÆ®
°³¿ä
µ¥ÀÌÅͺ£À̽º Å×½ºÆ®Çϱâ
µ¥ÀÌÅͺ£À̽º¸¦ ÀÌ¿ëÇÑ Å×½ºÆ®°¡ ÇÊ¿äÇÑ ÀÌÀ¯
µ¥ÀÌÅͺ£À̽º¿Í °ü·ÃµÈ ¹®Á¦
µ¥ÀÌÅͺ£À̽º ¾øÀÌ Å×½ºÆ®Çϱâ
µ¥ÀÌÅͺ£À̽º Å×½ºÆ®Çϱâ
ÀúÀå ÇÁ·Î½ÃÀú Å×½ºÆ®Çϱâ
µ¥ÀÌÅÍ Á¢±Ù ·¹À̾î Å×½ºÆ®Çϱâ
°³¹ßÀÚÀÇ µ¶¸³¼º º¸ÀåÇϱâ
µ¥ÀÌÅͺ£À̽º·Î Å×½ºÆ®Çϱâ(ÇÑ ¹ø ´õ!)
Á¤¸®

14Àå È¿°úÀûÀÎ Å×½ºÆ® ÀÚµ¿È­¸¦ À§ÇÑ ±æÀâÀÌ
°³¿ä
Å×½ºÆ® ÀÚµ¿È­ÀÇ ¾î·Á¿ò
ÀÚµ¿ Å×½ºÆ®¸¦ À¯Áö º¸¼öÇϱâ ÁÁ°Ô ¸¸µå´Â ±æÀâÀÌ
ÁÖ¿ä °æ·Î ÄÚµå ½ÇÇà
ÁÖ¿ä °æ·ÎÀÇ Á÷Á¢ Ãâ·Â °ª °ËÁõ
´ë¾È °æ·Î °ËÁõ
°£Á¢ Ãâ·Â µ¿ÀÛ °ËÁõ
Å×½ºÆ® ½ÇÇà°ú À¯Áö º¸¼ö ÃÖÀûÈ­
Á¤¸®

2ºÎ Å×½ºÆ® ³¿»õ

15Àå ÄÚµå ³¿»õ
¾Ö¸ÅÇÑ Å×½ºÆ®(Obscure Test)
Å×½ºÆ® ³» Á¶°Ç¹® ·ÎÁ÷(Conditional Test Logic)
Å×½ºÆ®Çϱâ Èûµç ÄÚµå(Hard-to-Test Code)
Å×½ºÆ® ÄÚµå Áߺ¹(Test Code Duplication)
Á¦Ç° ÄÚµå ³» Å×½ºÆ® ·ÎÁ÷(Test Logic in Production)

16Àå µ¿ÀÛ ³¿»õ
´Ü¾ð ·ê·¿(Assertion Roulette)
º¯´ö½º·¯¿î Å×½ºÆ®(Erratic Test)
±úÁö±â ½¬¿î Å×½ºÆ®(Fragile Test)
ÀæÀº µð¹ö±ë(Frequent Debugging)
¼öµ¿ Á¶Á¤(Manual Intervention)
´À¸° Å×½ºÆ®(Slow Test)

17Àå ÇÁ·ÎÁ§Æ® ³¿»õ
¹ö±×Åõ¼ºÀÌ Å×½ºÆ®(Buggy Test)
Å×½ºÆ®¸¦ ÀÛ¼ºÇÏÁö ¾Ê´Â °³¹ßÀÚ(Developers Not Writing Test)
³ôÀº Å×½ºÆ® À¯Áö ºñ¿ë(High Test Maintenance Cost)
Á¦Ç° ¹ö±×(Production Bug)

3ºÎ ÆÐÅÏ

18Àå Å×½ºÆ® Àü·« ÆÐÅÏ
±â·Ï Å×½ºÆ®(Recorded Test)
½ºÅ©¸³Æ® ±â¹Ý Å×½ºÆ®(Scripted Test)
µ¥ÀÌÅÍ ÁÖµµ Å×½ºÆ®(Data-Driven Test)
Å×½ºÆ® ÀÚµ¿ ÇÁ·¹ÀÓ¿öÅ©(Test Automation Framework)
ÃÖ¼Ò ÇȽºÃ³(Minimal Fixture)
Ç¥ÁØ ÇȽºÃ³(Standard Fixture)
½Å¼±ÇÑ ÇȽºÃ³(Fresh Fixture)
°øÀ¯ ÇȽºÃ³(Shared Fixture)
µÞ¹® Á¶ÀÛ(Back Door Manipulation)
·¹À̾î Å×½ºÆ®(Layer Test)

19Àå xUnit ±âº» ÆÐÅÏ
Å×½ºÆ® ¸Þ¼Òµå(Test Method)
4´Ü°è Å×½ºÆ®(Four-Phase Test)
´Ü¾ð ¸Þ¼Òµå(Assertion Method)
´Ü¾ð ¸Þ½ÃÁö(Assertion Message)
Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º(Testcase Class)
Å×½ºÆ® ½ÇÇà±â(Test Runner)
Å×½ºÆ®ÄÉÀ̽º °´Ã¼(Testcase Object)
Å×½ºÆ® ½ºÀ§Æ® °´Ã¼(Test Suite Object)
Å×½ºÆ® ã±â(Test Discovery)
Å×½ºÆ® ³ª¿­(Test Enumeration)
Å×½ºÆ® ¼±ÅÃ(Test Selection)

20Àå ÇȽºÃ³ ¼³Ä¡ ÆÐÅÏ
ÀζóÀÎ ¼³Ä¡(In-line Setup)
À§ÀÓ ¼³Ä¡(Delegated Setup)
»ý¼º ¸Þ¼Òµå(Creation Method)
¾Ï¹¬Àû ¼³Ä¡(Implicit Setup)
¹Ì¸® ¸¸µç ÇȽºÃ³(Prebuilt Fixture)
Áö¿¬ ¼³Ä¡(Lazy Setup)
½ºÀ§Æ® ÇȽºÃ³ ¼³Ä¡(Suite Fixture Setup)
¼³Ä¡ µ¥ÄÚ·¹ÀÌÅÍ(Setup Decorator)
¿«ÀÎ Å×½ºÆ®(Chained Test)

21Àå °á°ú °ËÁõ ÆÐÅÏ
»óÅÂ °ËÁõ(State Verification)
µ¿ÀÛ °ËÁõ(Behavior Verification)
¸ÂÃ㠴ܾð¹®(Custom Assertion)
µ¨Å¸ ´Ü¾ð¹®vDelta Assertion)
º¸È£ ´Ü¾ð¹®(Guard Assertion)
ÀÛ¾÷ ÁßÀÎ Å×½ºÆ® ´Ü¾ð¹®(Unfinished Test Assertion)

22Àå ÇȽºÃ³ ÇØÃ¼ ÆÐÅÏ
°¡ºñÁö Ä÷º¼Ç ÇØÃ¼(Garbage-Collected Teardown)
ÀÚµ¿ ÇØÃ¼(Automated Teardown)
ÀζóÀÎ ÇØÃ¼(In-line Teardown)
¾Ï¹¬Àû ÇØÃ¼(Implicit Teardown)

23Àå Å×½ºÆ® ´ë¿ª ÆÐÅÏ
Å×½ºÆ® ´ë¿ª(Test Double)
Å×½ºÆ® ½ºÅÓ(Test Stub)
Å×½ºÆ® ½ºÆÄÀÌ(Test Spy)
¸ðÀÇ °´Ã¼(Mock Object)
°¡Â¥ °´Ã¼(Fake Object)
¼³Á¤µÇ´Â Å×½ºÆ® ´ë¿ª(Configurable Test Double)
Çϵå ÄÚµùµÈ Å×½ºÆ® ´ë¿ª(Hard-Coded Test Double)
Å×½ºÆ®¿ë ÇÏÀ§Å¬·¡½º(Test-Specific Subclass)

24Àå Å×½ºÆ® Á¶Á÷ ÆÐÅÏ
À̸§ ÀÖ´Â Å×½ºÆ® ½ºÀ§Æ®(Named Test Suite)
Å×½ºÆ® À¯Æ¿¸®Æ¼ ¸Þ¼Òµå(Test Utility Method)
ÀÎÀÚ¸¦ ¹Þ´Â Å×½ºÆ®(Parameterized Test)
Ŭ·¡½ºº° Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º(Testcase Class per Class)
±â´Éº° Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º(Testcase Class per Feature)
ÇȽºÃ³º° Å×½ºÆ®ÄÉÀ̽º Ŭ·¡½º(Testcase Class per Fixture)
Å×½ºÆ®ÄÉÀ̽º »óÀ§Å¬·¡½º(Testcase Superclass)
Å×½ºÆ® µµ¿ì¹Ì(Test Helper)

25Àå µ¥ÀÌÅͺ£À̽º ÆÐÅÏ
µ¥ÀÌÅͺ£À̽º »÷µå¹Ú½º(Database Sandbox)
ÀúÀå ÇÁ·Î½ÃÀú Å×½ºÆ®(Stored Procedure Test)
Å×ÀÌºí »èÁ¦ ÇØÃ¼(Table Truncation Teardown)
Æ®·£Àè¼Ç ·Ñ¹é ÇØÃ¼(Transaction Rollback Teardown)

26Àå Å×½ºÆ®Çϱ⠽¬¿î ÆÐÅÏ
ÀÇÁ¸ ÁÖÀÔ(Dependency Injection)
ÀÇÁ¸ ã±â(Dependency Lookup)
´ë°­ ¸¸µç °´Ã¼(Humble Object)
Å×½ºÆ® ÈÅ(Test Hook)

27Àå °© ÆÐÅÏ
¸®ÅÍ·² °ª(Literal Value)
ÆÄ»ý °ª(Derived Value)
»ý¼º °ª(Generated Value)
´õ¹Ì °´Ã¼(Dummy Object)

4ºÎ ºÎ·Ï

ºÎ·Ï A Å×½ºÆ® ¸®ÆÑÅ丵
ºÎ·Ï B xUnit ¿ë¾î Á¤¸®
ºÎ·Ï C xUnit °è¿­
ºÎ·Ï D µµ±¸
ºÎ·Ï E ¸ñÇ¥¿Í ¿øÄ¢
ºÎ·Ï F ³¿»õ, º°¸í, ¿øÀÎ
ºÎ·Ï G ÆÐÅÏ, º°¸í, º¯Çü
[ÀúÀÚ¼Ò°³]
Á¦¶óµå ¸Þ½ºÀڷνº(Gerard Meszaros)


Ͱŏ®(Calgary)¿¡ ÀÖ´Â ¾ÖÀÚÀÏ °³¹ß Àü¹® ÄÁ¼³ÆÃ ȸ»ç Ŭ¸®¾î½ºÆ®¸² ÄÁ¼³ÆÃ(ClearStream Consulting)ÀÇ ¼ö¼® °úÇÐÀÚ(Chief Scientist)ÀÌÀÚ ¼±ÀÓ ÄÁ¼³ÅÏÆ®´Ù. Á¦¶óµå´Â ½Ê ³â ÀÌ»ó ÀÚµ¿ ´ÜÀ§ Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ© ºÐ¾ß¿¡¼­ °æÇèÀ» ½×¾Ò°í Å×½ºÆ® ÀÚµ¿ ÆÐÅÏ, ¼ÒÇÁÆ®¿þ¾î¿Í Å×½ºÆ® ¸®ÆÑÅ丵, Å×½ºÆ® ¿ëÀ̼ºÀ» À§ÇÑ ¼³°è ºÐ¾ß¸¦ ¼±µµÇÏ´Â Àü¹®°¡´Ù.

[¿ªÀÚ¼Ò°³]
¹ÚÀÏ


¿¬¼¼´ë ÄÄÇ»ÅͰúÇаú¸¦ Á¹¾÷Çß´Ù. 2000³â ÃÊ¿¡ °³¹ßÀ» ½ÃÀÛÇØ Áö±ÝÀº ¸®´ÏÁö2 ¼­¹ö ÆÀ¿¡¼­ ±Ù¹« ÁßÀÌ´Ù. ¿Å±ä Ã¥À¸·Î´Â ¡º½ºÅ©·³¡»(2008³â)ÀÌ ÀÖ´Ù.

µî·ÏµÈ ¼­ÆòÀÌ ¾ø½À´Ï´Ù.

À§Ç³´ç´ç ¸ð¹ÙÀÏ ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °­ÄÄÆÐŰÁö 9Á¾ [3ź]
À§Ç³´ç´ç ¸ð¹ÙÀÏ ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °­ÄÄÆÐŰÁö 9Á¾ [3ź]
2010-06-04 ~ Á¾·áÀϽà ¹ÌÁ¤

µ·µÇ´Â ¿¢¼¿ ½Ç¹«È°¿ë±â¼ú...
ÀÌÇü¹ü
¼±ÅÃµÈ »óǰÀ» ÂòÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ »óǰÀ» ¹Ù·Î±¸¸Å ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
¿¢¼¿ 2007 ¹é°ú»çÀü...
°­À±¼®
¼±ÅÃµÈ »óǰÀ» ÂòÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ »óǰÀ» ¹Ù·Î±¸¸Å ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
¿¢¼¿ 2007 ¹ÙÀ̺í...
ÃÖÁؼ±
¼±ÅÃµÈ »óǰÀ» ÂòÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ »óǰÀ» ¹Ù·Î±¸¸Å ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
 
ÃÊ Áß °í
ÀüüÆò±Õ(0)
ȸ¿øÆòÁ¡   ȸ¿ø¼­Æò¼ö 0
¿¡ÀÌÄÜ ÃâÆÇ»çÀÇ ½Å°£
¾ËÂ¥¸¸ °ñ¶ó ¹è¿ì´Â ¾Èµå·ÎÀ̵å ÇÁ·Î±×·¡¹Ö 2 (°³Á¤ÆÇ)
¸¶Å© ¸ÓÇÇ / °­Ã¶±¸ ¿ª Àú
27,000¿ø
(10%¡é+10%)
 
ÅäºñÀÇ ½ºÇÁ¸µ 3 : ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© 3 ±âÃÊ ¿ø¸®ºÎÅÍ °í±Þ ½ÇÀüȰ¿ë±îÁö ¿Ïº® °¡À̵å
ÀÌÀϹΠÀú
45,000¿ø
(10%¡é+10%)
 
The Art of Game Design: °ÔÀÓ µð·ºÅÍ, ±âȹÀÚ, °³¹ßÀÚ°¡ ²À Àоî¾ß ÇÒ °ÔÀÓ µðÀÚÀο¡ °üÇÑ ¸ðµç °Í
Á¦½Ã ¼Ð / ÀüÀ¯ÅÃ, ÀÌÇü¹Î ¿ª Àú
27,000¿ø
(10%¡é+10%)
 
Windows Internals Á¦5ÆÇ : ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® À©µµ¿ì Ä¿³Î °ø½Ä °¡À̵å
¸¶Å© ·¯½Ã³ëºñÄ¡, µ¥À̺ñµå ¼Ö·Î¸ó, ¾Ë·º½º ÀÌ¿À³×½ºÄí / ¾Èö¼ö ¿¬±¸¼Ò ±â¹Ý±â¼úÆÀ ¿ª Àú
45,000¿ø
(10%¡é+10%)
 
½Å·Ú ¼Ò¼È¹Ìµð¾î ½Ã´ëÀÇ ¼º°ø Ű¿öµå
Å©¸®½º ºê·Î°Ç, ÁÙ¸®¿£ ½º¹Ì½º / ¿ª inmD Àú
13,320¿ø
(10%¡é+10%)
 
À̸ÞÀÏÁÖ¼Ò¼öÁý°ÅºÎ
Ŭ¸¯ÇϽøé À̴Ͻýº °áÁ¦½Ã½ºÅÛÀÇ À¯È¿¼ºÀ» È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. Ŭ¸¯ÇϽøé eTrust ÀÎÁõÁ¤º¸¸¦ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.