2017년 8월 20일 일요일

TDD 가 유용한점

Ruby on rails 를 작성한 한넨마이어한슨(DHH) 인가 하는 친구가
TDD는 죽었다라는 글을 쓴것을 보았다.
http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html

읽어보니 지나친 unit test 를 많이 하더라도 궁극적으로 통합 테스트를 잘하는 것이
훨씬더 중요하다는 그러한 이야기였다.

하지만 그것은 순수하게 test의 유용성을 리그레션 측면에서 본것같다.

TDD로 코드를 작성하면서 개인적으로 가장 유용한점은 2가지이다.
1. 예제로서의 코드를 만들다 보니 디자인이 깔끔해짐.
2. xUnit 등은 예제로서의 코드를 만들기가 무척 편해서 다양한 예제를 추가하는 부담이 없다.


예를들어서 아래와 같은 python 코드를 보자
테스트를 넣을 공간이 쉽게 마련되다보니
테스트 추가가 용이하다. 만약에 이런 공간이 없다면 테스트를 자주 만들지 않게 되는것 같다.
verilog 에도 아래와 같은 case를 쉽게 추가하는 공간이 있다면 매우 유용할것 같다.
(물론 자체적으로 회사에서 사용하고있는 know how도 있으나 여기서 밝히기는 -.-;)


class MyTest : 
   def test_simple_test(): 
         어쩌구저쩌구...
         return


그럼에도 DHH가 쓴글에   Test는 오래 살아남아야한다는 부분은 매우 중요하게 강조하고싶다.
우리 팀은 15년 이상된 Test Code도 reuse하고 있기때문에 공감가는 부분이다.
HDD는 너무 작은 UnitTest를 많이 만드는것은 Test reuse에 도움이 안된다는 말을 강조하고 싶었던것 같다.
TDD에 대해서 회의를 느끼는것은 HDD가 매우 뛰어난 디자이너이기 때문인것 같다.
그는 TDD를 안해도 디자인이 깔끔한 사람으로 보인다.

하지만 평범한 사람은 xUnit과 같은 example을 다듬는 공간이 필요하다.




댓글 없음:

댓글 쓰기