2008-09-16 4 views
3

나는 우리가 만들고있는 장비 세트를 회귀 테스트하기위한 도구를 찾고 있습니다.블랙 박스 회귀 테스트를위한 테스트 프레임 워크

현재 개념은 테스트중인 시스템에 대한 입력을 지정하는 입력 파일 (text/csv)을 도구에 작성하는 것입니다. 그런 다음 도구는 시스템의 출력을 캡처하고 입력 및 출력을 출력 파일에 기록합니다.

출력은 원래 입력 파일과 동일한 형식이며 측정 된 출력이 이전 실행의 값과 일치하는 다음 실행에 대한 입력으로 사용될 수 있습니다.

두 번 실행 한 결과가 정확히 일치하지 않을 수 있으며 배터리 상태에 따라 또는 장비의 다른 내부 상태에 따라 타이밍 차이가있을 수 있습니다.

도구의 명령을 장비로 전달하고 장비의 출력을 캡처하려면 자체 인터페이스를 작성해야합니다.

이것은 비교적 간단한 작업이지만 바퀴/도둑 수업을 다시 발명하는 것을 피하기 위해 기존 도구/패키지/라이브러리를 찾고 있습니다.

답변

0

모든 테스트 프레임 워크를 사용할 수 있습니다. 어려운 부분은 실제 문자열 비교가 아닌 테스트 시스템에서 데이터를 보내거나 가져 오는 도구를 작성하는 것입니다.

당신의 검사 결과는 모두 같을 것이다 :

x = read_input_file(ifilename); 
y1 = read_expected_data(ofilename); 
send_input_file_to_server(); 
y2 = read_output_from_server(); 
checkequal(y1, y2) 
2

내가 최근에 자식 (http://git.or.cz/)의 상단에이 같은 시스템을 구축. 기본적으로 모든 입력 파일을 서버로 보내고 출력을 다시 읽고 출력 파일 집합에 쓰는 프로그램을 작성하십시오. 첫 번째 실행 후 출력 파일을 git에 커밋합니다. 미래의 실행을 위해

, 당신의 성공은 자식 저장소가 실행이 완료된 후 깨끗한 여부에 의해 결정됩니다 보너스로

test 0 == $(git diff data/output/ | wc -l) 

, 당신은 차이를 비교하기 위해 모든 자식 도구를 사용하면 커밋 수 있습니다 그 차이가 개선되었으므로 미래의 실행이 지나갈 것입니다. 또한 지점 간 병합시에도 효과적입니다.

+0

이것은 독창적 인 방법입니다. – kizzx2

1

귀하의 필요에 정확히 맞는 단일 패키지가 있는지 확실하지 않습니다. 다음과 같은 몇 가지 사항을 고려해야합니다.

  1. 장비로 데이터를 전달하고 다시 수집하는 방법. 이것은 매우 특정한 애플리케이션이지만, 보통 좋은 옵션은 모든 프로그래밍 언어에 대해 쉬운 인터셉트가 존재하는 오래된 시리얼 포트 (RS232)입니다.
  2. 테스트 실행 방법. 단위 테스트 프레임 워크가 여기 확실히 도움이 될 수 있습니다. 기존 프레임 워크에는 실행할 테스트 선택, 보고서의 세부 수준 선택 (처음에는 상세 디버깅, 나중에는 생산 단계의 PASS/FAIL 분석이 중요 함)과 같은 많은 기본 기능이 구현되었습니다. 필자는 Perl과 Python의 테스트 프레임 워크를 사용하여 임베디드 장치를 테스트 한 경험이 풍부합니다.
  3. 또한 비교 방법을 결정해야합니다. 정확하게 지적했듯이 결과는 동일하지 않습니다. 도메인 지식이있는 곳입니다. 일반적으로 도메인에 적용 할 수있는 오류 마진을 사용하여 구현됩니다. 물론 diff 기본 도구를 사용할 수 없으며 지능형 스크립트를 작성해야합니다.