개요
Test RealTime은 세 가지의 테스트 도구를 통합합니다.
-
유닛 테스트는 C 및 Ada 소프트웨어 컴포넌트 테스트를 자동화합니다.
-
오브젝트 테스트는 C++ 코드의 동작 테스트에 대한 객체 지향 접근 방식입니다.
-
시스템 테스트는 메시지 기반 응용프로그램을 테스트하기 위한 강력한 환경입니다.
응용프로그램과 함께 사용해야 하는 테스트 도구의 선택은 개발 환경과 응용프로그램의 특성에 따라 다릅니다. 테스트 도구마다 전용 테스트 스크립트를 개발해야 합니다.
응용프로그램의 실제 테스트를 작성하기 전에, Test RealTime은 테스트 프로젝트를 작성하고 프로젝트를 테스트할 응용프로그램에 링크하도록 요구합니다.
도구 단계
Test RealTime에서 테스트 스크립트를 작성하려면 다음 조치를 수행하십시오.
-
컴포넌트 테스트 마법사 실행
-
테스트 데이터 및 예상 결과 입력
-
스텁 동작 수정
Test RealTime을 실행한 경우, Test RealTime은 특정 소스 코드를 분석하고 전체적으로 실행 가능한 테스트 하니스를 생성하는 컴포넌트 테스트 마법사를 제공합니다. 대상 코드가 의도한 대로
테스트되고 있는지 확인하기 위해 개발자가 수행해야 하는 것은 스텁 동작을 정의하고(두 번째 도구 단계 참조) 테스트 데이터 및 예상 결과를 입력하는 것(세 번째 테스트 단계)이 전부입니다.
참고: 반드시 컴포넌트 테스트 마법사를 사용해야 하는 것은 아닙니다. 테스트를 지원하는 데 필요한 모든 파일 및 코드는 직접 생성할 수 있습니다. 그러나 마법사를 사용하면 상당 양의 노력을 줄일 수 있습니다. 어느
방법이든지 테스트 실행 및 테스트 보고는 자동화됩니다.
컴포넌트 테스트 마법사는 두 가지 방법 중 하나로 액세스할 수 있습니다. 어느 방법이든지 Test RealTime 프로젝트가 이미 열려 있는 것으로 가정합니다.
-
Test RealTime 시작 페이지의 왼쪽에 있는 활동 링크를 선택하십시오. 이 링크를 선택하면 개발자가 선택할 수 있는 세 가지의 기본 활동 목록이 표시됩니다. 컴포넌트 테스트를 수행하려면 지금 개발자가
컴포넌트 테스트 링크를 선택해야 합니다.
-
Test RealTime의 오른쪽에 있는 프로젝트 창의 자산 브라우저에서 소스 파일/클래스/메소드/함수/프로시저를 마우스 오른쪽 단추로 클릭하십시오. 팝업 메뉴에서 테스트... 옵션을 선택하면 컴포넌트
테스트 마법사가 열립니다.
컴포넌트 테스트 마법사를 초기화하는 두 방법 사이의 기본적인 차이점은, 첫 번째 옵션에서는 사용자가 테스트할 함수/메소드/프로시저를 포함하는 소스 파일을 선택해야 하지만 두 번째 옵션에서는 이미 사용할 소스 파일을
알고 있으므로 컴포넌트 테스트 마법사의 초기 단계를 건너뛴다는 점입니다.
어느 경우든지 개발자는 테스트 모드(일반 또는 전문가)를 선택하라는 요청을 받습니다. 차이점은 원하는 스텁 동작에 관련됩니다. 스텁은 "테스트 목적의 기능을 포함하는 컴포넌트"(즉, 다른 시스템 컴포넌트의 테스트를
용이하게 하기 위한 사전 정의된 방식으로 작동하도록 디자인된 컴포넌트)입니다. 일반 모드에서, Test RealTime은 선택된 소스 파일에 명시적으로 참조되는 함수/메소드/프로시저의 스텁 템플리트를 자동으로
생성합니다. 전문가 모드에서는 선택된 소스 파일에 명시적으로 참조되지 않은 컴포넌트를 추가로 선택할 수 있습니다. 어느 방식이든지 스텁의 실제 기능은 나중에 정의됩니다(아래의 두 번째 도구 단계 참조).
마법사가 끝까지 실행되고 나면 Test RealTime이 활성 프로젝트에 노드를 작성합니다. 이 노드에는 선택된 소스 파일과 테스트 하니스 작성에 필요한 파일에 대한 참조가 포함됩니다. 이 추가 파일들은 다음을
위해 수정해야 합니다.
-
스텁 동작 정의
-
테스트할 함수/메소드/프로시저를 구동하는 데 사용되는 날짜 지정
-
각 입력 데이터 세트의 예상 결과 지정
C, C++ 및 Ada의 경우, 테스트 하니스, 테스트 스텁 및 테스트 스크립트 언어는 해당 언어에 특정한 복잡성을 수용하도록 Rational 소프트웨어에 의해 빌드되었습니다. Java의 경우, Test
RealTime은 테스트 스크립트 언어로 Java를 사용하고 해당되는 테스트 하니스 및 테스트 스텁 프레임워크의 기초로 JUnit 프레임워크(http://www.junit.org)를 사용합니다.
자세한 정보는 Rational Test RealTime
User Guide에서 Graphical User Interface->Activity Wizards->Component Testing Wizard 장을 참조하십시오.
컴포넌트 테스트 마법사에서 생성된 테스트 스크립트는 즉시 실행할 수 있습니다. 그러나 개발자가 테스트할 컴포넌트를 구동하기 위해 사용하는 실제 데이터와 예상 출력 값을 지정할 때까지 테스트가 아주 유용하거나
유익하지 않습니다.
Test RealTime에서 지원되는 각각의 언어는 다른 방식으로 테스트 작성을 용이하게 합니다. 각각의 접근 방식은 각 언어의 고유 특성에 맞게 최적화되었습니다. C++은 표준 테스트를 생성하여 실행할 수 있을
뿐만 아니라 선택적 계약 확인도 수행할 수 있으므로 한층 고유합니다. 계약 확인은 검증과 유사하게 작동합니다. 계약 확인은 사전/사후 조건과 불변사항과 같은 항목을 확인하는 데 사용됩니다.
C 및 Ada에 관련된 자세한 정보는 Rational
Test RealTime User Guide에서 다음 장을 참조하십시오.
C++에 관련된 자세한 정보는 Rational Test
RealTime User Guide에서 다음 장을 참조하십시오.
Java에 관련된 자세한 정보는 Rational
Test RealTime User Guide에서 다음 장을 참조하십시오.
컴포넌트는 특별한 방식으로 작동하도록 디자인됩니다. 세부 레벨에 관계없이 컴포넌트는 사전에 정의할 수 있는 특별한 출력 세트를 사용하여 지정된 입력 세트에 응답해야 합니다. "사전 정의 가능"은 테스트를 실행하기
전에 명시적으로나 알고리즘 방식으로 결과를 지정할 수 있음을 의미합니다.
아주 종종, 컴포넌트는 기능을 수행하기 위해 시스템 내에서 다른 컴포넌트의 지원을 요구합니다. 다른 컴포넌트는 추가 함수와 같이 단순하거나 시스템의 다른 곳에 있는 전체 서브시스템과 같이 웅대할 수 있습니다. 어느
경우든지, 개발자는 종종 코드와 관련된 컴포넌트가 아직 존재하지 않거나 적어도 아직 제대로 작동하지 않아서 컴포넌트 테스트에 기울이는 노력에 제한을 받는다는 사실을 알게 됩니다. 스텁 조치는 이와 같은 어려움을
보완합니다. (사실상, 스텁은 써드파티 코드에 대한 모든 의존을 제거하여 적절한 작동을 보장하기 위해 사용할 수 있습니다.)
테스트할 컴포넌트가 의존하는 컴포넌트를 적절하게 시뮬레이트하는 것은 개발자의 책임입니다. 적절한 시뮬레이션은 스텁에서 생성되는 올바르지 않은 정보보다는 오히려 컴포넌트 자체에 대해 테스트할 컴포넌트의 성공 또는
실패를 항상 추적할 수 있도록 스텁이 작성된 기능이 충분히 정확해야 함을 의미합니다.
Rational Test RealTime은 지원되는 테스트 스크립팅 언어를 통해 스텁 작성을 용이하게 합니다. 특히, 테스트 스텁 작성에 대한 정보에 대해서는 다음을 참조하십시오.
C 및 Ada에 관련된 자세한 정보는 Rational
Test RealTime User Guide에서 다음 장을 참조하십시오.
C++에 관련된 자세한 정보는 Rational Test
RealTime User Guide에서 다음 장을 참조하십시오.
Java에 관련된 자세한 정보는 Rational
Test RealTime User Guide에서 다음 장을 참조하십시오.
-
Automated Testing->Component Testing for Java->Java Testing Overview->Java Stub Harness
자세한 정보
테스트 캠페인의 실행 방법에 관한 자세한 정보는 도구 사용 도움말 Rational Test RealTime을 사용하여 테스트 실행을 참조하십시오.
|