이전

리뷰 (4)

한줄평
평점 분포
  • 리뷰 총점10 50%
  • 리뷰 총점8 50%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 0.0
  • 40대 9.0
  • 50대 0.0
리뷰 총점 종이책
JUnit을 이용한 다양한 테스트 비법을 알고 싶다면..
"JUnit을 이용한 다양한 테스트 비법을 알고 싶다면.." 내용보기
웹 프로그램 개발자로 여러 프로젝트에 JUnit을 이용해 단위 테스트를 한 사용한 경험이 있습니다. 주로 사용하는 프레임워크는 스프링으로 이클립스 IDE를 써서 개발하고 있습니다.  jUnit을 사용해 스프링에서 제공하는 MockHttpServletRequest 와 같은 Mock 데이터나 Mockito에서 제공하는 Mock 데이터를 이용해 테스트 케이스를 작성한 경험이 있습니다. jUnit을
"JUnit을 이용한 다양한 테스트 비법을 알고 싶다면.." 내용보기

웹 프로그램 개발자로 여러 프로젝트에 JUnit을 이용해 단위 테스트를 한 사용한 경험이 있습니다. 주로 사용하는 프레임워크는 스프링으로 이클립스 IDE를 써서 개발하고 있습니다. 

jUnit을 사용해 스프링에서 제공하는 MockHttpServletRequest 와 같은 Mock 데이터나 Mockito에서 제공하는 Mock 데이터를 이용해 테스트 케이스를 작성한 경험이 있습니다.


jUnit을 사용하면서 과연 내가 jUnit을 잘 알고 있나? 란 생각이 듭니다. 단순히 리턴 값이 Null 인지 아닌지, 예상한 값과 맞는지 틀린지만 체크하는 용도로 사용한것 같습니다. 테스트 케이스를 이렇게 만드는게 맞는 건가란 고민과 그동안 모르고 써왔던 jUnit에 숨겨진 기능을 찾기 위해 JUnit in Action을 선택하였습니다.


JUnit in Action에는 JUnit 뿐만 아니라 휠씬 더 많은 것들을 들려주고 있습니다. JUnit을 이용한 테스트 케이스 작성은 물론이고, 소프트웨어 테스트 원칙을 이야기 하며 왜 단위테스트가 필요한지 원론적인 이야기와 성공적인 프로젝트를 위해 단위테스트 뿐만 아니라 통합테스트, 기능테스트, 스트레스 테스트, 인수 테스트의 이야기도 빠지지 않고 이야기 합니다. 

단위 테스트시 다체로운 테스트 전략을 소개하며 스텁, 목, In-container 테스트에 대해 예를 들며 소개하고 있습니다. 스텁이나 목은 개발할때 사용하는 거라 익숙했지만 Cactus를 이용해 In-container 테스트 부분은 생소하였으나 익혀두면 테스트 커버리지를 높힐때 유용하다는 생각이 들었습니다. 

통합 테스트 구성을 위해 허드슨에 앤트 스크립트를 짜기 위해 구글링과 책을 뒤저가며 했던 작업을 JUnit in Action은 자세히 소개해 주고 있습니다. 더불어 maven을 사용하는 방법도 설명하고 있습니다. 

이뿐만 아니라 HtmlUnit, Selenium을 이용한 UI 테스트와 Ajax 테스트, DBUnit을 이용한 데이터베이스 액세스 테스트에 대한 이야기도 합니다.

마치 종합 선물세트와 같이 이 책 한권에 하나의 프로젝트의 코드 커버러지를 높히는 모든 기술이 쓰여 있습니다.


아쉽게도 책의 설명이 아주 쉽지 않은것 같습니다. 단순히 개념에 대한 설명과 함께 툴이나 라이브러리에 대한 설명을 늘여놓지 않고, 직접 그 역할을 하는 코드를 작성해 설명합니다. 이런 설명이 실제로 더 도움이 되는 설명이겠지만, 같은 주제를 다루는 다른 책에 비해 복잡하고, 어렵게 느껴졌습니다. 책이 2판임에도 약간 뒤처지는 내용이 있습니다. 스프링을 이용한 테스트 케이스 작성 내용이나 Mockito 에 대한 내용을 3판에서는 기대해 봅니다. 새로 버전업된 Selenium 도 포함됬으면 좋겠습니다.  테스트에 코드 자체에 대한 아주 자세한 설명은 다루지 않습니다. JUnit 모범사례를 통해 테스트 코드에 대한 팁 설명을 하지만 코드 자체에 대한 심도있는 주제를 다루지 않습니다. 툴보다 잘 짠 테스트 코드 자체에 대한 궁금증이 있었는데 아쉽게 기대한 만큼 얻지는 못한것 같습니다.


