시나리오 기반 인수테스트 만들기 예제

PPakSSam·2022년 1월 23일
0
post-thumbnail

콘솔 어플리케이션 개발

로또 요구사항

  • 콘솔 기반의 로또 어플리케이션을 만든다.
  • 금액을 입력하면 금액에 맞는 갯수의 로또를 구입한다.
  • 지난주 당첨 번호를 입력하면 당첨 결과와 수익률이 계산된다.

로또 어플리케이션을 만드는데 위와 같은 요구사항이 있다고 하자.
만약 로또라는 도메인의 개념이 명확하게 잡혀있다면 위의 요구사항만 보고 뚝딱 만들 것이다.
그러나 로또를 처음 구현해보는 경우라면 위의 요구사항만으로는 구현하기 어려울 것이다.

로또 시나리오 - 정상적인 시나리오

  • 10000원을 입력한다.
  • 10장의 로또가 구매된다.
  • 구입한 10장의 로또 번호가 출력된다.
  • 지난주 당첨 번호로 1,2,3,4,5,6을 입력한다.
  • 당첨 통계가 출력된다.
  • 수익률이 출력된다.

로또 시나리오 - 비정상적인 시나리오 (적은 금액)

  • 100원을 입력한다.
  • 로또를 구입할 수 없다.

로또 시나리오 - 비정상적인 시나리오 (유효하지 않은 당첨 번호)

  • 10000원을 입력한다.
  • 10장의 로또가 구매된다.
  • 구입한 10장의 로또 번호가 출력된다.
  • 지난 주 당첨 번호로 1,1,1,1,1,1을 입력한다.
  • 당첨 통계와 수익률을 출력할 수 없다.

이렇게 시나리오 형식으로 하면 전체적인 시나리오가 머리속에 들어올 것이다.
즉 요구사항만 적혀있는 것보다는 이해하기가 쉬울 것이며, 도메인에 대한 개념이 부족할 때는 시나리오가 더 접근하기 쉬울 것이다.

시나리오를 토대로 구현해보기

강사님은 정상적인 시나리오 보다는 비정상적인 시나리오를 먼저 구현하는 것을 추천한다고 한다.

이렇게 작은 부분부터 구현해 나가면 어느정도 뼈대가 완성될 것이고 그런 다음 정상적인 시나리오를 구현하는 것을 추천한다고 한다.


API 어플리케이션 개발

요구사항 : 지하철역 관리 기능 구현하기

  • 지하철 역 생성
  • 지하철 역 목록 조회
  • 지하철 역 삭제

시나리오 : 지하철역 관리 기능 구현하기

  • 지하철 역 생성
    • 지하철 역 생성 요청을 한다.
    • 지하철 역이 생성 되었다.
  • 지하철 역 목록 조회
    • 지하철 역이 생성되어 있다.
    • 지하철 역 목록 조회 요청을 한다.
    • 지하철 역 목록이 응답되었다.
  • 지하철 역 삭제
    • 지하철 역이 생성되어 있다.
    • 지하철 역 삭제 요청을 한다.
    • 지하철 역이 삭제된다.

API 레벨의 테스트 작성

RestAssured 도구를 사용하여 테스트 요청코드를 작성

테스트 응답 결과를 검증

profile
성장에 대한 경험을 공유하고픈 자발적 경험주의자

0개의 댓글