ATDD 인수 테스트

YEON·2022년 4월 18일
0

TDD,ATDD,DDD 미션

목록 보기
1/3

인수 테스트란? (Acceptance Test)

명세 등 요구 사항이 충족되는지 확인하기 위해 비즈니스 측면에 초점을 맞춘 테스트라고 생각할 수 있다. 보통 마지막 단계에서 작업(기능)이 완전히 완료되었는지 검사하는데 수행된다.

요구사항(인수 조건)이 만족하는지 확인하는 과정에서, 시나리오에 맞춰 테스트가 수행된다.
이때, 인수 조건 Acceptance Criteria 이 사용자 스토리를 시나리오 형식으로 표현되며 시나리오는 프로젝트에 참여하는 사람들(개발자, 기획자 등)의 토의를 통해 나온다.
시나리오의 중점은 누가, 어떤 목적으로, 무엇을 하는가 이다.



vs 단위 테스트, 통합 테스트 비교

단위 테스트

  • 구현한 부분, 단위를 검증
  • 클래스 또는 메소드 수준의 대상 단위로 프로그램이 예상대로 동작하는지 확인하는 테스트이다.
  • Java는 주로 JUnit으로 테스트한다.

통합 테스트

  • 각 단위들이 유기적으로 잘 동작하는지 검증
  • 전체 코드와 다양한 환경(ex.외부 라이브러리, DB 접근)이 제대로 작동하는지 여러 모듈들을 모아 확인하는 테스트이다. (ex.환경 버그 등이 발생할 수 있다)
  • 스프링부트에서는 클래스 상단에 @SpringBootTest 어노테이션을 붙여 통합 테스트를 수행할 수 있다.

인수 테스트

  • 요구사항을 만족하는지를 검증
  • 소프트웨어 인수를 목적으로 하는 테스트이므로, 요구사항이 잘 작동하는지 테스트하며 실제 사용자 관점에서 테스트하는 경우가 많다.
  • Java에서는 RestAssured, MockMvc 같은 도구를 활용하여 인수 테스트를 작성할 수 있다.




ATDD

인수 테스트 주도 개발
인수 테스트를 먼저 작성한 다음 기능 개발을 하는 방법
사용자(고객)-개발자-테스터간의 커뮤니케이션을 기반한 개발 방법
애자일의 프로그밍 방법론 중 하나로 사용자 스토리를 기반으로 인수 조건을 도출하여 기능 개발을 진행하는 방법론이다.

ATDD 를 통해 요구사항과, 작업의 순서와 범위를 명확하게 파악할 수 있다.

  • ATDD Cycle
  • ATDD 개발 프로세스


vs TDD 비교

TDD

  • 짧은 사이클을 반복하는 소프트웨어 개발 프로세스
  • 인수 테스트 기반으로 하나씩 기능개발을 진행
  • 요구사항을 검증하는 자동화된 테스트 케이스를 작성한 다음 작성한 코드를 표준에 맞도록 리팩토링 개발 (테스트를 먼저 작성하고 프로덕션 코드를 작성)
  • TDD로만 개발하면 어떻게 시작하고 어디까지 구현할지 혼동이 올 수 있다.

ATDD

  • 사용자-개발자-테스터간의 협업이 초점
  • 인수 테스트를 먼저 작성한 다음 기능 개발을 하는 방법
  • TDD의 단점을 보완하기 위해 인수 테스트를 먼저 구현한 이후 단위 테스트를 통해 기능을 완성해나갈 수 있다.




ATDD 미션

  • 인수 테스트
  • 인수 테스트를 이용한 개발 흐름

미션을 통해 배울 수 있는 점

  • TDD 만으로 개발하는 것이 아닌 TDD 를 보완하여 ATDD 에서 TDD 개발로 나아가 개발하는 경험
  • 인수 테스트를 이용하여 소프트웨어를 개발하는 경험





[참고]
https://edu.nextstep.camp/s/13RXWHcB/lt/RlhrKTbI
https://tecoble.techcourse.co.kr/post/2021-05-25-unit-test-vs-integration-test-vs-acceptance-test/
https://boorownie.github.io/1
https://tecoble.techcourse.co.kr/post/2020-08-19-rest-assured-vs-mock-mvc/

profile
- 👩🏻‍💻

0개의 댓글