
red == 실패 : 실패하는 테스트를 작성
green == 성공 : 최대한 꼼수를 써서 테스트를 통과시킴
blue == 리팩토링 : 리팩토링(목표를 달성하는 단계)
리팩토링을 하면서 자연스럽게 구현을 할 수 있으면 구현을 해도 됨
성공하는 테스트케이스를 더 추가해도 됨.
| 구분 | 자동 테스트 | 수동 테스트 |
|---|---|---|
| 실행주체 | 컴퓨터 | 사람 |
| 실행 속도 | 빠름 | 느림 |
| 실행 비용 | 낮음 | 높음 |
| 신뢰도 | 높음 | 낮음 |
| 유지보수 | 용이 | 어려움 |
| 반복성 | 좋음 | 나쁨 |
| 피로도 | 없음 | 높음 |
JUnit은 자바에서 가장 널리 사용되는 자동 테스트 프레임워크입니다.
JUnit을 사용하면 테스트 코드를 작성하고 실행할 수 있습니다.
@Test 어노테이션으로 테스트 메서드 지정
assertEquals(), assertTrue() 등의 assertion 메서드 제공
테스트 실행 결과를 자동으로 보고
테스트 실패 시 상세한 오류 메시지 제공
JUnit을 사용하면 코드의 품질을 높이고 버그를 조기에 발견할 수 있습니다.
TDD (Test-Driven Development): 테스트 주도 개발. 테스트 코드를 먼저 작성하고 그 테스트를 통과하는 코드를 작성하는 개발 방법론
테스트 케이스: 특정 기능이나 요구사항을 검증하기 위한 테스트 시나리오
단위 테스트: 코드의 가장 작은 단위(메서드, 클래스 등)를 독립적으로 테스트
통합 테스트: 여러 컴포넌트가 함께 동작하는 것을 테스트
회귀 테스트: 기존 기능이 새로운 변경사항으로 인해 깨지지 않았는지 확인하는 테스트
테스트 커버리지: 테스트가 얼마나 많은 코드를 실행했는지를 나타내는 지표
테스트 더블: 테스트를 위해 실제 객체 대신 사용하는 가짜 객체 (Mock, Stub, Spy 등)
리팩토링: 코드의 기능은 유지하면서 내부 구조를 개선하는 작업
Red-Green-Refactor: TDD의 핵심 사이클
Red: 실패하는 테스트 작성
Green: 테스트를 통과하는 최소한의 코드 작성
Refactor: 코드 개선