테스트
-
DBUnit 사용시 테스트 데이터 INSERT 문제Object & Test 2011. 10. 12. 19:20
데이터베이스와 관련된 기능의 검증을 위해 단위 테스트를 작성할 때 DbUnit을 사용하면 많은 도움을 얻을 수 있다. DbUnit을 통해 테스트 메소드 실행 전에 픽스처를 데이터베이스에 입력하고 테스트가 종료되면 삭제하는 일을 아주 편하게 할 수 있기 때문이다. 이를 통해, 테스트 메소드의 독립적인 수행을 보장하고, 테스트 데이터베이스를 항상 깨끗한 상태로 유지할 수 있다. 하지만 가끔 문제가 생기는 경우가 있는데 동일한 테이블에 넣어야 하는 테스트 데이터의 크기가 다른 경우이다. 보통 다음과 같은 경우가 되겠다. 이 경우 테스트케이스를 구동하면 column-3, column-4의 값이 누락되어 입력이 안된다. 상위에 있는 데이터셋(dataset)에 컬럼이 두 개만 설정되어 있기 때문이다. DBUnit은..
-
단위 테스트용 테스트 데이터베이스 싱크하기Object & Test 2011. 7. 7. 19:41
데이터베이스에 대한 단위 테스트를 작성하고 실행하기 위한 전략으로 우리는 보통 로컬 컴퓨터에 테스트용 데이터베이스를 구축하고 테스트를 수행합니다. 개인 PC에서 테스트가 성공적으로 수행되면 SVN, CVS같은 소스형상관리 서버에 커밋을 하게 되고, 이를 CI(Continuous Integration) 도구가 통합하게 됩니다. CI도 통합 테스트를 수행하기 위해 테스트 데이터베이스가 필요한데 이럴 때는 공용 테스트 데이터베이스를 따로 구축해서 사용하고 있습니다. 로컬 데이터베이스는 개발자가 마음대로 변경할 수 있기 때문에 구현하고 있는 기능에서 필요한 데이터베이스 변경 사항을 바로 반영해 테스트를 수행하며, 테스트가 온전히 수행되면 변경내역을 공용 데이터베이스에 반영합니다. (직접 하거나 혹은 DBA를 통..
-
조합테스트기법 - 모든 단일 값 찾기Object & Test 2010. 12. 7. 23:24
어떤 메소드나 프로시져를 테스트한다고 가정해 보겠습니다. 테스트 하려는 메소드는 여러 개의 파라미터를 갖고 각 파라미터는 또 여러 종류의 값을 취할 수 있습니다. 예를 들어 메소드가 3개의 파라미터를 갖고 각 파라미터는 10가지 경우를 갖는 다면, 파라미터가 조합될 수 있는 경우의 수는 10 X 10 X 10 이 되므로 총 1,000가지 경우가 됩니다. (이미지출처) 이제 테스트를 작성하려고 합니다. 1,000가지의 경우에 대한 테스트 코드를 모두 작성해야 할까요? 아마도 다들 고개를 저으실 겁니다. 모든 경우를 다 테스트하려 한다면 큰 비용이 들기 때문입니다. 또한, 비용 대비 효과도 그닥 장담할 수 없습니다. 이런 다양한 조합을 테스트할 수 있는 좋은 방법이 있을까요? 먼저 소개해 드릴 방법은 “모든..