급한 IBM의 협찬으로 볼펜과 샤방한 developerWorks 스티커를 가지고 갔습니다.
한 시간은 JUnit에 대한 이론, 다른 한 시간은 JUnit의 실제 사용, 그리고 세 번 째 시간은 TPTP의 프로파일링에 대한 가벼운 리뷰 정도가 되었습니다.

관련 자료는 http://okjsp.tistory.com/tag/test 에서 확인할 수 있습니다.

강의를 준비하면서 가장 인상 깊었던 것은 상용 JProfiler 못지 않게 좋아진 TPTP였습니다.

좀 더 많이 연구를 해서 공유를 해야할 것 같네요.

참가하신 분들 긴 시간 동안 잘 들어주셔서 고맙습니다.
그리고 IBM dW 고맙습니다. ^^

지난 글에서도 언급했지만 JUnit은 소프트웨어 업계의 잘 나가는 두 분이 만들었다고 했습니다. Kent Beck, 그리고 Erich Gamma 이 두 분이죠. 한 분은 TDD, Agile, XP로 다른 한 분은 디자인 패턴, 이클립스로 잘 살고 계시죠.

Registered : 2000-11-24 16:05 
뜬금 없는 이 날짜는 sourceforge.net에 JUnit프로젝트가 등록된 날입니다.
http://sourceforge.net/projects/junit/
링크된 페이지 우측 하단에서 확인할 수 있습니다.

8년 전 내가 만든 소프트웨어가 아직도 발전되고 쓰이고 있다면 기분이 어떨까요. 제 생각으로는 비슷한 것 중에 ANT가 있다고 생각됩니다.

JUnit 4.4가 현재 버전입니다. 3.8.x 까지의 컨벤션들이 Javadoc스타일의 Annotation 때문에 모두 바뀌었습니다.

  1. TestCase를 상속받지 않아도 되고요.
  2. 메소드명이 test로 시작하지 않아도 됩니다.

그 외에도 많은 특징들이 있지만 일단 샘플 하나를 소개하고 마칠까 합니다.

package test;

import org.junit.Test;

import junit.framework.Assert;

public class UnitTest {
 @Test
 public void 더하기() {
  Assert.assertEquals(2, add(1,1));
 }

 private Object add(int i, int j) {
  return i + j;
 }
}

테스트만큼 번잡스러운 것이 없습니다. 모두가 동의하는 것은 테스트를 많이 할 수록 버그는 많이 발견된다는 것인데, 문제는 테스트하기가 귀찮다는 것이죠.
6월 14일 발표하는 자료에서 이런 고민에 대한 저의 생각을 풀어볼 생각입니다.
사용자 삽입 이미지


첨부파일은 freemind(http://freemind.sourceforge.net) 마인드 맵 원본입니다.

6월 14일 발표할 내용의 일부입니다.
JUnit에 관한 책들은 많이 있습니다.

사용자 삽입 이미지


JUnit 테스팅과 프로파일링-2008/06/14
	gimp로 만든 이미지입니다. 폰트가 쩝니다. ^^; 
장소: 토즈 강남점 (http://www.toz.co.kr/v2/01about/pop_map_kang.gif)

일시: 2008/06/14 (토) 09:00~12:00 (3시간)

회비: 20,000원

선착: 30명

많은 분들이 기대하시는데, 제 경험을 토대로 진행하게 됩니다. 사내에 적용한 것도 있고, 현재 개발습관이 조금 바뀌었는데, 어떻게 기존 개발에 대비해 개선점을 가져왔는지 공유합니다.


교육내용:

1. 테스트 쉽게 할 수 없을까

2. JUnit 3.8.x

3. 테스트하기 어려운 경우 돌아가는 법

4. 프로파일링으로 알 수 있는 것.

5. JProfiler http://www.okjsp.pe.kr/seq/55492


시간이 가능하다면

optional topic (eclipse debugging, TPTP, JUnit4.x)


신청은 이메일을 보내 주세요.

세미나 비용은 당일 접수합니다.

선착순 30명입니다. 예비로 대기자도 받습니다.

kenu 골뱅 okjsp.pe.kr

이름:

닉네임:

이메일:

휴대폰:


본 강의는 실습강의가 아닙니다. 노트북은 가져오시면 딴 짓만 하실 겁니다. ^^

eclipse에서 JUnit이 기본 탑재되어 있다는 것은 대부분 다 압니다. 그러나 JUnit 쓰시는 분들 손!
^^; 잘 쓰고 싶다고요. 그럼 쓰세요.
요즘 회사 다니는 것이 재밌는 이유 중 하나는 테스트 케이스가 늘어나고 있다는 것입니다. 물론 3년전(?)에 김창준님께서 발표하셨던 2천개가 넘는 테스트에 비해서는 얼마 안되지만 날마다 증가하는 테스트케이스의 숫자에 굉장히 놀라고 있습니다. 우리 팀 짱입니다요.

자꾸 쓰다보니 여러가지 보이네요. 그 중에 하나가 테스트 기록입니다.
사용자 삽입 이미지

JUnit Test 기록


JUnit 뷰에서 툴바에 보여지는 것입니다. 예전 항목을 클릭하면 테스트 기록을 확인할 수 있습니다.
빵빵한 보험을 든 것 같이 개발이 즐겁습니다.
Regression Tests(회귀 테스트; 코드의 추가 변경에 따른 영향도 테스트)를 위한 자산이 있기 때문이죠. ㅎㅎ
  1. Unit tests
  2. Test coverage
  3. Black-box testing
  4. White-box testing
  5. Regression tests
  6. Boundary-value tests
  7. Acceptance tests
  8. Load tests
  9. Stress tests

from: J2EE Design and Development, Rod Johnson, 75p

1 유닛테스트가 모이면 5 Regression tests 는 자동적으로 풀리게 됩니다.
8 Load tests는 비즈니스 요구사항에 포함되어야할 것이구요. 9 Stress tests는 8 Load tests를 벗어난 수치에 동작하는 모습을 테스트하게 됩니다.

제 특성 중 하나가 이것 저것 알기는 들은 것은 있는데, 실제로 쓰는 것은 별로 없다는 것이죠. 심한 단점일 수도 있고, 제네럴리스트의 장점일 수도 있죠.
어제 오픈소스 프로젝트 세미나에서 김승권님의 테스트에 대한 내용을 들으면서 나온 테스트 커버리지에 관련된  얘기를 듣고 clover를 이제는 써야겠다 생각이 들었습니다.

해서 연구 시작했습니다.
clover 라는 툴이 있습니다.
http://www.cenqua.com/clover/ 에서 30일 평가판을 다운로드 받을 수 있습니다. 물론 이메일 요구합니다.
 

cenqua clover

clover

흔히 하던대로 zip파일 받아서 eclipse의 plugins 디렉토리 아래에 폴더를 놓아둡니다. 그리고 재시동.

다음과 같은 뷰를 볼 수 있습니다.
사용자 삽입 이미지

clover view


html, pdf, xml의 리포트도 뽑아줍니다.
JUnit 테스트에 날개를 달아준 것 같다는 생각이 듭니다.

+ Recent posts