단위 테스트의 기술 - 견고하고 신뢰할 수 있는 코드를 만드는 단위 테스트 작성법
로이 오셔로브.블라디미르 코리코프 지음, 양문규 옮김 / 길벗 / 2024년 12월
평점 :
장바구니담기


단위 테스트는 컴퓨터 프로그래밍에서 예제 코드의 특정 모듈이 의도한 대로 정확히 작동하는지 검증하는 것입니다. 이 개념은 1970년대 스몰토크라는 오래된 프로그래밍 언어로 켄트 벡이 도입했습니다. 그 후 다른 프로그래밍 언어로 널리 확산하면서 효용성을 알리는 데 일조한 바 있습니다.  또한 테스트 코드의 필요성은 소프트웨어 개발을 함으로써 점차 증가하고 있습니다. 나날이 버전이 바뀌는 라이브러리가 한순간에 메서드 명을 변경한다는 이슈가 있거나 또한 없어지는 이슈가 있으면 개발 중 코드가 문제가 생길 수 있습니다. 


이때 단위 테스트 코드가 없다면 전부 다 확인해야 하는 번거로움이 있을 수 있습니다.  반대로 테스트 코드가 존재한다면 라이브러리 버전을 올리고 테스트 코드가 깨지는 부분만 코드를 수정하고 프로덕션에 배포할 수 있겠죠. 이처럼 단위 테스트의 장점은 있지만 실질적으로 구현하기에는 허들이 존재합니다. 이 허들을 낮춰주는 책이 나왔습니다. 바로 단위 테스트의 기술 책인데요. 자세히 알아보도록 하겠습니다. 


1. JS 기반 단위 테스트
단위 테스트의 기술 책은 2009년에 .NET 프레임워크를 기반으로 첫 출간이 됐습니다. 국내 번역서는 1년 뒤인 <.NET 예제로 배우는 단위 테스트> 제목으로 인사이트에서 나왔습니다. 책의 인기는 해외서 높아져 2013년  2nd 경우에는 C# 예제를 기반으로 이어 갔습니다. 하지만 국내 출판사에서는 번역을 하지는 않았습니다. 아마도 자바 공화국이기 때문이 아닐까요? 그러다 작년에 3nd가 나옵니다. 

큰 변화는 자바스크립트 도입과 <단위 테스트, 에이콘>의 저자인 블라디미르 코리코프가 공동저자로 함께 썼습니다. 이번 책을 읽는 점은 블라디미르 코리코프가 실무적인 방향성을 많이 알려줄꺼라 생각해 읽게 됐습니다. 또한 보통 번역서의 경우 1~2년은 걸리는데 상당히 빨리 국내에 찾아온 점도 컸습니다. 표지의 경우 국내에 출시된 부분이 깔끔하고 직관적이라고 느꼈습니다. 




2. 서로 영향 받지 않기
이 책의 저자가 실무에서 단위 테스트를 작성하고 실행하는데 이상한 점을 느낍니다. 어떤 테스트는 실패하다가도 며칠 동안 갑자기 통과합니다. 그러다가 다음 날 아무런 이유 없이 다시 실패되는 일이 발생합니다. 이러한 일을 겪으면서 저자는 생각합니다. "가끔이라도 통과하는 게 어디야. 통과한다는 게 중요한 거지" 하면서 어영부영 넘어가기 일쑤였죠. 

그러다가 각을 잡고 그는 조사합니다. 그 결과 해 당 테스트가 코드의 한 부분에서 불안정한 다른 테스트를 호출하고 있었습니다. 이때 다른 테스트 코드가 실패하면 작성한 코드도 실패했던 것입니다. 즉 테스트가 제대로 분리되지 않으면 각 테스트가 서로 간섭하게 된다는 점을 알게 됩니다. 저자는 순서를 정하는 테스트와 적절히 유지 보수성이 높도록 리팩토링 방법을 할 것을 추천합니다.


이 포스팅은 길벗 출판사에 책을 받아 읽고 주관적으로 작성했습니다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo