본문 바로가기

세상사는 이야기..

잡설.. 테스트 주도 개발.. 아니.. 테스트 개발

테스트 주도 개발이 요즘 대세라고 그러는거 같은데..

아직 c++ 개발에서는 테스트 주도 개발이 사실 힘들긴 합니다..(저만 그런가..ㅠ.ㅠ)

테스트 주도 개발을 해보려고 솔루션 만들고 main Project 와 test Project 2개를 만들며 해보긴 하는데..

일단 C# 혹은 java에서는 c++에서처럼 일일이 .h .cpp 를 test Project에 등록하지 않아도 테스트를 진행할수 있지만.

c++에서는  테스트할 .h/.cpp를 모두 등록을 해줘야 됨니다..(귀차니즘 발동시작..)

또한 c#은 강력한 visual studio에서 리팩토링 및 생성 기능을 이용해 클래스및 맴버함수, 변수 등을 자동 생성해주지만.

c++에서는 그러한 기능들이 없습니다.. (visual Assist에서 간단한 리팩토링 기능은 제공.. )..

지금 프로젝트를 진행하면서 서버는 c++ 클라이언트는 c#으로 만들고 있는데.

강력한 visual studio의 c# 지원 기능으로 쉽게 테스트 주도 개발을 할수 있는데 반해서..(필드.클래스,변수생성 및 빠른 컴파일)

c++에서는 모든작업이 손수 해줘야 됨니다...
(빠른 빌드를 통한 테스트 결과 확인을 해야 되는데.. c++에서는 아무리 빨리 컴파일 되게하려고 헤더에 include를 모두 없애도 컴파일이 너무 느려요...)

또한 테스트 주도 개발서들이 java로 나오다보니.. 이해하는데 힘도 들고요...(tdd책 보면서 java에 놀란......)

이걸 어떻게 적용해야 되나... 흠흠...



아직은 테스트 주도 개발이 아닌 테스트를 사용하는 개발이 되다 보니..

코드 작성후 테스트 목적으로 코드를 작성하게만 되네요...

장비를 탓하면 안 되지만..

c#과 c++을 병행하며 사용하다 보니..

이게 과연 또 같은 visual studio 맞는지 의문 까지 드네요 ㅠ.ㅠ

그래도 테스트 프로젝트를 만들면서 느낀점은..

테스트 주도 개발이 아닌 테스트 개발 이라고 하더라도

main project에만 코드 작성후 -> 브레이크 -> 디버깅 -> 값 확인  이것보단
 
main project 코드작성 -> 테스트 코드 작성 -> 빌드..

이게 빠르더군요.

한번 테스트 코드 작성해 둔것은 두고 두고 써먹을수 있고..

리팩토링 한다고 기존 코드 수정을 가했을때 테스트 해보기도 참 좋구요..

 뭐.. 언젠간 테스트 주도.. 테스트 하고 난뒤 코드 작성 으로 넘어가야되겠지만..

어쨌단 테스트 개발 만으로도 버그 및 디버깅을 하나/ 한번만이라도 줄일수 있는거 같습니다..