TDD (Test-Driven Development)는 소프트웨어 개발 방법론 중 하나로, 코드를 작성하기 전에 테스트를 먼저 작성하고, 이 테스트를 통과하는 코드를 작성하는 방식을 의미합니다.
TDD의 주요 과정은 다음과 같습니다:
1. 실패하는 테스트 작성: 원하는 기능에 대한 테스트 케이스를 먼저 작성합니다. 이 시점에서는 테스트가 실패합니다.
2. 코드 작성: 테스트 케이스를 통과할 수 있는 최소한의 코드를 작성합니다.
3. 테스트 실행: 작성한 코드가 테스트를 통과하는지 확인합니다.
4. 리팩토링: 코드를 개선하고 최적화합니다.
* 예시: 간단한 덧셈 함수 작성 (파이썬 기준)
1. 실패하는 테스트 작성
def test_add():
result = add(1, 2)
assert result == 3
이 시점에서 `add` 함수는 아직 정의되지 않았으므로 테스트는 실패합니다.
2. 코드 작성
def add(a, b):
return a + b
이제 `add` 함수를 정의했으므로 테스트를 실행할 수 있습니다.
3. 테스트 실행
테스트를 실행하면, 작성한 `add` 함수가 올바르게 동작하는지 확인할 수 있습니다.
4. 리팩토링
현재 예제에서는 리팩토링할 부분이 없지만, 복잡한 함수나 클래스의 경우 코드의 효율성, 가독성 등을 개선하기 위해 리팩토링을 진행할 수 있습니다.
TDD의 장점은 다음과 같습니다
- 높은 코드 품질
테스트를 먼저 작성함으로써, 코드의 품질과 안정성이 높아집니다.
- 리팩토링 용이
테스트 케이스가 있기 때문에, 코드 변경 시 안정성을 쉽게 확인할 수 있습니다.
- 명확한 요구사항 파악
테스트를 통해 기능의 요구사항을 명확하게 파악할 수 있습니다.
TDD는 초기에는 시간이 더 소요될 수 있지만, 장기적으로는 코드의 품질 향상과 유지보수의 용이성 등의 이점을 제공합니다.
'무근본 IT 지식 공유' 카테고리의 다른 글
시스템 프로그래밍 makefile 간단 문제 예시 (0) | 2023.09.19 |
---|---|
[파이썬,C언어] 행렬 M에서, N번째로 큰 수를 찾아야 합니다. (0) | 2023.09.17 |
C언어, 파이썬 이진탐색에 관하여 (샘플문제, 수도코드) (0) | 2023.09.17 |
(프로그래밍) Parameter와 Argument의 차이점이 있다고???-왕초보도 이해하는 프로그래밍 (0) | 2023.09.16 |
API란 뭘까요 ? -왕초보도 이해하는 프로그래밍 (0) | 2023.09.16 |
댓글