TDD (Test-Driven Development)는 소프트웨어 개발 방법론 중 하나로, 소프트웨어를 개발할 때 테스트를 먼저 작성한 다음 그 테스트를 통과시키는 코드를 작성하는 개발 방식입니다. TDD는 소프트웨어의 품질을 향상시키고 버그를 줄이며 유지보수성을 향상시키는 데 도움을 줍니다.
TDD의 주요 단계는 다음과 같습니다:
- 테스트 작성 (Test Write): 개발자는 먼저 구현하려는 기능 또는 모듈의 동작을 정의하는 테스트 케이스를 작성합니다. 이 테스트는 예상되는 동작과 예상 결과를 명시적으로 설명해야 합니다. 테스트 케이스는 실패할 것으로 예상됩니다.
- 테스트 실행 (Test Run): 작성한 테스트 케이스를 실행하여 현재 상태에서는 실패하도록 만듭니다. 이는 아직 구현되지 않았거나 잘못된 동작을 나타낼 것입니다.
- 코드 작성 (Code Write): 실패한 테스트 케이스를 통과시키기 위한 최소한의 코드를 작성합니다. 이 때, 코드는 테스트를 통과시키기 위한 목적으로만 작성되어야 합니다.
- 코드 리팩토링 (Refactor): 테스트를 통과시킨 코드를 개선하고 중복을 제거하는 등의 리팩토링 작업을 수행합니다. 이 과정에서 코드의 구조를 더 나은 상태로 개선할 수 있습니다.
- 테스트 재실행 (Test Rerun): 코드를 리팩토링한 후에도 모든 테스트 케이스를 다시 실행하여 코드 변경으로 인해 새로운 버그가 발생하지 않았는지 확인합니다.
- 반복 (Repeat): 위 단계를 필요한 만큼 반복합니다. 각 단계에서 작은 단계를 진행하면서 소프트웨어를 점진적으로 구축하고 개선합니다.
TDD의 핵심 아이디어는 코드를 작성하기 전에 테스트를 작성하고 테스트 케이스를 통과하는 코드를 작성하는 것입니다. 이렇게 함으로써 코드의 동작이 명확하게 정의되며, 버그를 조기에 발견하고 수정할 수 있습니다. 또한, 코드 변경 시 테스트 케이스를 통해 기존 기능의 안정성을 보장할 수 있습니다. TDD는 소프트웨어 개발 프로세스를 예측 가능하고 안정적으로 만들어주는 중요한 방법 중 하나입니다.
'TIL(Today I Learned)' 카테고리의 다른 글
TLI 86일 (23. 9. 11. 월) 최종프 (0) | 2023.09.12 |
---|---|
TLI 85일 (23. 9. 8. 금) 최종프, 프로세스와 쓰레드, aws (0) | 2023.09.08 |
TLI 83일 (23. 9. 6. 수) 최종프, CI/CD, 코드 정리 (0) | 2023.09.06 |
TLI 82일 (23. 9. 5. 화) 최종프, 템플릿 조각 기능, 상단바 (0) | 2023.09.05 |
TLI 81일 (23. 9. 4. 월) 최종프 세션 기반, 토근 기반 차이점 (0) | 2023.09.04 |
댓글