[JAVA] TDD

Jimin·2024년 6월 10일
0

JAVA

목록 보기
26/30
post-thumbnail

TDD

Test Driven Development

TDD란?

소프트웨어 개발의 한 방법론으로, 매우 짧은 개발 사이클의 반복에 초점을 맞추는 것.
개발자가 실제 코드를 작성하기 전에 자동화된 테스트를 먼저 작성하도록 하는 것.
➡️ TDD는 클린코드와 버그가 적은 소프트웨어 개발을 촉진시킨다.

TDD의 기본 순서
1. 실패하는 테스트 코드 작성
2. 테스트를 통과하는 코드 작성
3. 리팩토링

리팩토링보다는 우선 코드가 돌아가도록 하는 것이 우선이다.

TDD의 장점

프로덕션 ➡️ 테스트(TDD) 테스트 ➡️ 프로덕션
큰 틀 ➡️ 세부적인 사항 구현
그 틀에 끼워맞추려는 식으로 강제로 구현에 제한 有
세부적인 사항 설정 ➡️ 큰 틀
구현에 제한이 생기지 않음
내가 이 메서드를 사용할 것이라는 예측과 추측으로 메서드 생성메서드를 만들 근거가 명확하게 정의된 후 메서드 생성
코드 구현이 올바르게 되었는지 바로 확인하기 어려움프로덕션 코드를 구현하고 바로 테스트 코드를 실행하여 구현이 올바르게 되었음을 확인할 수 있음

TDD의 단점

  1. 어떤 기능에 대한 테스트를 만들고 해당 기능의 프로덕션 코드를 작성하던 도중, 해당 기능을 구현하기 위해 요구사항 분석 단계에서 미처 생각하지 못한 세부적인 기능이 추가적으로 필요해지는 경우에 문제점이 발생한다.
  2. TDD를 위해 세부 기능의 테스트 코드를 작성하고자 할 때, 현재 구현하고 있는 메서드의 구현 흐름이 망가지고, 현재 구현하고 있는 메서드를 완료하기 위해서는 세부 기능 메서드의 프로덕션 코드의 구현이 선행되어야 한다. 이는 TDDD의 원칙에 어긋난다.
profile
https://github.com/Dingadung

0개의 댓글