Giyoun's Blog

TDD

2023-02-26

TDD

TDD란 뭔데 핫한거지?

정의

  • TDD란 # 테스트 주도 개발(test-driven development, TDD)은 소프트웨어 개발 방법론 중의 하나로, 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법을 말한다.

장점

  • 깔끔한 코드를 작성할 수 있다.
  • 장기적으로 개발 비용을 절감할 수 있다.
  • 개발이 끝나면 테스트 코드를 작성하는 것은 매우 귀찮다. 실패 케이스면 더욱 그렇다.

단점

  • 가장 큰 단점은 바로 생산성 저하이다.
  • 기존 개발 습관과 방식을 교체해야 하므로 적응기간이 필요하다.

유의 사항

좋은 테스트 코드란?

  1. Fast: 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다.
  2. Independent: 각각의 테스트는 독립적이며 서로 의존해서는 안된다.
  3. Repeatable: 어느 환경에서도 반복 가능해야 한다.
  4. Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다.
  5. Timely: 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다.

[ TDD(Test-Driven Development, 테스트 주도 개발) 방법 및 순서 ]

TDD 개발 방법론의 프로그래밍 순서는 매우 단순하다.

  1. 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다.
  2. 빨리 테스트를 통과하기 위해 프로덕션 코드를 작성한다. 이를 위해 정답이 아닌 가짜 구현 등을 작성할 수도 있다.
  3. 그 다음의 테스트 코드를 작성한다. 실패 테스트가 없을 경우에만 성공 테스트를 작성한다.
  4. 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가 또는 수정한다.
  5. 1~4단계를 반복하여 실패/성공의 모든 테스트 케이스를 작성한다.
  6. 개발된 코드들에 대해 모든 중복을 제거하며 리팩토링한다.

image

  • { Red } 단계에서는 실패하는 테스트 코드를 먼저 작성한다.
  • { Green } 단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성한다.
  • { Blue } 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행한다.

일반 개발 방식

image

TDD

image

댓글을 불러오는 중입니다.
원시값과 객체

자바스크립트의 타입은?

객체 지향 프로그래밍

객체지향 프로그래밍이란 뭘까?

You can look back but don't regret it | All Right Reserved by Giyoun