YoungSoo

Test Driven Development 본문

CS/Software Engineering

Test Driven Development

YoungSooSoo 2023. 8. 18. 17:12

Test Driven Developmen

프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 방법론

 

Red - Green - Refactor 순으로 개발

  1. Red - 실패하는 테스트 작성

  2. Green - 테스트를 통과하는 최소한의 코딩

  3. Refactor - 구현 코드 개선과 테스트 통과 유지

 

이러한 사이클을 통해 TDD를 했을 땐

  1. 복잡도가 늦은, 테스트 가능한 코드로 구현할 수 있음.

  2. 쉽게 발견하기 어려운 엣지 케이스를 놓치지 않게 해준다.

  3. 구현에 대한 빠른 피드백을 받을 수 있다.

  4. 과감한 리팩토링이 가능해진다.

이러한 장점들을 확인할 수 있습니다.

 

반대로 선 기능 구현 후, 테스트를 작성했을 땐

  1. 테스트 자체의 누락 가능성

  2. 특정 테스트 케이스(해피 케이스)만 검증할 가능성

  3. 잘못된 구현을 다소 늦게 발견할 가능성

이러한 단점들을 확인할 수 있습니다.

 

TDD - 관점의 변화

  1. 테스트는 구현부 검증을 위한 보조 수단 → 테스트와 상호 작용하며 발전하는 구현부

  2. 클라이언트 관점에서의 피드백을 주는 Test Driven

 

 

 

https://www.inflearn.com/course/practical-testing-%EC%8B%A4%EC%9A%A9%EC%A0%81%EC%9D%B8-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B0%80%EC%9D%B4%EB%93%9C/dashboard

 

Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의

이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강

www.inflearn.com

박우빈 님의 강의인 실용적인 테스트 가이드 중 TDD 강의를 보고 학습을 위해 작성한 내용입니다.

'CS > Software Engineering' 카테고리의 다른 글

애자일 방법론과 TDD 그리고 JIRA  (0) 2023.04.10