본문 바로가기

책/테스트 주도 개발 시작하기(완)

9장 테스트 범위와 종류

테스트 범위

  • 테스트의 범위는 테스트의 목적과 수행하는 사람에 따라 달라진다.

기능 테스트와 E2E 테스트

  • 기능 테스트는 끝(브라우저)에서끝(데이터베이스)가지 모든 구성 요소를 논리적으로 ㅎ완전한 하나의 기능으로 다룬다.
  • 기능 테스트는 사용자와 동일한 방식으로 기능을 검증해야 한다.

통합 테스트

  • 통합 테스트는 시스템의 각 구성 요소가 올바르게 연동되는지 확인한다.
  • 서비스 클래스에 대한 테스트가 통합 테스트 예가 될 수 있다.

단위 테스트

  • 단위 테스트는 개별 코드나 컴포넌트가 기대한대로 동작하는지 확인한다.

테스트 범위간 차이

  • 단위 테스트는 서버를 구동하거나 DB를 준비할 필요가 없다. 테스트 대상이 의존하는 기능을 대역으로 처리하면 되므로 테스트 실행 속도가 빠르다.
  • 통합 테스트나 기능 테스트로는 상황을 준비하거나 결과 확인이 어렵거나 불가능할 대가 있다. 외부 시스템과 연동해야 하는 기능이 특히 그렇다. 이런 경우에는 단위 테스트와 대역을 조합해서 상황을 만들고 결과를 확인해야 한다.
  • 통합 테스트 코드보다는 단위 테스트 코드를 더 많이 작성한다.

테스트 범위에 따른 테스트 코드 개수와 시간

  • 테스트를 자동화한다는 것은 결국 코드로 작성한 테스트를 실행한다는 것을 의미한다.
  • 정기적으로 수행하는 기능 테스트는 정상적인 경우와 몇가지 특수한 상황만 테스트 범위로 잡는다.\
  • 회원 가입 통합 테스트에서 중복 ID에 대한 테스트를 진행한다면 회원 가입 기능에 대한 단위 테스트에서는 중복 ID에 대한 테스트를 중복해서 작성할 필요가 없다.
  • 테스트 속도는 통합 테스트보다 단위 테스트가 빠르기 때문에 가능하면 단위 테스트에서 다양한 상황을 다루고, 통합 테스트나 기능 테스트는 주요 상항에 초점을 맞춰야 한다.

' > 테스트 주도 개발 시작하기(완)' 카테고리의 다른 글

11장 마치며  (0) 2024.07.28
10장 테스트 코드와 유지보수  (0) 2024.07.28
8장 테스트 가능한 설계  (3) 2024.07.23
7장 대역  (1) 2024.07.17
6장 테스트 코드의 구성  (0) 2024.07.17