LoginGustBookCategories
TDD

Introducing TDD

thumbnailCreatehb21·2022년 01월 05일 22:41

https://media.vlpt.us/images/devoks/post/4a1e8853-d6dc-436c-a742-4af9c5824248/test-driven-development-TDD.png

What is Testing ?

제품이 예상하는 대로 동작하는지 확인
  • 함수, 특정한 기능, UI, 성능, API 스펙 등을 확인한다.
  • 원하는 대로 동작하는지 확인한다.

Why Testing ?

  1. 리팩토링 및 유지보수 👍
  2. 문서화 👍
  3. 코드 품질향상 및 코드간 의존성 👇

Test Pyramid 란?

1. Unit Tests(단위 테스트)

  • 함수
  • 모듈
  • 클래스

2. Integration Test(통합 테스트)

  • 여러 개의 단위들을 묶었을 때의 상호작용을 테스트

3. E2E Test(end-to-end 테스트)

  • UI 테스트
  • 사용자 테스트


TDD란 무엇인가 ?

Test-driven development (테스트 주도 개발)
개발 코드를 작성하기 전, 테스트 코드를 먼저 작성해나가는 (개발)방식이다.

TDD가 최근에 다시 각광받기 시작하는 이유가 무엇일까 ?
  1. 요구 사항 분석 및 철저한 이해도가 쏙쏙 자라난다 👍
  2. 사용자 입장에서 코드를 작성하게됌
  3. 모든 요구 사항에 대해 점검해야함
  4. 이에 따라 코드 설계의 퀄리티 및 코드의 퀄리티가 좋아진다.
  5. 내부 구현 사항보다도 인터페이스 위주로 코드를 작성
  6. 이에 따라 디커플링된 코드를 작성하게됌, 이는 코드 퀄리티가 좋아지는 결과를 낳는다.
  7. 시스템 전반적인 설계 향상
  8. 개발 집중력 향상

https://t1.daumcdn.net/cfile/tistory/990D4B365C1DEB0804

When TDD ?

팀의 일원으로서, 메인 repo에 코드를 올리기 전 혹은 코드 리뷰를 요청하기 전에는 꼭 그에 해당하는 테스트 코드를 작성하고 포함시켜 올리자.

이러한 이유는 자신의 코드가 전혀 버그가 없다거나 기존의 코드에도 아무런 나쁜 영향을 미치지 않는다는 것을 검증할 수 있기 때문이다.

또한 이러한 방식은 좋은 문서화의 효과도 누릴 수 있다.

TDD는 필수는 아니다, 하지만 테스트 코드를 함께 포함시켜 머지하는 것은 필수다! 꼭 기억하자 👍

그렇다면 TDD를 명확하게 사용하는게 좋을 때는 언제일까 ?
  1. 요구사항이 명확할 때
  2. 비지니스 로직
  3. 협업시 명세서(문서) 역할이 필요할 때
  4. 설계에 대한 고민이 필요할 때
  5. UI에 대한 코드에 대해서는 굳이 TDD가 필요 없을 수도 😊
# Agile# TDD
© 2021 Createhb21.