TDD 공부

윤현우·2023년 2월 3일
0

TDD공부

목록 보기
1/7
post-thumbnail

1. 단위 테스트, 통합 테스트

단위 테스트란,

코드가 제대로 작동하는지 확인하기 위해 애플리케이션의 개별 모듈을 독립적으로 테스트 (종속성과의 상호 작용없이)하는 것을 의미합니다.

통합 테스트란,

다른 모듈이 그룹으로 결합 될 때 잘 작동하는지 확인하는 것을 의미합니다.

간단한 예로 기능성 휴대폰을 사용할 경우 필요한 주요 부품은 "배터리"와 "유심 카드"입니다.

단위 테스트 예)

  • 배터리의 수명, 용량 및 기타 매개 변수를 확인한다.
  • SIM 카드가 활성화 되었는지 확인한다.

통합 테스트 예)

  • 배터리와 SIM카드가 일체화 되어 휴대폰을 시작하기 위해 조립됩니다.

2. 단위 테스트의 중요성

단위 테스트를 작성해야 하는 이유는 정말 너무 많다. 그 중에서 몇 가지 핵심적인 이유들을 작성하면 다음과 같다.

  • 코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증 할 수 있다.
  • 리팩토링 시에 안정성을 확보할 수 있다.
  • 개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다.

우리는 개발이 끝난 뒤 문제가 있는지 없는지 확인하기 위해 애플리케이션을 실행하고, 직접 통합(수동)테스트를 진행해야 한다.

단위 테스트를 거치지 않은 코드들은 테스트를 거친 코드들 보다 버그가 있을 확률이 높다.

우리는 개발 및 테스팅에 대한 비용을 줄이기 위해 단위 테스트를 작성한다.


3. TDD(테스트 주도 개발)을 먼저 작성해야 하는 이유와 방법 및 순서

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

  1. 깔끔한 코드를 작성할 수 있다.
  2. 장기적으로 개발 비용을 절감할 수 있다.

TDD의 궁극적인 목표는 깔끔한 코드를 작성하는 것이다. TDD의 개발단계에 리팩토링이 있는데, 리팩토링을 거쳐가며 중복된 코드들은 제거되고, 복잡한 코드들은 깔끔하게 정리하게 된다.

TDD 방법 및 순서

  1. 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다.

  2. 빨리 테스트를 통과하기 위해 프로덕션 코드를 작성한다. 이를 위해 정답이 아닌 가짜 구현 등을 작성할 수도 있다.

  3. 그 다음의 테스트 코드를 작성한다. 실패 테스트가 없을 경우에만 성공 테스트를 작성한다.

  4. 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가 또는 수정한다.

  5. 1~4단계를 반복하여 실패/성공의 모든 테스트 케이스를 작성한다.

  6. 개발된 코드들에 대해 모든 중복을 제거하며 리팩토링한다.

profile
개발자가 되는 그날까지

0개의 댓글