±¹³»¿ÜÀÇ ÀüÀÚÁ¤º¸ ºÐ¾ß ¿¬±¸ÀÚµéÀÌ ÇмúÁ¤º¸ ¶Ç´Â ¿¬±¸¿Í °ü·ÃµÈ ±³À° ÄÜÅÙÃ÷¸¦ ¹«·á·Î Á¢ÇÒ ¼ö ÀÖ´Â ¿Â¶óÀÎ ¼¼¹Ì³ªÀÔ´Ï´Ù.
È»óȸÀǽýºÅÛÀ» Ȱ¿ëÇÏ¿© ¼Ò±Ô¸ð ¼¼¹Ì³ª, ¿öÅ©¼ó µî ¸ñÀû¿¡ µû¶ó ´Ù¾çÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÃÖ±Ù µé¾î, ´ëºÎºÐÀÇ °³¹ß °úÁ¤Àº ¼øÂ÷ÀûÀÎ ¼ÒÇÁÆ®¿þ¾î °³¹ß ÇÁ·Î¼¼½º ¸ðµ¨ÀÎ ÆøÆ÷¼ö ¸ðµ¨(waterfall model) ´ë½Å Áö¼ÓÀûÀÎ ÅëÇÕ ¹× Á¦°ø(CI/CD) ¹æ½ÄÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Ãß¼¼´Â ÀϹÝÀûÀÎ ¼ÒÇÁÆ®¿þ¾î¸¦ ³Ñ¾î, ³ª³¯ÀÌ º¯ÈÇÏ´Â °³¹ß ȯ°æ¿¡ ¸ÂÃç »õ·Î¿î ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ±â´ÉÀ» ¿øÈ°ÇÏ°Ô Á¦°øÇϰíÀÚ ÇÁ·Î±×·¡¹Ö ¾ð¾î °³¹ß¿¡µµ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. µû¶ó¼, ÀÌÁ¦´Â ¾ð¾îÀÇ ¸í¼¼¼¿¡¸¸ ÀÇÁ¸ÇÏ¿© ±¸ÇöüµéÀ» °³¹ßÇÏ´Â °ÍÀ» ³Ñ¾î ¸í¼¼¼¿Í ±¸ÇöüµéÀÌ »óÈ£º¸¿ÏÇÏ¸é¼ °øÁøÈÇϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ È¯°æ¿¡¼´Â ¸í¼¼¼¿Í ±¸Çöü ¾çÂÊ¿¡ ¿À·ù°¡ Á¸ÀçÇÒ ¼ö ÀÖ°í, ¿Ã¹Ù¸§À» º¸ÀåÇÏ´Â °ÍÀº ´õ ¾î·Á¿î ¹®Á¦°ú µÇ¾ú½À´Ï´Ù.
º» ¹ßÇ¥¿¡¼´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ¹æ¾ÈÀ¸·Î Á¦½ÃÇÑ N+1-version differential testing ±â¹ýÀ» ¼Ò°³ÇϰíÀÚ ÇÕ´Ï´Ù. ±âÁ¸ÀÇ differential testing ±â¹ý°ú´Â ´Þ¸®, ÀÌ Å×½ºÆÃ ±â¹ýÀº ³× ´Ü°è·Î ±¸¼ºÀÌ µÇ¾î ÀÖ½À´Ï´Ù: 1) ÁÖ¾îÁø ¾ð¾îÀÇ ¸í¼¼·ÎºÎÅÍ ÃßÃâÇÑ syntax¿Í semantics¸¦ ±â¹ÝÀ¸·Î ´Ù¾çÇÑ ÇÁ·Î±×·¥µéÀ» ÇÕ¼ºÇÏ´Â ´Ü°è, 2) ÇÕ¼ºÇÑ ÇÁ·Î±×·¥µéÀÇ ¸¶Áö¸· »óŸ¦ °Ë»çÇϱâ À§ÇÑ assertion ±¸¹®À» »ðÀÔÇÏ¿© ÀÏÄ¡¼º Å×½ºÆ®¸¦ »ý¼ºÇÏ´Â ´Ü°è, 3) »ý¼ºÇÑ ÀÏÄ¡¼º Å×½ºÆ®µéÀ» ¼·Î ´Ù¸¥ ±¸Çöüµé¿¡¼ ½ÇÇàÇÏ¿© ¸í¼¼¿Í ±¸ÇöüµéÀÇ ¿À·ù¸¦ °ËÃâÇÏ´Â ´Ü°è, ±×¸®°í 4) Åë°è ±â¹Ý Á¤º¸¸¦ ÅëÇÑ ¿À·ùÀÇ À§Ä¡¸¦ ã¾Æ³»´Â ´Ü°è. ÀÌ·¯ÇÑ N+1-version differential testing ±â¹ýÀ» ½ÇÁ¦ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÎ JavaScript¿¡ Àû¿ëÇÏ¿© JEST¶ó´Â µµ±¸¸¦ °³¹ßÇÏ¿´°í, ÀÌ´Â JavaScriptÀÇ ¸í¼¼¼ÀÎ ECMAScript¿Í ¼·Î ´Ù¸¥ JavaScript ¿£ÁøµéÀÇ ¹ö±×¸¦ °ËÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î, 2020³â ECMAScript¿Í À̸¦ Áö¿øÇÏ´Â ³× °¡ÁöÀÇ ¼·Î ´Ù¸¥ JavaScript ¿£ÁøµéÀ» ÀÌ¿ëÇÏ¿© ½ÇÇèÇØº» °á°ú, JEST´Â 97.78%¿Í 87.70%ÀÇ syntax ¹× semantics¸¦ coverÇÏ´Â ÀÚµ¿À¸·Î 1,700°³ÀÇ ÀÏÄ¡¼º Å×½ºÆ®¸¦ ¼º°øÀûÀ¸·Î ÀÚµ¿»ý¼ºÇÏ¿´½À´Ï´Ù. À̸¦ ±â¹ÝÀ¸·Î ½ÇÁ¦·Î 44°³ÀÇ ¿£ÁøÀÇ °áÇÔ°ú 27°³ÀÇ ¸í¼¼ÀÇ °áÇÔÀ» °ËÃâÇÏ¿© º¸°í ¹× È®ÀÎÀ» ¹Þ¾Ò½À´Ï´Ù. ÀÌ·¯ÇÑ N+1-version differential testing ±â¹ýÀº ¾ÕÀ¸·Î ´õ¿í ¹æ´ëÇØÁö°í ºü¸£°Ô º¯ÈÇÒ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¸í¼¼¿Í ±¸ÇöüµéÀÇ °£±ØÀ» ÁÙÀ̴µ¥ Å©°Ô À̹ÙÁöÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀúÈñ´Â ÇöÀç À̿ܿ¡µµ ¸í¼¼¼¿Í ±¸Çöü »çÀÌÀÇ °£±ØÀ» ÁÙÀ̱â À§ÇÑ ¿¬±¸¸¦ ÁøÇàÇϰí ÀÖ½À´Ï´Ù.
樨毢