노무현 대통령 배너
테스트 코드를 만들때 가장 많은 비용이 드는 부분은 테스트 데이터를 만드는 부분입니다. 테스트 데이터 관련 작업을 정리해 보면 다음과 같습니다.
  • 테스트를 위한 데이터베이스 준비하기
  • 초기 데이터 입력하기
  • 테스트 코드를 실행하기 위한 입력 데이터 준비하기
  • 테스트가 실행된후 데이터 초기화 하기
이중 실행을 위한 입력 데이터를 효과적으로 만드는 방법을 소개합니다.
메소드 파라미터 타입에 맞는 정적 데이터를 미리 준비하고, 이를 랜덤하게 조합하여 사용하는 것 입니다.
단순히 String name = "abc" 정도의 데이터를 생성하는 것으로는 부족합니다. 가능하면 도메인에 맞는 데이터를 입력해 주어야 합니다. 미리 "Sangchel", "Scott", "Hillery" 등의 데이터를 준비해 놓고 매번 다른 데이터를 이용하도록 한다면 좀 더 현실적인 테스트 데이터를 만들어 줄 수 있다고 생각합니다.

관련 URL: Randomizing static test data in automated tests
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
TDD하면 어떤생각이 드시나요 ? XP 프랙티스중에 가장  성공한 프랙티스이지만 현실은 조금 다릅니다. 누구나 좋다고 생각하지만 적용하는것은 어려워 하죠.  사실 테스트 코드를 작성하는데 많은 시간과 노력이 필요한것은 사실입니다.
Agita Software의 AgitarOne은 그런 어려움을 해소하기 위해서 개발된 소프트웨어 입니다. 이와 유사한 도구로는 Parasoft의 JTest가 있습니다.
Agitar : http://www.agitar.com/
JTest : http://www.parasoft.com/jsp/home.jsp
AgitarOne의 크게 두부분으로 구성되어 있습니다.
  • JUnit Generator
  • Agitator
AgitarOne의 주요 특징을 요약해 보면 다음과 같습니다.
  • JUnit 코드 생성 기능 : 소스코드를 분석하여 JUnit Test Case 코드를 생성해 준다.
  • 탐색적 테스팅(Explorary Testing) 지원 : 소스코드에 대한 정적 분석을 기반으로 잠재적 버그를 체크할 수 있게 지원한다.
  • 정적 분석
  • 대쉬보드 : 테스트 커버리지와 같은 메트릭 정보를 보여준다. Cruise Control의 대쉬보드 내장
  • CI : Cruse Control 내장
사용자 삽입 이미지

현재 AgitarOne 5.0이 최신버전이며 구입하기전에 30일간 시험판을 사용해 볼 수 있게 해주고 있습니다. 시험판을 사용하는 방법은 두가지 인데
  • 로컬머신에 설치해서 사용하기 : 30일 제한, 사용가능한 클래스 수 500개로 제한
  • 서버에 호스팅으로 사용하기 : 30일 제한, 클래스 제한 없음
검토를 위해서는 오히려 호스팅이 편할수 도 있을거 같네요. 클래스 500개는 너무 작으니..

서버 호스팅 버전으로 사용하겠다고 신청을 하면 다음과 같은 메일이 날라옵니다.
사용자 삽입 이미지
중간에 30일간 쓸수 있는 날짜가 있고 하단에 설치 순서가 3단계로 나와 있습니다. 이클립스 업데이트 URL이 보이네요.

사용자 삽입 이미지

2번째 단계로 플러그인에 라이센스를 등록하는데 필요한 정보가 나와 있습니다.
사용자 삽입 이미지
마지막에는 사용자 가이드에 대한 링크가 나와 있네요.


크리에이티브 커먼즈 라이선스
Creative Commons License