본문 바로가기
  • _^**_
무근본 IT 지식 공유

[무근본개발지식] TDD(Test Driven Development)가 대체 뭔데 !? - 쉽게 설명해드림

by 크리드로얄워터 2023. 8. 23.
반응형
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는 초기에는 시간이 더 소요될 수 있지만, 장기적으로는 코드의 품질 향상과 유지보수의 용이성 등의 이점을 제공합니다.

반응형

댓글