ALM/Test Automation 32

단위테스트 3회 - 커버러지 분석과 단위 성능 테스트

테스트 코드 커버러지와 단위 부하 테스트 (Test Code Coverage & Unit performance test) 자바스터디 조대협 (http://bcho.tistory.com) 현재 BEA Systems Korea에서 Senior 컨설턴트로 엔터프라이즈 애플리케이션 개발과 미들웨어 SOA에 대해 컨설팅을 진행하고 있다. 온라인 자바 사이트 http://www.javastudy.co.kr 의 초기 시샵이며, 한국 자바 개발자 협의회 JCO의 초대 부회장을 맏았다. 이번 글에서는 테스트가 애플리케이션을 어느정도 테스트했는지를 측정하는 코드 커버러지와, Japex 테스트 프레임웍을 이용한 부하 테스트 방법에 대해서 알아보도록 한다. 1.코드 커버러지 (Code Coverage) * 테스트 커버러지란?..

ALM/Test Automation 2008.03.12

단위 테스트 2회 - 확장된 단위 테스트 도구 (Cactus,JUnitEE)

확장된 단위 테스트 도구 (Cactus & JUnitEE) 자바스터디 조대협 (http://bcho.tistory.com) 지금까지 기본적인 단위 테스트 도구에 대해서 알아보았다. 좀더 상세화된 단위 테스트의 단계를 나눠 보면 다음과 같이 나눠볼 수 있다. l Type 1.코드 단위 테스트 코드상의 로직에 대해서만 테스트를 수행한다.앞 장에서 살펴본 테스트 방법이 일반적인 코드 단위 테스트 방법이다. 그러나 EJB,Servlet과 같은 J2EE 컴포넌트에 대해서 로직이 Dependency를 가지는 경우에는 EJB,Servlet 객체를 직접 연동하는 경우 container (WAS)에 배포하고, 기타 환경 설정이 필요하기 때문에, 로직 테스트를 위해서는 container 환경을 구성하기 전에 동일한 인터페..

ALM/Test Automation 2008.02.19

Test Coverage Rate

테스트 Coverage rate에 대해 고민하던중 재미있는 글 하나 발견 사실 Coverage rate를 올리는것도 중요하지만, Coverage rate는 value있는 test 로 cover가 되어야 한다. 코드 Coverage rate를 올리는것 자체는 중요하지 않다. 얼마만큼 꼼꼼한 테스트가 도느냐가 문제이지... 여러 문서들을 찾아보니까는 보통 80%의 Coverage를 이야기 하는데, 이정도의 Coverage라면, 적어도 개발 과정 전에 Test 에 대한 방법이 고려된 상태에서 개발을 해야지 않는다면 개발 중간에 일정에 미칠 IMPACT가 어마어마할것이다. 지금 프로젝트는 60~70% 정도를 고민중인데.. 어떻게 될려나? == http://www.artima.com/weblogs/viewpost..

ALM/Test Automation 2008.02.11

Cactus에서 JUnit 테스트 케이스 재활용 하기

Cactus에서 이미 만들어놓은 JUnit 케이스를 재활용할 수 있는데. 만들어놓은 JUnit을 서버로 올려서 TestRunner를 이용하여 브라우져에서 실행하면 그대로 실행된다. 만약 ANT TASK에서 호출하고자 할때는 기존 JUnit케이스를 다음과 같이 ServletTestCase로 묶어야지 호출이 가능하다. == Cactus is able to run pure JUnit TestCase on the server side. This is done by using the ServletTestSuite Test Suite that wraps your existing Test Cases. For example: public class TestJUnitTestCaseWrapper extends TestCa..

ALM/Test Automation 2008.01.17

Cobertura를 이용한 커버러지 테스트시 주의할 사항

서버쪽에서 Cobertura를 이용한 커버러지 분석을 할때 주의할점은 Cobertura는 기본적으로 ASM을 이용하여, 테스트를 진행할 코드에 커버러지 분석 코드를 삽입하는 방식이다. (AOP와는 다르게 STATIC한 방식을 사용) 그렇기 때문에, Instrumented 된 코드가 반드시 실행되도록 클래스패스에 삽입 하거나 또는 패키징 할때 Instrumented 되지 않은 코드를 WEB-APP에 먼저 복사한후 그 다음에 Instrumented된 코드를 복사하여 Overwrite가 되게 해야 한다. 그리고, Cobertura는 커버러지 분석한 정보를 메모리에 담아 놨다가 서버가 shutdown될 당시에 한꺼번에 파일에 쓰기 때문에 메모리 요구량이 높을 수 있다. 그래서 각 단위 테스트마다 리스타트를 해서..

ALM/Test Automation 2008.01.17