티스토리 뷰

요즘 테스트 코드와 관련해서...

테스트 코드를 먼저 만들고 난 후, 코딩을 진행하는 것이 좋다...
또는 프로그래밍 코딩을 하면, 테스트 코드를 만들어 확인해야 한다..
리펙토링을 하기 전에는 반드시 테스트 코드가 있어야 한다..

라는 이야기를 많이 합니다.
 
테스트 코드라는 것이 매우 중요한 개념이라는 것은 많이 들어서 알 것 같습니다.
그런데.. 실천이 매우 어렵다는 것을 한번 느낀 적이 있어 글을 써봅니다.
 
최근 프로젝트에서 JUnit이라는 테스트 프레임워크와
Ant 툴을 이용해서 프로젝트에서 테스트 프로그램을 구성해 보았습니다.

흔히 말하듯 빌드 한방에 테스트가 완료되구요..
테스트 전후의 데이터도 변화가 없게 만들고...
나름 머리써가면서 잘 만들어 놨었죠~~

하지만, 테스트 구현에 있어 약간의 한계가 있었는데요..

첫째로, 테스트 코드를 만든 사람과 실제 프로그램 소스를 구현하는 사람이 달랐다는 점입니다.
팀원간의 소스코드에 대한 이해도 높인다는 (실은 프로젝트 관리자로서 개발자들의 코드를 살펴본다는 의미가 더 강했죠.. -.-) 명목하에 그렇게 구성했었죠..
그러다 보니.. 소스 코드가 명세 변경에 바뀌어 갈 때마다 테스트 코드도 업버전 되어야 하는데. 그렇게 되지 못했다는 겁니다.
결국 나중에는 테스트 코드는 쓰레기 코드가 되어 버려지게 되었죠.. -.-
(이 점이 아쉬웠는데요... 테스트 코드를 계속 발달시켜야 하는데.. 프로젝트 중간에 그러기가 어려웠거든요.)

둘째로, 테스트 프로그램이 모든 소스 코드를 커버해 주면 좋겠지만...
웹에서 받아들이는 부분은 일단 커버를 못해줬다는 점입니다.
Junit에 살펴보면 request, response를 가상으로 제어하는 부분이 있기는 하지만,
거기까지 적용하기는 복잡해서.. 내부 프레임워크에서 비즈니스 로직을 처리하는 부분부터만 테스트 코드를 적용한 거죠..
(이 부분은 이렇게 하는게 오히려 단순해 지기 때문에 테스트 구현에 도움이 되기는 하지만, 전체 프로젝트를 커버할 수없다는 단점도 있는 것 같더라구요.. )

어쨌든 처음으로 테스트 코드를 만들어 프로젝트에 넣어보았지만, 일단 성공하지는 못한 것 같습니다.
다음에는 테스트 코드를 먼저 만들고 코딩을 진행하는 방법도 한번 시도해 보려고 합니다.

혹시 이 부분에 대해서 좋은 경험 가진 분들의 댓글 부탁드립니다.
그럼.. 좋은 일요일 저녁 되세요~~

댓글
댓글쓰기 폼