개인적으로 비슷한 주제를 다루고 있는 채수원님, 이상민님 책과 같이 보면 훨씬 도움이 될 것 같습니다. 서로 부족한 부분이 보완되는 것 같습니다. 

 

c*****c 2011.08.13. 신고 공감 3 댓글 0
리뷰 총점 종이책
이 책 한권이면 단위테스트의 기본을 꿰뚫을 수 있다.
"이 책 한권이면 단위테스트의 기본을 꿰뚫을 수 있다." 내용보기
새로 쓰기 귀찮아서... 제 블로그에 썼던 글(http://ihoney.pe.kr/950 )을 그대로 옮겨옵니다.JUNITINACTION:단위테스트의모든것카테고리컴퓨터/IT > 프로그래밍/언어 > 웹프로그래밍 > 웹프로그래밍일반지은이피터 타치브 (인사이트, 2011년)상세보기  회사에 읽을만한 책으로 굴러들어온(?) 녀석이 있어서, 낼름 집어들고 읽은지 2주가 되어간다. 출퇴근길에 쭈욱 훑어읽은지는 1주
"이 책 한권이면 단위테스트의 기본을 꿰뚫을 수 있다." 내용보기

 새로 쓰기 귀찮아서... 제 블로그에 썼던 글(http://ihoney.pe.kr/950 )을 그대로 옮겨옵니다.


JUNITINACTION:단위테스트의모든것
카테고리컴퓨터/IT > 프로그래밍/언어 > 웹프로그래밍 > 웹프로그래밍일반
지은이피터 타치브 (인사이트, 2011년)
상세보기

  회사에 읽을만한 책으로 굴러들어온(?) 녀석이 있어서, 낼름 집어들고 읽은지 2주가 되어간다. 출퇴근길에 쭈욱 훑어읽은지는 1주일(...)쯤 되어서 내용이 잘 기억나지 않을 즈음, 이렇게 반의무감을 부여하면서 독후감을 쓰기 시작한다. 이 책의 모든 내용을 제대로 이해하기에는 턱없이 부족한 내공의 소유자이다보니 글을 쓰는 부분에서 많은 부족함이 드러나겠지만, 시도하지 않는 것보다는 나으니까 이렇게 글을 써본다.

테스트를 해야하는 상황 속에서, 다양한 테스트 기법들 속에서 적절한 테스트를 선정하여 수행하는 것은 어렵다.
오늘 퇴근길에 전철에서, 울트라 슈퍼 개발자와 나란히 앉아 테스트에 대한 이야기를 하면서 가진 전제다. 
  많은 개발자와 아키텍트들이 TDD를 통해서 개발을 진행하는 것이 여러가지 이득이 있으니 그러해야한다고 이야기한다. 그러나 대다수의 개발자들은 이런 개발방법에 대해서 제대로 이해하거나 접하지 못한 경우가 굉장히 많다. 나의 경우에도 얼마 전까지만해도 TDD가 무엇인지, 어떤 상황 속에서 사용하는 것인지도 몰랐었다. 그러다가 우연히 TDD에 대한 베타리딩을 시도하면서 '미지의 세계와 조우'를 하게 되었다. 
  그 책은,
테스트주도개발TDD실천법과도구
카테고리컴퓨터/IT > 프로그래밍/언어 > JAVA > JAVA일반
지은이채수원 (한빛미디어, 2010년)
상세보기
요 녀석이다. 지금도 종종 꺼내어 펼쳐본다. 이 책은 TDD에 대한 촉(Skin ship)을 느껴보기에 참 좋은 책이다. 유머러스한 저자가 자신의 노하우를 잘 뽑아낸 작품이기도 하다. 정작 저자께서는 많이 아쉬움을 표하는 작품이기도 하니, 조만간 '조금 더 쌔끈해진 모습으로 나오지 않을까' 하는 기대를 하고 있기도 하다.

최근 강조되고 있는 개발기법 중 하나가 TDD(Test Driven Development)
TDD에 대한 글
  = TDD - Wikipedia : http://en.wikipedia.org/wiki/Test-driven_development
  = 알면서 왜 안할까 TDD - Toby's Epril : http://toby.epril.com/?p=500
  = 내가 생각하는 TDD - benelog : http://benelog.egloos.com/2766714


TDD란,

빨간 정지 신호등(실패)에서 녹색 통과 신호등(성공)으로 바꾸기
위한 노력(과정)이다. 

라고 할까나?
 
  TDD에 대한 공부를 하면서도 여전히 어려운 것이... Mock 과 DBUnit을 이용하는 부분인데, 이 책에서는 상세하게 잘 다뤄져있는 편이다. 요즘 Hibernate를 이용한 ORM(http://en.wikipedia.org/wiki/Object-relational_mapping)에 대해서 공부를 하고 싶은 욕심이 생기고 있는데, 쉬이 접근하지 못하고 있다가, 이 책에서 JPA를 사용하기 위해 테스트할 수 있는 방법에 대해서 설명한 부분들을 보고 학습코드(테스트 코드)를 작성해볼 경험을 가질 수 있었다. 이 책에서는 다양한 테스트 기법이 설명되어 있고, 테스트 전략을 가지고서 시도해볼 수 있도록 상세하게 설명해주고 있다. 
  개인적으로 구매해서 '찬찬히 예제를 따라하면서 익혀두면 언젠가는 써먹을 수 있지 않을까?'하는 생각을 품게 하는 책이다.

  요즘의 개발환경은 IDE 개발툴을 이용하기 때문에, 터미널 등에서 테스트를 진행할 경우는 흔하지 않다. 이 책 초반에 터미널에서 커맨드를 입력하여 단위테스트를 진행하는 부분이 나온다. 그렇게 커맨드창에서 명령어를 입력하여 테스트를 실행하는 장면에서는 '뭐 이런걸 다. 요즘 누가 이런걸 쓴다고.' 라면서 살짝 깔보듯 읽기를 시작했다. 하지만 이 책은 그렇게 단위테스트의 초창기 사용방법부터 시작해서 차근차근 사용법을 알려주기 시작한다. Ant와 Maven을 이용한 자동화 테스트, 테스트 케이스와 테스트 스위트(Test Suite)를 구성하고 실행하는 방법, 통합툴을 이용하여 지속적으로 테스트를 진행하는 방법에 이르기까지 시시콜콜하다고 할 수 있을만큼 다양한 테스트 기법과 그걸 사용할 수 있는 전략을 설명해준다.

  어떻게 보면... TDD의 가장 핵심줄기라고 할 수 있는 테스트 전략이 이 책에 소개되어 있다.

테스트 가능한 코드 작성하기
- 공개 API는 계약이다.
- 종속성을 줄여라.
- 생성자는 간단하게 만들어라.
- ...

등등의 주옥같은 개념들이 담겨있다. 좀 더 쓰고 싶지만~ 그 이상의 내용들은 직접 구매해서 보시면 좋겠습니다. 저도 한권 살겁니다~ ^^

TDD에 대해 전반적으로 훑으면서 읽어보려고 한다면

테스트주도개발TDD실천법과도구
카테고리컴퓨터/IT > 프로그래밍/언어 > JAVA > JAVA일반
지은이채수원 (한빛미디어, 2010년)
상세보기
에서 TDD의 개념과 재미를 접하고,
JUNITINACTION:단위테스트의모든것
카테고리컴퓨터/IT > 프로그래밍/언어 > 웹프로그래밍 > 웹프로그래밍일반
지은이피터 타치브 (인사이트, 2011년)
상세보기
에서 TDD의 전략과 적절한 적용범위 등에 대해 생각하고,
자바개발자도쉽고즐겁게배우는테스팅이야기
카테고리컴퓨터/IT > 프로그래밍/언어 > JAVA > JAVA
지은이이상민 (한빛미디어, 2009년)
상세보기
에서 TDD를 통해서 얻게되는 이점들에 대해서 알게될 것이다.

의 순으로 읽으면 괜찮겠다 싶다. 여기에다가
메이븐
카테고리미분류
지은이박재성 (한빛미디어, 2011년)
상세보기
에서 메이븐에 대해서 잘 배우고, Hudson을 활용하는 방법도 배우면 참 좋겠는데... ㅎㅎ 이렇게 나열하고 보니, 책장사같다. ㅡ_-);;
지금은!! 프로젝트에 투입되어 프로젝트에서 사용중인 아키텍쳐와 개발기술들을 익히는 것만으로도 참 버겁다.
이러면서 주말이면 자전거타고 어디갈까 고민하고 있...

사실 이 책은... 한번 쭈욱하고 훑어봤다. 그리고 마음에 드는 부분들을 몇개 찝어뒀다. 개인적으로는 책에 줄을 쭉쭉 긋고 낙서를 하면서 읽는 편인지라 회사책을 함부로 다루기가 뭐해서 쉽게 다룰 수가 없다. ^^; 빠른 시일내에 구매를 해서 찬찬히 내용을 훑어보고 또다른 블로그에 그 내용을 정리해보면서 내것으로 만들어가면 내 개발능력이 조금 더 향상되지 않을까? 
TDD는 자신의 개발기술을 향상시키기 위한 특별한 무기가 되어줄 것이다.
나는 그렇게 믿고 있다. 그리고 그 무기는 자신의 발등을 찍는 도끼가 되지 않을 것이라고 확신하고 있다.

실패는 성공의 어머니!!




P.S. 

기회가 닿으면 틈틈히 세미나나 컨퍼런스에 참여하고, 기술서적을 읽고, 개발자들을 만나면서 그들이 관심가지는 분야들에 대해서 귀기울이는 것에는 '조금 더 나은 개발자'가 되고 싶은 내 작은 소망이 표출되는 것이라 생각한다. 나는 여전히 배고프고 어리석다. 그래서 더 많은 것을 보고, 듣고, 느끼고, 생각하고, 행동하면서 배워야한다.
  주말에 그 모습을 드러내는 귀차니즘과 게으름을 적절하게 퇴치할 수 있다면 참 좋을텐데...


살짝 아쉬운 점.

  어느 번역서에서나, IT용어를 한글로 표현하는 부분은 고민이 많은 부분이다. 이런 고민은 베타리딩을 몇번 하면서 저자분들이 고민하는 경우를 목격하면서 공감하고 있다. 이 책에서도 조금 아쉬운 점이 있다면, IT용어와 한글의 표현이 뒤섞여있는 편(어떤 장에서는 한글단어로 적혀있고, 어떤 장에서는 그 장의 핵심 키워드들이 영단어로 표현되어 있음)이다. 초반에 스텁(Stub)이나 테스트 스위트(Suite)의 경우 어느 개발자들에게는 익숙한 단어기에 자연스레 그 단어를 떠올리는 이도 있겠지만, TDD를 처음 접하는 개발자들에게는 낯설면서 어리둥절한 느낌을 줄 수가 있다. 번역자분과 출판 관계자들께서 고민을 하셨을 부분이었을 것이다. 
  그 도서에서 단어가 처음 나타나는 곳에서는 단어 옆에 영단어를 표기하여 어떤 의미를 가지는지 분명하게 이해할 수 있도록 했으면 좋겠다.

YES마니아 : 골드 h******n 2011.08.04. 신고 공감 1 댓글 0
리뷰 총점 종이책
JUnit 종합 선물 셋트
"JUnit 종합 선물 셋트" 내용보기
테스트는 결함을 발견하기 위해 프로그램을 실행하는 과정이며 테스트 또한 개발과정의 일부이며, 개발자는 유닛 테스트를 통해 소프트웨어의 결함을 발견∙수정함으로써 품질을 높일 수 있습니다. 그러나 많은 개발자들이 유닛 테스트가 중요하다는 것은 알지만, 대부분(?)은 이를 수행하지 않고 있는 것이 현실이죠. 이 책은 개발자의 숙제라고 할 수 있는 “유닛 테스트란 무엇이고,
"JUnit 종합 선물 셋트" 내용보기


테스트는 결함을 발견하기 위해 프로그램을 실행하는 과정이며 테스트 또한 개발과정의 일부이며, 개발자는 유닛 테스트를 통해 소프트웨어의 결함을 발견∙수정함으로써 품질을 높일 수 있습니다. 그러나 많은 개발자들이 유닛 테스트가 중요하다는 것은 알지만, 대부분(?)은 이를 수행하지 않고 있는 것이 현실이죠.


이 책은 개발자의 숙제라고 할 수 있는 “유닛 테스트란 무엇이고, 왜 해야 하는가?”에서부터 이를 보다 스마트하게 해결할 수 있는 JUnit의 다양한 사용법과 기술을 소개하고 있습니다. 한 권에 JUnit의 모든 것을 담은 느낌이 듭니다.
효과적인 테스트 방법에 관심이 많고 JUnit을 처음 접하는 자바 개발자라면 이 책을 통해 많은 도움을 얻을 수 있을 것 같습니다. 단 Java EE 웹 어플리케이션을 예로 들어서 설명하고 있기 때문에 이에 대한 기본적인 이해가 필요할 것으로 보입니다.


책에서는 Java EE 어플리케이션을 JUnit 프레임워크로 테스트하는 방법으로 설명하고 있고, 테스트에 이용할 수 있는 여러 기술들을 알려주고 있습니다. 예로써 Ant, Maven과 Eclipse로 통합하는 방법, Mock객체를 이용한 테스트 격리 방법, Cactus를 이용해서 J2EE 컨테이너 안에서 코드 테스트를 하는 방법 등이 있으며, 이 외에도 많은 도구와 기술들을 소개하고 있습니다.


이 책의 장점이라면 새로 소개되는 기술이나 정의 들을 알아보기 쉽도록 따로 표시해두었다는 것과 이런 개념들을 알기 쉽게 설명하고 있어서 알아가는 즐거움이 있었습니다. 또한 책 전반에 걸쳐서 초반부에는 흥미를 유발하고 후반부에 가려움을 긁어주는 구조로 서술하고 있어서, JUnit을 처음 접하는데도 흥미를 잃지 않고 재미있게 읽을 수 있었습니다.


단지 개인적인 아쉬움이라면 안드로이드에 관심이 많은데, JUnit을 통한 안드로이드 어플리케이션에서의 활용법도 소개해 주었으면 더 좋았을 것 같습니다.

4***l 2011.08.14. 신고 공감 0 댓글 0
리뷰 총점 종이책
테스트의 모든것
"테스트의 모든것" 내용보기
테스트 주도개발, 단위테스트, 유닛테스트 등등.개발자게에 테스트란 필수 이지만 실천하기 어려운 항목중에 하나다. 시간이 없어서, 바뻐서, 나중에 하면 되지, 개발 완료가 우선, 이라는 생각으로 테스트를 망각하고 개발을 하는 경우가 정말 흔하다. 나또한 그렇게 하고 있다. 중요하다가 생각을 하면서도 가장 잘 망각 하고 있는것이 바로 이 테스트가 아닐까 싶다. 이 책에는 테스트
"테스트의 모든것" 내용보기

테스트 주도개발, 단위테스트, 유닛테스트 등등.

개발자게에 테스트란 필수 이지만 실천하기 어려운 항목중에 하나다. 

시간이 없어서, 바뻐서, 나중에 하면 되지, 개발 완료가 우선, 이라는 생각으로 테스트를 망각하고 개발을 하는 경우가 정말 흔하다. 나또한 그렇게 하고 있다. 중요하다가 생각을 하면서도 가장 잘 망각 하고 있는것이 바로 이 테스트가 아닐까 싶다. 


이 책에는 테스트에 대한 방법이 상세히 기술되어있다. 

예제 코드를 통해서 설명을 해주기도 하고 도표를 통해서 설명해주기도 한다. 

인상깊었던 것은 소스코드에 번호를 붙여서 해당 번호를 설명을 해주고 있다는 점이다. 

다른 프로그래밍 책을 보다보면 소스코드를 설명하는데 어디를 설명하는지 한참 헤매는 경우가 있다. 

그것을 사전에 방지하려는듯이 소스코드에 번호표를 붙여준 배려는 정말 큰 장점으로 꼽히는것 같다. 

그리고 중요한 요점 같은 경우는 박스로 설명을 강조해 줘서 쉽게 접근할수 있도록 해주었다. 


그렇다면 단점은?

읽다보면 설명이 상당히 길다는 느낌을 받을때가 있다. 너무 길어서 앞에 소스코들르 다시 들쳐보고 "뭐였지" 하는 생각을 하게 된다. 차라리 한가지 소스코드를 가지고 길게 설명하는것보다 여러개의 소스코드를 간단간단히 설명하는게 더 좋지 않을까 생각이 든다. 

 

어쨌든 이 책이 테스트 하는데에 큰 도움이 되는 책임에는 틀림 없다. 한장 한장 읽으면서 이해해 가는 즐거움도 느낄수 있는 책이다. 중요한것은 내 자신이 어떻게 실무에 적용시키느냐 인것 같다.

k***0 2011.09.01. 신고 공감 0 댓글 0