수강후기 공유 시스템을 Test-Driven과 함께한후의 소감

#회고록

image

수강후기 공유시스템의 현재 내가 작성해둔테스트 커버리지 결과 문서이다. 성공률을 많이 끌어올리고 있으나, CRUD 위주의 기능들이라고 생각했던 나는 테스트를 가뿐히 거의 100%는 만들겠지 하며 이번 점진적 리팩터링을 진행하며 테스트 케이스를 대거 추가하였다.

누구나 생각해도 뻔하고 기본적인 케이스라고 생각했던 부분들이 내가 테스트하고자 하는 영역을 명확히 지정하고 테스트 범위에서 벗어나는 영역을 Mockito와 같은 라이브러리를 사용해보며 영역을 줄여나가는 것이 코드 상으로 이번 작업을 진행해보니 생각해야할게 예상한것보다 많다는 것을 깨달았다.

이렇게 최종 테스트 케이스들을 올려두니 꽤나 뿌듯하기도하고 아직 87%라는 커버리지를 더 올려보고 싶은 욕구가 생기고, 아직 테스트 되지 못한 영역이 있을지, 예외영역은 어디일지 고민이 되고 작업하기 기다려지는 순간들이 생겼다.

안일하고 예상과 벗어나는 서버의 행동에 나는 가끔 나의 실력이 부족한건가? 라고 실망한적도 있었지만, Test-Driven을 만나고 나니 이제는 자신감이 생기기 시작한다. 로직을 변경할때도 조금씩 과감히 변경하게되고,클라이언트 개발자 동료와 논의하다 새로운 예외 케이스들을 찾게되고 바로 테스트 환경으로 옮겨보는 과정을 거치니 산뜻 코드짤맛이 난다! 디비를 제어할때조차, JPA를 제어할때조차도 예상하기 힘들던 동작이 테스트 시나리오를 구성해서 하나씩 돌려나가니 내가 예상한대로 서버가 움직이기 시작했다.

나는 지금까지 목적지 깃발을 직접 꼿지않고, 그저 감으로 산을 등반하고 있었다면. 지금은 내가 지금 걸어온 길마다 깃발을 꼿아가며 내가 어떤 방향으로 길을 걸어왔는지 뒤를 돌아보며 눈여겨보고 다시 내가 가야할길을 차근히 갈 수 있는 Test-Driven 세계에 오게 되었다. 점점 코드 짜는 재미가 새로 생기는 기분이며, 새로운 기능을 구현할때마다. 또는 서비스에서 사용자가 행하는 행위를 예상해보며 테스트 환경을 구성해보는 재미를 소소하게 누리며 더 깊은 개발에 뛰어들고 싶다는 생각이 들었다.

image

처음 접하게된 XUnit프레임워크를 테스트주도개발로 만들기라는 유튜브 영상을 통해서 Test-Driven을 처음 알려주신 토비 개발자님께 감사드리고, Test Development by Example을 써주신 켄트 백 개발자님께도 감사드립니다.