2009-09-28 5 views
0

특정 응용 프로그램에 대한 테스트를 자동화하기 위해 C++로 테스트 프로그램을 빌드하려고합니다. 테스트는 필드 'CommandType을'및 서버에 다른 필드가 요청을 전송 포함 할 것이다아키텍처/디자인 테스트 프로그램에 대한 조언

테스트가 될 수있는 CommandType을은 'NEW', '변경'또는 을 '삭제'할 수있다

  1. 어떤 패턴으로 임의의 요청 무리 보내기
  2. 100 'NEW'요청 후 200 다음 '변경'요청의 엄청난 양의 '삭제'를
  3. 보내기 'CHANGE'다음에 요청 를 요청 '삭제'를 요청 보내기 ... 등등

새로운 유형의 테스트 케이스 추가가 쉽고 모듈화되도록 소프트웨어 (어떤 종류의 모듈 또는 레이어)를 디자인 할 수 있습니까?

EDIT :보다 구체적으로,이 테스트는 위에서 설명한 유형의 요청을 가져 와서 처리하는 특정 애플리케이션을 테스트하는 것입니다. 이것은 서버에 요청을 보낼 클라이언트 응용 프로그램입니다.

답변

1

나는 당신 자신의 프레임 워크를 만들지 않을 것이다. 공통 패턴을 따르고 고객의 요구를 우아하게 수용 할 수있는 많은 문서가 이미 작성되었습니다.

내가 본 모든 화신의 xUnit 프레임 워크를 사용하면 테스트를 실행하는 코드를 편집하지 않고도 새로운 테스트 케이스를 추가 할 수 있습니다. 예를 들어, CppUnit은 매크로를 제공하여 테스트 케이스에 추가하면 테스트 케이스를 전역 레지스트리로 자동 등록합니다 (정적 초기화를 통해 가정 함). 이를 통해 새 테스트 케이스를 열어 크랙하지 않고 테스트 케이스를 실행하고 편집 할 수 있습니다.

xUnitCppUnit의 "단위"가 부적절하다고 생각하게하지 마십시오. 모든 종류의 테스트에 xUnit 프레임 워크를 사용했습니다.

0

각 개별 테스트를 자체 프로 시저로 분리하거나 함수 또는 두 개 이상의 코드가 필요한 경우 자체 소스 파일입니다. 나는 Boost Test Library을 활용하고 자신의 규칙을 다음 권하고 싶습니다, 또는

void main() 
{ 
    run_test_1(); 
    run_test_2(); 
    //... 
    run_test_N(); 
} 

: 그런 다음 내 주요 루틴에서 내가 좋아하는 일을 할 것입니다.

0

나는 단위 테스트를 만드는 것에 대해 이야기하고 있지 않다고 가정합니다.

IMHO, 귀하의 질문은 너무 모호하여 유용한 답변을 제공하지 못합니다. 이것은 특정 응용 프로그램을 테스트하는 것이거나 가능한 한 많은 다른 응용 프로그램을 테스트하기에 충분히 일반적인 것을 만들려고합니까? 이 응용 프로그램은 어디에서 살고 있습니까? 클라이언트 서버 응용 프로그램, 웹 응용 프로그램 등입니까?

도구를 테스트 할 응용 프로그램이 여러 개있는 경우 테스트 도구와 응용 프로그램 사이에 프로토콜을 만드는 아키텍처가 필요하므로 도구 및 도구의 소비자 지침을 변환 할 수 있습니다 테스트중인 응용 프로그램이 이해할 수있는 지침을 이해할 수 있습니다. 나는 과거에 비슷한 일을 해왔지만 어쩌면 5 가지의 다른 "응용 프로그램"에 대해서만 걱정할 필요가있었습니다. 따라서 응용 프로그램의 모든 고유 한 기능을 요약 한 다음이를 지원하는 인 터 팩트를 만드는 것은 매우 간단한 문제였습니다 모든.

NEW, CHANGE 및 DELETE가 유일한 명령 유형이라고 가정하지 않습니다. 많은 테스트에는 데이터 정리, 테스트보고 등이 포함됩니다. 응용 프로그램은 모두이 고유 한 특수 방법을 처리합니다.

0

자세한 내용과 예제를 보려면 this을 읽으십시오.

관련 문제