본문 바로가기
GIT

TDD

by Rainbound-IT 2022. 2. 1.
반응형

 

테스트 주도 개발 ( TDD )은 소프트웨어가 완전히 개발되기 전에 테스트 케이스 로 변환되는 소프트웨어 요구 사항에 의존 하는 소프트웨어 개발 프로세스 이며 모든 테스트 케이스에 대해 소프트웨어를 반복적으로 테스트하여 모든 소프트웨어 개발을 추적합니다. 이것은 소프트웨어가 먼저 개발되고 테스트 케이스가 나중에 생성되는 것과 반대입니다.

 

 

1. 테스트 추가새 기능의 추가 는 기능의 사양이 충족되는 경우 통과하는 테스트를 작성하는 것으로 시작됩니다 . 개발자는 사용 사례  사용자 스토리 에 대해 질문하여 이러한 사양을 찾을 수 있습니다 . 테스트 주도 개발의 주요 이점은 개발자가 코드를 작성 하기 전에 요구 사항에 집중할 수 있다는 것 입니다. 이는 단위 테스트가 코드 뒤에 만 작성되는 일반적인 관행과 대조됩니다.

 

2. 모든 테스트를 실행합니다. 새 테스트 는 예상되는 이유로 실패해야 합니다 .이는 원하는 기능에 실제로 새 코드가 필요함을 나타냅니다. 테스트 하네스 가 올바르게 작동하는지 확인 합니다. 새로운 테스트에 결함이 있고 항상 통과할 가능성을 배제합니다.

 

3. 새로운 테스트를 통과하는 가장 간단한 코드 작성테스트를 통과하는 한 우아하지 않거나 하드 코드 가 허용됩니다. 코드는 5단계에서 어쨌든 연마됩니다. 테스트된 기능 외에 코드를 추가하면 안 됩니다.

 

4. 이제 모든 테스트를 통과해야 합니다.하나라도 실패하면 통과할 때까지 새 코드를 수정해야 합니다. 이렇게 하면 새 코드가 테스트 요구 사항 을 충족하고 기존 기능이 손상되지 않습니다.

 

5. 기능이 유지되는지 확인하기 위해 각 리팩터링 후에 테스트를 사용하여 필요에 따라 리팩터링코드는 가독성 과 유지 관리 용이성 을 위해 리팩터링 되었습니다 . 특히 하드 코딩된 테스트 데이터는 제거해야 합니다. 각 리팩터링 후에 테스트 스위트를 실행하면 기존 기능이 손상되지 않도록 하는 데 도움이 됩니다.

  • 리팩토링의 예:
    • 가장 논리적으로 속하는 곳으로 코드 이동
    • 중복 코드 제거
    • 이름  스스로 문서화 하기
    • 방법을 더 작은 조각으로 나누기
    • 상속 계층 재정렬

반복하다위의 주기는 각각의 새로운 기능에 대해 반복됩니다. 테스트는 작고 점진적이어야 하며 자주 커밋해야 합니다. 그렇게 하면 새 코드가 일부 테스트에 실패할 경우 프로그래머가 과도하게 디버그 하는 대신 단순히 실행 취소 하거나 되돌릴 수 있습니다. 외부 라이브러리 를 사용할 때 라이브러리가 버그가 있거나 모든 기능을 제공할 만큼 기능이 풍부하지 않다고 믿을 만한 어떤 이유가 없는 한 라이브러리 자체만을 효과적으로 테스트할 정도로 작은 테스트를 작성하지 않는 것이 중요합니다 . 개발 중인 소프트웨어의 요구 사항.

 

 

 

출처

https://en.wikipedia.org/wiki/Test-driven_development

반응형

'GIT' 카테고리의 다른 글

프로그래밍 언어 16선  (0) 2022.08.18
git 배우기  (0) 2022.06.18
MAVEN  (0) 2022.01.28
MAVEN  (0) 2022.01.28
개발에서 아티팩트  (0) 2021.08.25

댓글