반응형
실용주의 프로그래머를 위한 단위테스트 with JUnit를 읽었습니다. 실용주의 서가에서 나온 책인데요, 데이비드 토머스와 앤드류 헌트가 실용주의 프로그래머의 실천편이라고 보시면 될 듯합니다. 테스트는 코드를 다 작성하고 나서 발견하지 못한 오류를 찾기 위해 나중에 작성하는 것이 아닌가라고 생각하시는 분이 꽤 되리라고 생각합니다. 시간과 공간 자원에 제약이 걸린 일반적인 프로젝트의 경우에는, 동작하는 코드를 만들기에 급급해서 테스트라는 부분을 소홀히 하는 경우도 드물지 않을 것입니다. 그리고 그때 테스트를 수행한다고 해도 그건 요구사항에 적합한지 확인하는 인수 테스트(acceptance test)이죠.

이 책은 단위테스트를 왜 도입해야 하는가에 대해 서론에서 매우 설득력 있게 설명하고 있습니다. 원천적으로 오류가 없는 소프트웨어란 매우 어렵습니다. 목적은 매 순간의 코드를 단위테스트를 통해 검증함으로써 나중에 일어날 수 있는, 즉 찾지 못한 오류가 누적됨으로써 발생하는 재앙을 막아보자는 데 있습니다. 이런 패턴적 문제 해결은 애자일 쪽과 통하는 면이 있습니다. 코드를 작성함으로써 부산물로 나오는 단위테스트 코드는, 그 코드를 후에 인수할 사람들에게는 좋은 문서이자, 참고자료, 나침반이 됩니다.

이 책에서는 JUnit으로 테스트를 작성하는 근본적인 부분부터, 테스트의 대상은 무엇인지, 모의 객체는 어떻게 사용하는지, 프로젝트에서는 테스트를 어떤 식으로 할 것인지 등에 대해 차근차근 다루고 있습니다. 재치있는 약자를 통해 쉽게 책의 내용을 숙지할 수 있도록 돕는 것도 책의 장점입니다. 이를 테면 Right-BICEPCORRECT가 있습니다.

사실 이 책을 고른 이유는, 책의 서문에서 비록 이 책이 예제는 Java를 사용하고 JUnit 프레임워크를 사용했지만 다른 60개가 넘는 언어에서 비슷한 테스트 프레임워크가 지원된다고 했기 때문입니다. c2.com에서 Testing Framework라는 문서를 통해 다양한 프레임워크가 있다는 것을 알 수 있습니다. 개인적으로 SmlUnit[각주:1]이라는 테스팅프레임워크를 다루어 보려고 하다가, 막막해서 JUnit에 대한 책이 나와 있으니 이 책을 우선 참고하는게 어떨까 하는 생각이었죠.

프로젝트에 단위테스트를 도입하여 꾸준한 피드백으로 잘 조직화된 코드를 작성한다면, 유지보수성이 높고 안정적인 결과물이 나오지 않을까 생각해 봅니다.
단위 테스트 (실용주의 프로그래머를 위한) 상세보기
데이비드 토머스 외 지음 | 인사이트 펴냄
소프트웨어 개발의 생산성을 증대하기 위한 기본 도구들을 다룬 '시작 도구 시리즈'의 두번째 책으로 JUnit를 이용한 단위테스트 방법을 소개한다. 이 책은 테스트를 통해 요구사항을 좀더 명확히 하고 질 높은 소프트 웨어를 개발하고자 하는 테스트 주도 개발에 중점을 두고, 자동화 테스트 기구인 JUnit을 이용하여 무엇을 어떻게 테스트할 것인지 구체적이고 실용적인 방법을 제안하고 있다.

  1. SML#, SML/NJ, MLton을 지원하는 Standard ML 버전 프레임워크. SML#-SMLUnit에서 JUnit의 이식된 버전임을 밝히고 있다. SML#의 도구로 포함되어 있다. SML#은 SML에서 C와의 한결같은 상호운용성, 레코드 다형성, 랭크1 다형성 등을 확장한 것이다. 도호쿠 대학 전기통신 연구소에서 일본 문부과학성 등의 후원을 받고 있다. [본문으로]
반응형
반응형
Ship it! 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드 책을 운좋게도 출판이벤트를 통해 받게 되었습니다. (이전에 Ship it! 번역서가 나온다고 합니다. 라는 포스팅으로 소개했던 적이 잇었죠.)저 같은 경우에는, 파주출판도시가 집과 비교적 가까운 편이라서 그런지 8월 10일에 책을 받아 보았죠.

책의 제목이 조금 길기는 하지만, 책장을 넘기면서 처음 주의를 끄는 것은, 2007년 우수학술도서[pdf]로 선정되기도 했던 실용주의 프로그래머의 저자 중 한 명인 앤디 헌트가 쓴 추천의 글이었습니다. 어떤 곳에서는 앤드류 어떤 곳에서는 앤디로 소개하고 있었는데, 이는 제가 Andy가 Andrew의 애칭임을 모르고 다른 이름으로 오해했습니다. 더 자세한 정보는 The Pragamtc Programmers를 참고하세요.

"실용주의 프로그래머"에서 제시되었던 여러 개념들, 특히 "예광탄" 등을 계승하여 발전된 형태로 기술하고 있습니다. 경험에서 묻어나는 유익한 조언들도 이 책의 특징입니다. "실용주의 프로그래머"가 "프로젝트"라는 배가 가야할 나침반을 잡아준다고 하면, 이 책은 키는 어떻게 움직이고 돛은 어떻게 펼치는 지와 같은 더 구체적인 사항을 지적합니다. 꼭 개발과 관련하지 않더라도, 의사 소통의 경로 구축과 목록 작성같이 여러 유용한 가치를 발견할 수 있는 책이라서 좋았습니다.

신선했던 부분은 "불한당 개발자"였습니다. 여기서 제시되는 "불한당"이라는 개념은 어쩌면 또라이 제로 조직에서 다루는 인물과 비슷한 성격으로 생각됩니다. 그렇지만 이 책에서는 또라이 제로 조직처럼, 극단적으로 몰아붙이지 않고 어떻게 프로젝트에 유익한 방향으로 그들이 힘을 쓸 수 있도록 할 것인가에 대한 고민이 담겨 있었습니다.

프로젝트를 효과적으로 완수하는 데 관심이 있다면, 관심을 갖고 보아야 할 책이라고 생각합니다.
SHIP IT 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드 상세보기
자레드 리차드슨 지음 | 위키북스 펴냄
소프트웨어 개발에 관한 내용을 담은 가이드북. 이 책은 소프트웨어 개발 프로젝트에서 생기는 문제와 그것을 해결해 나가는 방안, 프로젝트를 성공적으로 끝내는 방법을 담아 정리한 것으로 현명하게 프로젝트를 완성해가는 법을 소개한 실용서이다. 《SHIP IT 성공적인 소프트웨어 개발 프로젝트를 위한 실용 가이드》에서는 실용주의적 관점에서 본 소프트웨어 개발 프로젝트 방법과 기술, 프로세스상의 문제 해결법, 일반적인

TNC 2주년 기념 이벤트
반응형

+ Recent posts