본문 바로가기

Testing Tools/LDRA

LDRA TBrun :: VC2008에서 디버깅(debugging) 하기

LDRA TBrun을 사용하여 SW단위시험 수행 시, 설계한 Test Case가 예상한대로 수행되지 않는다면 원인을 파악하기 위해 보통 디버깅을 수행하게 된다. 즉, 테스트 케이스 설계가 잘못되었는지, 소스 코드에 문제가 있는지 판단할 필요가 있는 것이다. 가장 쉽게는 printf 문을 이용하여 구간구간 찍을 수 있어서 확인할 수도 있지만, 여간 귀찮은게 아니다. 그래서 만약 Visual Studio 환경에서 개발 및 시험을 수행한다면 보다 효율적으로 디버깅을 수행할 수 있을 것이다. 이 글을 쓰는 현재 LDRA 9.1.0을 사용하고 있으며, Visual Studio 2008 프로젝트를 SW단위시험을 수행하였다.

(참고로 LDRA 9.1.0에서 제공하는 메뉴얼에서도 디버깅 방법이 나와있긴 하지만, 그다지 도움이 되지 않았다.)


1. 테스트 케이스를 수행하다가 FAIL 을 확인한다.

<그림1>


2. 메뉴 > View > Explorer Sequence Workfile Directory 를 눌러 테스트 드라이버가 생성되는 곳으로 장소를 이동한다. 생성된 테스트 드라이버 코드는 이상한 이름으로 변형이 되어 있기 때문에 하나를 복사하여 원래의 이름으로 변경해둔다. 만약 테스트 드라이버 코드가 없다면, TBrun에서 Ctrl + F2를 눌러 드라이버 코드를 재생성한다.

Ex) h_1_LoginInfo_LoginInfo.cpp를 복사하여 LoginInfo.cpp 의 이름으로 복원한다.

    1) LDRA TBrun은 수시로 테스트 드라이버 코드를 생성하여 원래의 소스코드를 대체하여 빌드를 수행하며, 빌드가 완료되면 다시 원래의 코드로 재빨리 바꿔치기(?!)를 수행한다. 좀 복잡하다.

<그림2>


3. 이제 디버깅을 위해 Visual Studio를 연다. 본문에서는 Visual Studio 2008을 사용하였다. 메뉴 > 파일 > 열시 > 프로젝트/솔루션 을 선택한다. 그리고는 테스트 하니스(즉, 테스트 케이스를 수행하는 .exe 파일) 폴더로 옮겨 해당 .exe 파일을 선택한다. 만약 .exe 파일이 없다면, TBrun에서 Ctrl + F3을 눌러 테스트 하니스를 빌드하면 된다.

<그림3>


4. 그러면, 임시로 새로운 솔루션 파일이 준비됨을 확인할 수 있게된다. 해당 .exe를 선택하여 마우스 오른쪽 버튼을 누르고 "새 인스턴스 한 단계씩 코드 실행" 을 선택한다.

<그림4>


5. 그러면 다음의 화면과 같이 통상적인 디버깅 화면을 확인할 수 있다. 하지만, ldra_driver_main 함수로 진입하게 되면, 원본소스 코드가 변경되었음을 알리는 알림이 뜨게되는 것을 확인할 수 있다. 이것은 Step 2에서 언급한대로 LDRA TBrun이 테스트 하니스 빌드에 쓰이는 드라이버 코드와 원본 코드를 교묘하게 교체하는데서 오는 상황이므로, 당황하지 말고, Step 2에서 새로 복사해 놓은 드라이버 코드의 폴더를 지정하면 원하는 코드를 지정할 수 있게된다.

<그림5>


6. 디버깅에 필요한 테스트 드라이버 코드까지 지정을 성공적으로 지정하였다면, 인제 마음 편하게 Visual Studio 2008에서 제공하는 디버깅을 즐기면 된다.

<그림6>


이상! 캡처한 그림은 나중에 퇴근하고 올린다.