<TDD>테스트 코드 작성하기 -(4)

윤재열·2022년 12월 26일
0

Spring

목록 보기
71/72

테스트 주도 개발(TDD)

  • TDD란 "Test-Driven Development"의 줄임말로 "테스트 주도 개발"이라는 의미를 가지고 있습니다.
  • 테스트 주도 개발은 반복 테스트를 이용한 소프트 웨어 개발 방법론으로써 테스트 코드를 먼저 작성한 후 테스트를 통과하는 코드를 작성하는 과정을 반복하는 소프트 웨어 개발 방식입니다.
  • 애자일 방법론 중 하나인 익스트림 프로그래밍의 Test-First 개념에 기반을 둔, 개발주기가 짧은 프로세스로 단순한 설계를 중시합니다.

애자일 소프트웨어 개발 방법론

애자일은 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하는 개발 형식입니다.
원래 애자일 방법론 자체는 일하는 방법에 대한 관점으로 소프트웨어 개발에만 국한되지는 않습니다.
애자일 소프트웨어 개발 방법론의 핵심은 신속한 개발 프로세스를 통해 수시로 변하는 고객의 요구사항에 대응해서 제공하는 서비스의 가치를 극대화 하는 것입니다.

테스트 개발주기

  • 실패 테스트 작성 (Write Failing Test) : 실패하는 경우의 테스트 코드를 먼저 작성합니다.
  • 테스트를 통과하는 코드 작성 (Make a test Pass) : 테스트 코드를 성공시키기 위한 실제 코드를 작성합니다.
  • 리팩토링 (Refactor) : 중복 코드를 제거하거나 일반화하는 리팩토링을 수행합니다.

일반적인 개발 방법은 설계를 진행한 후 그에 맞게 애플리케이션 코드를 작성하고 마지막으로 테스트 코드를 작성하는 흐름으로 진행됩니다. 반면 테스트 주도 개발에서는 설계 이후 바로 테스트 코드를 작성하고 애플리케이션 코드를 작성한다는 점에서 차이가 있습니다.

테스트 주도 개발의 효과

디버깅 시간 단축

  • 테스트 코드 기반으로 개발이 진행되기 때문에 문제가 발생하였을 때 어디에서 잘못되었는지 확인하기가 쉽습니다.

생산성 향상

  • 테스트 코드를 통해 지속적으로 애플리케이션 코드의 불안정성에 대한 피드백을 받기 때문에 리팩토링 횟수가 줄고 생산성이 높아집니다.

재설계 시간 단축

  • 작성되어 있는 테스트 코드를 기반으로 코드를 작성하기 때문에 재설계가 필요할 경우 테스트 코드를 조정하는 것으로 재설계 시간을 단축할 수 있습니다.

기능 추가와 같은 추가 구현이 용이

  • 테스트 코드를 통해 의도한 기능을 미리 설계하고 코드를 작성하기 때문에 목적에 맞는 코드를 작성하는데 비교적 용이합니다.
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글