테스트 주도 개발을 연습해야 하는 이유는 무엇이며 어떻게 시작해야 합니까?

StackOverflow https://stackoverflow.com/questions/4303

  •  08-06-2019
  •  | 
  •  

문제

많은 사람들이 코드 작성을 시작하기 전에 코드에 대한 테스트 작성에 대해 이야기합니다.이러한 방식을 일반적으로 줄여서 테스트 주도 개발(Test Driven Development, TDD)이라고 합니다.이런 식으로 소프트웨어를 작성하면 어떤 이점이 있습니까?이 연습을 어떻게 시작하나요?

도움이 되었습니까?

해결책

많은 이점이 있습니다:

  • 코드가 작동하는지에 대한 즉각적인 피드백을 받을 수 있으므로 버그를 더 빨리 찾을 수 있습니다.
  • 테스트가 빨간색에서 녹색으로 바뀌는 것을 보면 작동 중인 회귀 테스트와 작동하는 코드가 모두 있음을 알 수 있습니다.
  • 기존 코드를 리팩터링하는 데 자신감을 얻습니다. 즉, 코드가 손상될 염려 없이 코드를 정리할 수 있습니다.
  • 마지막에는 자동화된 빌드 중에 실행할 수 있는 일련의 회귀 테스트를 통해 코드베이스가 견고하다는 확신을 갖게 됩니다.

시작하는 가장 좋은 방법은 바로 시작하는 것입니다.훌륭한 것이 있습니다 켄트 벡의 책 테스트 주도 개발에 대한 모든 것.새로운 코드로 시작하세요. 이전 코드에 대해 걱정하지 마세요...일부 코드를 리팩터링해야 한다고 느낄 때마다 기존 기능에 대한 테스트를 작성한 다음 이를 리팩터링하고 테스트가 녹색으로 유지되는지 확인하세요.또한 읽어보세요 이 훌륭한 기사.

다른 팁

장점이 있는 부분은 최근에 다뤄졌어, 어디서부터 시작해야 할지....알 수 없는 것이 너무 많지 않아 위험이 낮은 소규모 기업 시스템에서.NUnit과 같은 테스트 프레임워크를 아직 모른다면, 배우는 것부터 시작하세요.그렇지 않으면 첫 번째 테스트 작성부터 시작하세요 :)

이익

  1. 코드를 분류하는 방법을 알아냅니다.
  2. 코드에서 수행하려는 작업을 정확히 파악합니다.
  3. 리팩토링으로 인해 문제가 발생하면 어떻게 작동해야 하는지 알고 있습니다.
  4. 코드가 무엇을 해야 하는지 항상 알고 있는지 확인하는 습관을 갖게 합니다.

시작하기

그냥 해.수행하려는 작업에 대한 테스트 사례를 작성한 다음 테스트를 통과해야 하는 코드를 작성하세요.테스트를 통과하면 코드가 항상 실패하는 경우(예를 들어 2+2가 5가 되어서는 안 됨) 작성 사례로 넘어갈 수 있습니다.

모든 테스트가 통과되면 원하는 모든 작업을 수행할 수 있는 실제 비즈니스 로직을 작성하세요.

처음부터 시작하는 경우 사용하기 쉬운 좋은 테스트 도구 모음을 찾으십시오.저는 PHP를 좋아해서 PHPUnit이나 SimpleTest가 잘 작동합니다.거의 모든 인기 있는 언어에는 테스트를 구축하고 자동화하는 데 사용할 수 있는 xUnit 테스트 제품군이 있습니다.

내 생각에 가장 좋은 점은 코드가 예상대로 작동하는지 명확하게 확인할 수 있다는 것입니다.이는 당연한 것처럼 보일 수도 있지만, 과거에 제가 알아냈듯이 원래 목표에서 벗어나는 것은 매우 쉽습니다. :p

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top