http://agile.egloos.com/5299932 에서 인상적인 것은 TLP.

조금 특이할만한 것으로 테스트 주도 개발(TDD)과 코딩 후 자동화된 단위 테스트 붙이기(TLP)를 구분해 놓았는데,  TLP는 테스트를 먼저 만드는 TDD와 달리, 코드가 만들어진 후에 그에 대한 자동화된 단위 테스트를 붙이는 것을 말합니다. 레거시 코드가 있는 경우 혹은 TDD를 하기에는 아직 수련이 충분하지 못한 경우 TLP를 하는 조직을 종종 봤고, 저 역시 맥락에 따라 TLP을 우선적으로 권하기도 하기 때문에 TLP를 따로 구분했습니다

코딩 후 자동화된 단위 테스트 붙이기(TLP), 지속적 통합(CI), 고객 참여(CP)가 성공과 관련이 깊습니다.

실천법 중에서 비교적 성공과 직결되는 것들이 존재한다. 그것은 고객 참여, 리팩토링, 코딩후 자동화 단위테스트 붙이기, 코드 공유 등이다.

TDD와 TLP를 구분해 놓았다는 것이 정말 맘에 든다. 단위테스트, 회귀테스트, 시스템테스트, 자동화 테스트, TDD 등을 마구 뭉뚱그려서 설명하고는 TDD 라고 얘기하는, 사실은 MTDD(뭉뚱그린 TDD)로 인해서 개발자들이 혼란과 오해에 시달리지 않게 하는 것은 중요한 것 같다.

최근에 요청 받은 한 인터뷰에서 나는 후배들에게 TDD를 소개하기는 하지만 권장하지는 않는다고 답변했다. 일단은 자신이 만든 코드에 대해서 자동화된 테스트 코드를 잘 작성하는 것이 중요하다고 생각한다. TDD는 스스로 자동화된 단위 테스트의 가치를 진심으로 느꼈을 때 시작해도 늦지 않을 듯.

그런면에서 별로 좋아하는 사람은 아니지만, TestNG를 만든 Cedric이 극렬 TDD 순수주의자인 밥 삼촌의 TDD 3원칙과 같은 글에  "테스트를 나중에 만드는 게 뭐가 어때서? 테스트를 잘 만드는 것이 중요한 게 아닌가?"라고 반박하는 글을 달곤 하는 것을 보면 쪼금 동감한다.

그러고 보니 생각나는데, 전에 블로그(blog.objectmentor.com/)에 TDD를 변호하는 글을 쓰면서, TDD로 만들어진 제품의 하나로 스프링 프레임워크를 들었는데, 미안하지만 스프링은 거의 대부분 테스트를 코딩 후에 만들면서 개발된 것이다.   따라서 밥 삼촌의 TDD 1원칙(테스트를 성공시키기 위해서가 아니라면 코드를 만들지 않는다)을 위반한 것이다. 따라서 스프링은 TLP라면 모를까 TDD로 개발한 사례로 들기는 부적당하다. 이는 스프링 소스코드의 테스트 코드를 봐도 충분히 알 수 있고, 유겐 휄러한테 직접 확인해본 것(만나자마자 이것부터 물어봐서 좀 미안하긴 했지만)이기도 하니 확실하다. 물론 로드 존슨은 일부 스프링 코드 개발은 TDD로 했다고 얘기한 적이 있으니 전혀 없는 것은 아니겠지만. 그래도 TDD로 개발된 제품 사례로 들기는 부적당하다. MTDD라면 모를까.

그런데 TLP는 무슨 약자인가? Test Last까지는 짐작이 가는데.. P는 뭐지. 구글 검색을 해봐도 나오지 않는데. "코딩 후 자동화된 단위 테스트 붙이기"라는 오해를 방지하기 위해 상당히 꼼꼼한 이름을 붙인 것을 보아서는 꼼꼼하기로 유명한 김창준님이 직접 만든 용어라는 의심이…

Related posts:

  1. 테스트 주도 개발 TDD 실천법과 도구 – 채수원
  2. 오픈소스 소프트웨어에서 오픈소스 코드가 가지는 의미는?
  3. 모든 개발자는 사실 TDD를 하고 있다
  4. 알면서 왜 안할까? TDD
  5. TDD 안티 패턴
  6. 테스트되지 않은 코드는 쓰레기인가?
  7. 자동생성되는 메소드에 throw new UnsupportedOperationException() 넣기
  8. 유쾌한 이슈처리 재촉 메일
  9. 동상이몽 – TDD
  10. 스프링 컨테이너에는 설정파일이 없다
  11. Spring 3.0 (37) 스프링 모듈-라이브러리 의존관계 매트릭스 업데이트와 CTDD
  12. JUnitMax 개발/비즈니스 중단되다
  13. 코드리뷰와 인스펙션이 테스트보다 효과적이고 블랙박스 테스트가 단위테스트/개발자테스트보다 낫다고?
  14. 테스팅 프레임워크는 직접 만들어 써보자
  15. MockMultipartHttpServletRequest

Facebook comments:

to “TDD와 TLP”

  1. great post, very informative. I ponder why the other experts of this sector do not realize this. You should proceed your writing. I’m sure, you’ve a huge readers’ base already!

  2. My brother suggested I might like this website. He was entirely right. This post truly made my day. You cann’t imagine simply how much time I had spent for this information! Thanks!

  3. Heya! I’m at work browsing your blog from my new iphone! Just wanted to say I love reading through your blog and look forward to all your posts! Carry on the fantastic work!

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha