studying...
  • 노트의목적
  • 웹전반
    • HTTP
      • 1. HTTP
      • 2. HTTP_Client
      • 3. HTTP_Server
      • 4. JAVA_HTTP_Server
      • 5. Spring_Web_MVC
    • REST_API
      • 1. REST_API
      • 2. URI&MIME_type
      • 3. COLLECTION_Pattern
      • 4. COLLECTION_Pattern_adjustment
      • 5. Spring_Web_MVC
    • DTO_JSON_CORS
      • 1. DTO
      • 2. 직렬화
      • 3. Jackson
      • 4. CORS
    • Layered_Architecture
      • 1. Layered_Architecure
      • 2. Data_Access
      • 3. Domain_Model
    • DI&Spring_Test
      • 1. Dependency_Injection
      • 2. Unit_Test
      • 3. Spring_Test
      • 4. TDD
    • Database
      • 1. Database
      • 2. Relational_Model
      • 3. JDBC
    • JPA
      • 1. ORM
      • 2. Hibernate
      • 3. Embeddable
      • 4. Relationship Mapping
      • 5. Spring Data JPA
    • 도메인_주도_설계
      • 1. DDD
      • 2. Strategic Design
      • 3. Entity, Value Object
      • 4. Aggregate
      • 5. Repository
    • Hexagonal_Architecture
      • 1. SOLID
      • 2. Hexagonal_Architecture
      • 3. 도메인 주도 설계 핵심
    • Spring_Security
      • 1. 애플리케이션 보안
      • 2. 인증
      • 3. 로그인 & 로그아웃
      • 4. 회원가입
      • 5. JWT&Authority
    • File_Upload
      • 1. Multipart_FormData
      • 2. Separation_of_Concerns
      • 3. Cloudinary
    • CQRS
      • 1. CQRS
      • 2. Redis
  • 면접대비
  • book
    • RealMySQL8.0
      • 4장
      • 5장
      • 8장
      • 9장
    • Object
      • 1장
      • 2장
      • 3장
      • 4장
      • 5장
      • 6장
      • 7장
      • 8장
      • 9장
    • ModernJava
      • ch1
      • ch2
    • 클라우드네이티브를위한 쿠버네티스 실전 프로젝트
      • 1장
      • 2장
      • 3장
      • 4장
    • 테라폼 쿡북
      • 2장
      • 3장
      • 4장
      • 5장
      • 6장
  • lecture
    • 외워서끝내는네트워크기초
    • 외워서끝내는네트워크심화
    • aws
      • Architecting_on_AWS
      • Architecrting-advanced
      • Developing_on_AWS
      • migration_essentials
      • Resilience
      • Running_Containers_on_EKS
    • Ansible
    • k8s
      • section2
      • section3
    • Terraform
  • experiences
    • workshops
      • EKS
Powered by GitBook
On this page
  • TDD 란
  • TDD Cycle
  1. 웹전반
  2. DI&Spring_Test

4. TDD

Previous3. Spring_TestNextDatabase

Last updated 1 year ago

TDD 란

TDD란 소프트웨어가 완전히 개발되기 전에 소프트웨어 요구 사항을 테스트 케이스로 변환하고, 모든 테스트 케이스에 대해 소프트웨어를 반복적으로 테스트해 개발을 추적하는 소프트웨어 개발 프로세스이다.

개발 순서는 다음과 같다.

  1. 테스트를 추가한다.

    • 기능을 추가하기 전에 유스케이스에 대한 분석을 통해 테스트 코드를 먼저 작성하면 개발자가 코드를 작성하기 전에 요구사항에 집중할 수 있다.

  2. 모든 테스트를 실행하고 실패해야 한다.

    • 해당 기능을 위해 새로운 코드가 필요하고 테스트 하네스가 잘 작동하고 있음을 확인한다.

  3. 테스트를 통과하는 가장 단순한 코드를 짠다

    • 어떤 코드든 통과만 하면 된다.

  4. 모든 테스트를 통과해야 한다

  5. 필요에 따라 리팩토링 후 테스트를 통해 기능이 유지되는지 확인한다.

    • 유지보수와 가독성을 고려해 리팩토링되어야 한다.

TDD Cycle

  1. Red -> 실패하는 테스트 코드를 작성

  2. Green -> 최대한 빨리 테스트를 통과시킴

  3. Refactor -> 리팩터링

TDD 란
TDD Cycle