TDD

우노구나·2025년 7월 31일


TDD의 3단계 싸이클

red == 실패 : 실패하는 테스트를 작성

  • 목표를 설정하는 단계

green == 성공 : 최대한 꼼수를 써서 테스트를 통과시킴

  • 어떠한 방법으로더 더 이상 꼼수를 쓸 수 없거나 구현을 쉽게할 수 있는 상태라면 구현

blue == 리팩토링 : 리팩토링(목표를 달성하는 단계)

  • 리팩토링을 하면서 자연스럽게 구현을 할 수 있으면 구현을 해도 됨

  • 성공하는 테스트케이스를 더 추가해도 됨.


자동 테스트 vs 수동 테스트

구분자동 테스트수동 테스트
실행주체컴퓨터사람
실행 속도빠름느림
실행 비용낮음높음
신뢰도높음낮음
유지보수용이어려움
반복성좋음나쁨
피로도없음높음

자동 테스트와 JUNIT

JUnit은 자바에서 가장 널리 사용되는 자동 테스트 프레임워크입니다.
JUnit을 사용하면 테스트 코드를 작성하고 실행할 수 있습니다.

JUnit의 주요 특징

  • @Test 어노테이션으로 테스트 메서드 지정

  • assertEquals(), assertTrue() 등의 assertion 메서드 제공

  • 테스트 실행 결과를 자동으로 보고

  • 테스트 실패 시 상세한 오류 메시지 제공

  • JUnit을 사용하면 코드의 품질을 높이고 버그를 조기에 발견할 수 있습니다.


테스트관련 용어 정리

TDD (Test-Driven Development): 테스트 주도 개발. 테스트 코드를 먼저 작성하고 그 테스트를 통과하는 코드를 작성하는 개발 방법론

테스트 케이스: 특정 기능이나 요구사항을 검증하기 위한 테스트 시나리오

단위 테스트: 코드의 가장 작은 단위(메서드, 클래스 등)를 독립적으로 테스트

통합 테스트: 여러 컴포넌트가 함께 동작하는 것을 테스트

회귀 테스트: 기존 기능이 새로운 변경사항으로 인해 깨지지 않았는지 확인하는 테스트

테스트 커버리지: 테스트가 얼마나 많은 코드를 실행했는지를 나타내는 지표

테스트 더블: 테스트를 위해 실제 객체 대신 사용하는 가짜 객체 (Mock, Stub, Spy 등)

리팩토링: 코드의 기능은 유지하면서 내부 구조를 개선하는 작업

Red-Green-Refactor: TDD의 핵심 사이클

  • Red: 실패하는 테스트 작성

  • Green: 테스트를 통과하는 최소한의 코드 작성

  • Refactor: 코드 개선

profile
기술 블로그

0개의 댓글