본문 바로가기
3.5. 프로그래밍 개념 및 도구/클린코드 & 좋은코드습관

테스트 코드 종류

by Dohi._. 2024. 11. 17.
728x90

테스트 코드를 사용하지 않았을 경우

실제로 다음과 같은 테스트 방식을 많이 이용한다.

서버 실행 → 테스트 할 API 요청 → 결과 값을 확인 및 검증

 

일단 서버를 실행을 하는데에 많은 자원을 소모하고.

API와 결과값을 검증하는데에 시간을 소모하게 된다.

 

이것이 테스트 코드를 작성해야하는 이유이다.

 

 

테스트 코드를 작성해야 하는 이유

  • 테스트에 대한 시간 및 비용 감소
  • 테스트 코드를 통한 빠른 피드백, 빠른 검증
  • 서버를 실제로 실행하기 전에 버그 발견 가능
  • (검증으로 인한) 안정성 확보 → 비교적 안전한 리팩터링 가능
  • (비용 감소로 인하여) 장기적으로는 더 빠른 코드 작성 가능 

 

 

테스트 종류

  • Unit test : 단위테스트
  • Integration test : 통합테스트
  • E2E test :  End To End 테스트

 

 

Unit Test (단위 테스트)

테스트의 가장 작은 단위로 함수로 생각하면 편하다.(비지니스 로직의 flow에 대한 검증)

입력값 -> 테스트 -> 결과값.

 

F.I.R.S.T 속성

  • Fast : 유닛 테스트는 빨라야 한다.
  • Isolated : 다른 테스트에 종속적인 테스트 금지
  • Repeatable : 매번 같은 결과
  • Self-validating : 테스트는 스스로 결과를 검증
  • Timely : 테스트는 적시에 작성

 

 

Integration test (통합 테스트)

  • real + infra (+ mock)
  • integration test는 환경(Library, Framework)에 대한 검증
  • flow 자체는 각각 괜찮았을 수도 있지만 통합을 해보니 문제가 발생할 수있다.

 

E2E test

  • 일반적으로 시스템 전체의 모든 것을 테스트( 애플리케이션의 무결성을 검증할 수 있다)
  • 대부분의 전체 시스템이 구축이 완료되고 배포도 문제없이 진행되었을 때,
  • 실제 유저 입장에서 시스템을 검증하는 단계로 UI부터 검증을 시작함
728x90

댓글