본문 바로가기

Testing Tools/LDRA

LDRA TBrun :: C++ 인터페이스의 메쏘드 Stub 처리하기

Rhapsody 로 개발된 프로젝트를 TBrun으로 동적시험 할때 가장 난감할 때가 PORT에 연결된 인터페이스에 대한 처리일 것이다.


예를 들어 아래와 같이 Calculator 클래스의 포트에 IException이 Required Interface로 연결되어 있을 경우, 해당 포트에 적정한 객체를 연결시켜주지 않는다면, Null 참조 오류가 발생하게 될 것이다. 또한, IException 만으로는 객체를 만들수가 없다!!(모른다면... C++을 다시 공부하자.)



1. 아래와 같이 Post-Include기능을 활용하여 IException를 상속받는 TestClass를 만들어준다. 생성자 / 소멸자의 몸체는 빈 함수로 구성하고, 스텁처리할 calculationFailed는 선언만 한다.


2. 스텁 함수로 식별하기 위하여, 아래와 같이 Create New User Defined Call을 선택한다.


3. Post-Include에서 만든 클래스를 활용하여 User Defined Call Name을 채운다.


4. 이제는 아래와 같이 스텁을 처리할 수 있다.

5. Calulator의 객체를 만들기 위해 생성자에 대한 테스트 케이스를 만든다.


6. IException 인터페이스를 호출하는 함수인 Calulator::divide에 대한 테스트 케이스를 아래와 같이 구성한다. 이때 IException의 인터페이스에 대해서는 Post-Include에서 구성한 TestClass의 객체를 할당하여 준다.


7. calulationFailed()함수가 호출되었는지를 판단하기 위하여 Set Test Case Hit Count Properties를 설정해준다.


※ 입수한 자료에는 위와 같이 설명이 되었지만, 올바르게 동작시키려면 하나의 작업을 더 해주어야 한다.

4. 번 스텝을 완료한 이후에, 해당 스텁 함수를 선택한 이후 오른쪽 마우스 클릭을 하여 Edit User Defined Call을 선택한다. 여기서 보면, Callers List 항목이 있는데 이곳에 IException::calculationFailed 함수를 호출하는 모함수들을 넣어 주어야 한다. 그렇지 않으면, 기껏만든 TestClass::calulationFailed의 함수가 호출되지 않고, 기존의 IException::calculationFailed의 스텁함수가 호출되게 된다.