ì›ë¬¸ : http://extremeprogramming.org/rules/functionaltests.html AcceptanceTest는 UserStoryë“¤ì— ì˜í•´ì„œ 만들어진다. Iteration ë™ì•ˆ IterationPlanning 회ì˜ë•Œ ì„ íƒë˜ì–´ì§„ UserStoryë“¤ì€ AcceptanceTest들로 ì „í™˜ë˜ì–´ì§„다. Customer는 해당 UserStoryê°€ ì •í™•ížˆ 구현ë˜ì—ˆì„ë•Œì— ëŒ€í•œ 시나리오를 구체화시킨다. í•˜ë‚˜ì˜ ì‹œë‚˜ë¦¬ì˜¤ëŠ” 하나나 ê·¸ ì´ìƒì˜ AcceptanceTestë“¤ì„ ê°€ì§„ë‹¤. ì´ AcceptanceTestë“¤ì€ í•´ë‹¹ ê¸°ëŠ¥ì´ ì œëŒ€ë¡œ ìž‘ë™í•¨ì„ 보장한다. AcceptanceTest는 blackbox system test ì´ë‹¤. ê°ê°ì˜ AcceptanceTest는 해당 시스템으로부터 기대ë˜ëŠ” ê²°ê³¼ë¬¼ì— ëŒ€í•´ 표현한다. Customer는 AcceptanceTestë“¤ì— ëŒ€í•œ ì •í™•ì„±ì„ ê²€ì¦ê³¼, ì‹¤íŒ¨ëœ í…ŒìŠ¤íŠ¸ë“¤ì— ëŒ€í•œ ìš°ì„ ìˆœìœ„ì— ëŒ€í•œ test score를 ê²€í† í• ì±…ìž„ì´ ìžˆë‹¤. AcceptanceTestë“¤ì€ ë˜í•œ production release를 위한 ìš°ì„ ìˆœìœ„ì˜ ì „í™˜ì‹œì—ë„ ì´ìš©ëœë‹¤. UserStory는 해당 UserStoryì˜ AcceptanceTest를 Pass 하기 ì „ê¹Œì§€ëŠ” 수행ë˜ì—ˆë‹¤ê³ ìƒê°í• 수 없다. ì´ëŠ” 새로운 AcceptanceTestë“¤ì€ ê° Iteration ë•Œ ë§Œë“¤ì–´ì ¸ì•¼ í•¨ì„ ëœ»í•œë‹¤. QualityAssurance (QA)는 XP processì˜ ì£¼ìš” 부분ì´ë‹¤. 몇몇 프로ì íŠ¸ë“¤ì˜ QA는 ë¶„ë¦¬ëœ ê·¸ë£¹ìœ¼ë¡œë¶€í„° 수행ë˜ì–´ì§€ì§€ë§Œ, ì–´ë–¤ 프로ì 트들ì—ì„œì˜ QA는 개발팀 ìŠ¤ìŠ¤ë¡œì— ì˜í•´ 수행ë˜ì–´ì§„다. ê°ê°ì˜ 경우ì—ì„œ XP는 좀 ë” QA와 관계있는 ê°œë°œì„ ìš”êµ¬í•œë‹¤. AcceptanceTest는 ìžë™ìœ¼ë¡œ 수행ë˜ì–´ì ¸ì•¼ 하며, ë˜í•œ ê·¸ë ‡ê¸° ë•Œë¬¸ì— ìžì£¼ 실행ë 수 있다. AcceptanceTest score는 ê°œë°œíŒ€ì— ì˜í•´ ì 수가 매겨진다. 매 Iterationì— ëŒ€í•´ 실패한 AcceptanceTest를 ìˆ˜ì •í•˜ê¸° 위한 시간분배 ìŠ¤ì¼€ì¤„ì— ëŒ€í•´ì„œ ë˜í•œ ê°œë°œíŒ€ì˜ ì±…ìž„ì´ë‹¤. 'AcceptanceTest'란 ì´ë¦„ì€ ë³¸ëž˜ 'FunctionalTest' 로부터 온 것ì´ë‹¤. ì´ëŠ” ''Customerì˜ ìš”êµ¬ì‚¬í•ì— 대해 systemì´ 'acceptable' í•¨ì„ ë³´ì¦í•œë‹¤''ë¼ëŠ” ë³¸ëž˜ì˜ ì˜ë„를 ë” ì¶©ì‹¤ížˆ ë°˜ì˜í•´ì¤€ë‹¤. 요새는 CustomerTest ë¼ê³ í‘œí˜„í•˜ê¸°ë„ í•œë‹¤. (UnitTest 를 ProgrammerTest ë¼ê³ ë¶€ë¥¸ë‹¤ê³ í• ë•Œ ìƒëŒ€ì ì¸ ê°œë…ì¼ë“¯). ---- ["ProjectPrometheus"] ì§„í–‰ì¤‘ì— ["1002"] 와 ["ìƒë¯¼"]ì€ AcceptanceTest 를 작성하며 진행하였다. 주로 Python ì„ ì´ìš©í•˜ì—¬ 간단한 web bot 를 작성, ì‹œìŠ¤í…œì´ ìž˜ ìž‘ë™í•˜ëŠ”ì§€ì— ëŒ€í•´ ìžë™í…ŒìŠ¤íŠ¸ë¥¼ 구현했다. (["ProjectPrometheus/AcceptanceTest"], 소스는 ZeroPageServer ì˜ CVS 프로ì 트들중 AcceptanceTestServer 참조) ---- ["ExtremeProgramming"]