본문으로 건너뛰기
SDETRole
SDETRole

용어집 · 테스트 기초

인수 조건

영어: Acceptance criteria

다른 이름: 수용 기준, 인수 기준, 승인 기준, AC

정의

사용자 스토리나 기능이 완료된 것으로 프로덕트 오너에게 인정받기 위해 충족해야 하는 구체적이고 테스트 가능한 조건입니다.

인수 조건(Acceptance Criteria)은 비즈니스 관점에서 사용자 스토리가 언제 “완료”되는지를 정의하는 조건입니다. 각 조건은 통과 또는 실패로 판정할 수 있는 명확하고 테스트 가능한 문장입니다. 개발을 시작하기 전 리파인먼트(refinement) 단계에서 합의하며, 테스트 시나리오와 자동화된 검사의 출발점이 됩니다.

예시

스토리: 쇼핑객으로서 결제 단계에서 할인 코드를 적용해 프로모션 가격으로 결제하고 싶다.

규칙 기반 형식:

  • 유효하고 만료되지 않은 코드는 주문 총액을 코드의 할인율만큼 줄입니다.
  • 만료된 코드는 “This code has expired” 메시지를 표시하고 총액을 바꾸지 않습니다.
  • 주문당 코드는 하나만 적용할 수 있으며, 두 번째 코드를 적용하면 첫 번째 코드를 대체합니다.
  • 코드는 대소문자를 구분하지 않습니다(SAVE10과 save10은 동일).

같은 만료 코드 조건을 Given/When/Then 형식으로 쓰면 다음과 같습니다.

Scenario: Expired discount code is rejected
  Given my cart total is $50.00
  And the code "SPRING10" expired yesterday
  When I apply the code "SPRING10"
  Then I see the message "This code has expired"
  And my cart total is still $50.00

인수 조건과 완료의 정의(Definition of Done)의 차이

인수 조건은 하나의 스토리에 한정됩니다. 즉, 이 기능이 무엇을 해야 하는지를 정합니다. **완료의 정의(Definition of Done)**는 모든 스토리에 적용됩니다. 코드 리뷰 완료, 테스트 자동화, 문서 업데이트, 스테이징 배포 같은 항목입니다. 스토리는 두 가지를 모두 충족해야 비로소 완료됩니다.

좋은 인수 조건 작성법

  • 테스트 가능해야 합니다. “페이지가 빠르게 로드된다”는 테스트할 수 없지만, “스테이징 데이터셋 기준으로 상품 1,000개의 결과 페이지가 2초 이내에 렌더링된다”는 테스트할 수 있습니다.
  • 구현이 아니라 동작을 기술합니다. 어떤 데이터베이스 테이블이 바뀌는지가 아니라 결과를 설명하세요.
  • 부정 케이스를 포함합니다. 잘못된 입력, 권한, 오류 메시지도 기능의 일부입니다.
  • 쓰리 아미고(three amigos)가 합의합니다. 기획, 개발, 테스트가 함께 검토합니다. 테스터는 코드가 작성되기 전에 “만약 ~하면 어떻게 되나요?“라고 질문할 때 가장 큰 가치를 더합니다.

SDETRole 전체에서 검색할 내용을 입력하세요.

Pagefind 전문 검색 · 브라우저에서 실행됩니다 검색 페이지 열기 →