티스토리 뷰

TDD

TDD

강경 2021. 8. 26. 21:56
728x90
반응형

오늘은..!
많이들 시도하고 싶지만, 시도하기 어려워하는
하지만 매우매우 좋은!!
TDD(Test-driven development)에 대해 정리해보려고 합니다!

🧪 테스트 주도 개발(Unit Test First)

Test-driven development 즉, 테스트가 개발을 주도해간다!
말 뜻 그대로, 매우 짧은 테스트 개발 사이클을 반복하는 소프트웨어 개발 프로세스를 의미합니다!

☝🏻 테스트 진행 과정

이 방법을 고안해낸 Kent Baeck은 TDD가 단순한 설계를 장려하고, 자신감을 불어넣어준다고 말했습니다.
동작하는 깨끗한 코드를 만들 수 있기 때문이라지요!

진행 싸이클

  1. 실패하는 경우의 테스트를 작성합니다.
  2. 단순히, 테스트가 통과할 수 있도록 만듭니다.
  3. 순수하게 코드를 정갈하게 변경합니다.

테스트를 통과하면, 해당 코드는 보증된 코드가 되는 것이에요
기능마다 이를 반복하면, 기능마다 모두 동작이 가능함을 보이는 것이겠죠?

👍🏻 TDD의 장점

큰 단위의 문제를 작은 단위로 나눠서 해결한다.

코드를 기능별로 잘 나누어야지만, 제대로된 테스트를 할 수 있습니다.

지속적인 피드백을 통해 목표를 개선한다.

TDD는 빠르게 실패❌하고 빠르게 피드백💡을 받고 빠르게 개선✅하는 형태를 가집니다.
작은 실패들을 통해, 성공으로 가는 과정이라고 볼 수 있지요!

해당 함수에 대한 스펙 정의 문서역할을 한다.

예를들어, 나눗셈이라는 함수를 만들면
나누는 수가 0일때 fail을 나타나게하는 테스트를 만들 수 있겠죠?
이를 통해, 이 함수를 처음보는 사람은 해당 테스트를통해 이 함수에대해 더 빠삭하게 알 수 있을거고요!

테스트를 진행하면, 코드 수정에 자신감이 붙는다.

테스트를 진행하면, 어느부분 때문에 실패했는지를 명확하게 알 수 있을 뿐더러
그리고 이를 수정할 때는 테스트를 통과한 보증된 코드니까 자신감이 붙겠죠?

개발 스펙에 대해 확실하게 이해할 수 있다.

테스트를 진행하기 위해서는, 어떤걸 만들어 낼지에 대한 충분한 이해가 필요해요.
그래서 "내가 어떤 작업을 하고있고, 작업의 결과는 어떻게 되어야 한다"를 명확히 알 수 있게되는 것이죠!
명확하고 구체적인 목표를 가진채로 개발하는 것이니까, 그만큼 코드의 퀄리티도 높아지겠죠~? 😲

😎 마무리

TDD는 Unit Test를 통해 이루어져요!
그래서, 다음 시간에는 Unit Test에 대해 정리해볼까 합니다✍🏻
이해가 안되는 부분이나, 틀린 부분이 있으면 코멘트를 남겨주세요!
피드백은 정말정말 환영입니다🎉🎉

🙇🏻‍♂️ Reference

야곰아카데미

728x90
반응형