원문 : http://extremeprogramming.org/rules/functionaltests.html

AcceptanceTestUserStory들에 의해서 만들어진다. Iteration 동안 IterationPlanning 회의때 선택되어진 UserStory들은 AcceptanceTest들로 전환되어진다. Customer는 해당 UserStory가 정확히 구현되었을때에 대한 시나리오를 구체화시킨다. 하나의 시나리오는 하나나 그 이상의 AcceptanceTest들을 가진다. 이 AcceptanceTest들은 해당 기능이 제대로 작동함을 보장한다.

AcceptanceTest는 blackbox system test 이다. 각각의 AcceptanceTest는 해당 시스템으로부터 기대되는 결과물에 대해 표현한다. Customer는 AcceptanceTest들에 대한 정확성을 검증과, 실패된 테스트들에 대한 우선순위에 대한 test score를 검토할 책임이 있다. AcceptanceTest들은 또한 production release를 위한 우선순위의 전환시에도 이용된다.

UserStory는 해당 UserStoryAcceptanceTest를 Pass 하기 전까지는 수행되었다고 생각할 수 없다. 이는 새로운 AcceptanceTest들은 각 Iteration 때 만들어져야 함을 뜻한다.

QualityAssurance (QA)는 XP process의 주요 부분이다. 몇몇 프로젝트들의 QA는 분리된 그룹으로부터 수행되어지지만, 어떤 프로젝트들에서의 QA는 개발팀 스스로에 의해 수행되어진다. 각각의 경우에서 XP는 좀 더 QA와 관계있는 개발을 요구한다.

AcceptanceTest는 자동으로 수행되어져야 하며, 또한 그렇기 때문에 자주 실행될 수 있다. AcceptanceTest score는 개발팀에 의해 점수가 매겨진다. 매 Iteration에 대해 실패한 AcceptanceTest를 수정하기 위한 시간분배 스케줄에 대해서 또한 개발팀의 책임이다.

'AcceptanceTest'란 이름은 본래 'FunctionalTest' 로부터 온 것이다. 이는 Customer의 요구사항에 대해 system이 'acceptable' 함을 보증한다라는 본래의 의도를 더 충실히 반영해준다.

요새는 CustomerTest 라고 표현하기도 한다. (UnitTestProgrammerTest 라고 부른다고 할때 상대적인 개념일듯).


ProjectPrometheus 진행중에 1002상민AcceptanceTest 를 작성하며 진행하였다. 주로 Python 을 이용하여 간단한 web bot 를 작성, 시스템이 잘 작동하는지에 대해 자동테스트를 구현했다.
(ProjectPrometheus/AcceptanceTest, 소스는 ZeroPageServer 의 CVS 프로젝트들중 AcceptanceTestServer 참조)


ExtremeProgramming
Retrieved from http://wiki.zeropage.org/wiki.php/AcceptanceTest
last modified 2021-02-07 05:22:25