"SW 테스트 자동화"의 두 판 사이의 차이
9번째 줄: | 9번째 줄: | ||
<p>TRACE32 를 사용하는 해당 기능은 별도의 추가 삽입되는 코드 없이 테스트가 가능하다.</p> | <p>TRACE32 를 사용하는 해당 기능은 별도의 추가 삽입되는 코드 없이 테스트가 가능하다.</p> | ||
<p>아래 기능의 사용 방법을 확인</p> | <p>아래 기능의 사용 방법을 확인</p> | ||
− | |||
<p> </p> | <p> </p> | ||
<p> </p> | <p> </p> | ||
<h2>기능 구성 및 사용법</h2> | <h2>기능 구성 및 사용법</h2> | ||
<p>해당 기능을 사용하기 위해서는 먼저 아래와 같은 파일들이 필요하다.</p> | <p>해당 기능을 사용하기 위해서는 먼저 아래와 같은 파일들이 필요하다.</p> | ||
− | <p><img src="/data/wiki/2018-01-17/1516169769.png" alt="" /></p> | + | <p><span style="white-space: pre;"> </span><img src="/data/wiki/2018-01-17/1516169769.png" alt="" /></p> |
− | <p>스크립트 요청은 [ trace32.com 홈페이지 메인 - 기술지원 요청] 에서 | + | <p>스크립트 요청은<strong> [ trace32.com 홈페이지 메인 - 기술지원 요청] </strong> 에서 가능하며, 신청 후 담당 기술지원을 통해 지원받을 수 있다.</p> |
<p> </p> | <p> </p> | ||
− | <h3>기능 실행방법 | + | <h3>기능 실행방법 </h3> |
− | <p> | + | <p><strong>DODECRYPT "hancommdsktj" TRACE32_SW_TEST</strong></p> |
− | <p> | + | <p>위의 명령어를 실행하면, 아래와 같은 TESTing Tool UI 창이 열린다. </p> |
− | <p><img style="width: 656px; height: 424px;" src="/data/wiki/2018-01-17/1516168971.png" alt="" width="872" height="557" /></p> | + | <p><span style="white-space: pre;"> </span><img style="width: 656px; height: 424px;" src="/data/wiki/2018-01-17/1516168971.png" alt="" width="872" height="557" /></p> |
− | < | + | <ul> |
− | < | + | <li><strong> Search 버튼 </strong> : 기존의 SW테스트 케이스를 불러오기</li> |
− | <p> 해당 버튼을 누르면 아래와 같이 테스트 대상 및 input 테스트 케이스를 만들 수 있는 기능이 실행된다.</p> | + | </ul> |
− | <p><img style="width: 724px; height: 522px;" src="/data/wiki/2018-01-17/1516169184.png" alt="" width="880" height="664" /></p> | + | <ul> |
+ | <li><strong style="font-size: 1.17em;">Create 버튼 : </strong><span style="font-size: 1.17em;">SW 테스트에 사용할 케이스를 <strong>새로 생성</strong></span></li> | ||
+ | </ul> | ||
+ | <p> <span style="white-space: pre;"> </span>해당 버튼을 누르면 아래와 같이 테스트 대상 및 input 테스트 케이스를 만들 수 있는 기능이 실행된다.</p> | ||
+ | <p> <span style="white-space: pre;"> </span><img style="width: 724px; height: 522px;" src="/data/wiki/2018-01-17/1516169184.png" alt="" width="880" height="664" /></p> | ||
<p> </p> | <p> </p> | ||
<p> 1) Start Address: 테스트유닛의 시작점으로 테스트케이스의 Input과 Pre-Condtion을 이 시점에서 대입</p> | <p> 1) Start Address: 테스트유닛의 시작점으로 테스트케이스의 Input과 Pre-Condtion을 이 시점에서 대입</p> | ||
− | <p> END Addresss: 테스트유닛을 실행시킨 뒤 그에 대한 결과값을 확인하는 주소</p> | + | <p> END Addresss: 테스트유닛을 실행시킨 뒤 그에 대한 결과값을 확인하는 주소</p> |
− | <p> 만약 끝주소를 입력하지 않은 경우에는 자동으로 Start Address심볼의 Exit 주소를 찾아 대체됨</p> | + | <p> 만약 끝주소를 입력하지 않은 경우에는 자동으로 Start Address심볼의 Exit 주소를 찾아 대체됨</p> |
+ | <p> </p> | ||
<p> 2) 테스트시 옵션 설정</p> | <p> 2) 테스트시 옵션 설정</p> | ||
<ul> | <ul> | ||
34번째 줄: | 38번째 줄: | ||
</ul> | </ul> | ||
<p> - CALL 모드 : 함수 단위 테스트시 <strong>함수 호출을 TRACE32가 대신 실행</strong></p> | <p> - CALL 모드 : 함수 단위 테스트시 <strong>함수 호출을 TRACE32가 대신 실행</strong></p> | ||
− | <p> 테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면 빠르게 자동화하여 테스트 가능</p> | + | <p> 테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면 빠르게 자동화하여 테스트 가능</p> |
<p> - BREAK 모드 : start Address/ End Address 시점에 Breakpoint를 잡고 타겟 수행을 멈추어 테스트하는 방식</p> | <p> - BREAK 모드 : start Address/ End Address 시점에 Breakpoint를 잡고 타겟 수행을 멈추어 테스트하는 방식</p> | ||
− | <p> 테스트유닛을 실행시키기 위해서는 타겟이 그 코드를 실제 수행해야함</p> | + | <p> 테스트유닛을 실행시키기 위해서는 타겟이 그 코드를 실제 수행해야함</p> |
<ul> | <ul> | ||
<li>FLASH Download : 테스트 시작시 지정한 ELF 이미지를 타겟 flash 에 write </li> | <li>FLASH Download : 테스트 시작시 지정한 ELF 이미지를 타겟 flash 에 write </li> | ||
43번째 줄: | 47번째 줄: | ||
<li>Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈춤</li> | <li>Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈춤</li> | ||
</ul> | </ul> | ||
− | <p><span style="white-space: pre;"> </span>문제가 발생한 테스트케이스를 디버깅하여 FAIL의 원인을 찾는데 활용</p> | + | <p><span style="white-space: pre;"><span style="white-space: pre;"> </span> </span>문제가 발생한 테스트케이스를 디버깅하여 FAIL의 원인을 찾는데 활용</p> |
<ul> | <ul> | ||
<li>RUNTIME Test : 각 테스트케이스별 실행시간을 측정</li> | <li>RUNTIME Test : 각 테스트케이스별 실행시간을 측정</li> | ||
</ul> | </ul> | ||
− | <p><span style="white-space: pre;"> </span>- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소</p> | + | <p><span style="white-space: pre;"> <span style="white-space: pre;"> </span></span>- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소</p> |
− | <p><span style="white-space: pre;"> </span>- Timer 1 Tick Time : Timer 1 tick 당 시간 정보</p> | + | <p><span style="white-space: pre;"><span style="white-space: pre;"> </span> </span>- Timer 1 Tick Time : Timer 1 tick 당 시간 정보</p> |
− | <p><span style="white-space: pre;"> </span>- MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정</p> | + | <p><span style="white-space: pre;"> </span> - MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정</p> |
<ul> | <ul> | ||
<li>Step Num : 매개변수 값을 입력 할 프로그램 시점을 맞추기 위해 진입점 도달 후 Step횟수를 설정</li> | <li>Step Num : 매개변수 값을 입력 할 프로그램 시점을 맞추기 위해 진입점 도달 후 Step횟수를 설정</li> | ||
</ul> | </ul> | ||
− | <p> 3) | + | <p> </p> |
+ | <ul> | ||
+ | </ul> | ||
+ | <p> 3) <strong>DONE 버튼 : </strong>아래와 같이 테스트 케이스를 작성할 수 있는 csv파일 포맷 파일이 생성되고 엑셀과 연동되어 파일이 오픈 </p> | ||
<p> <img style="width: 533px; height: 484px;" src="/data/wiki/2018-01-17/1516169316.png" alt="" width="772" height="684" /></p> | <p> <img style="width: 533px; height: 484px;" src="/data/wiki/2018-01-17/1516169316.png" alt="" width="772" height="684" /></p> | ||
<p> 위의 빨간 네모 안의 영역에 테스트 케이스를 작성한다.</p> | <p> 위의 빨간 네모 안의 영역에 테스트 케이스를 작성한다.</p> | ||
− | <p> <TYPE 정보></p> | + | <p> <strong><TYPE 정보></strong></p> |
<p> INP : Parameter, 매개변수</p> | <p> INP : Parameter, 매개변수</p> | ||
<p> PRE : Pre-Condition, 전역변수</p> | <p> PRE : Pre-Condition, 전역변수</p> | ||
62번째 줄: | 69번째 줄: | ||
<p> ^ : Floating Format (심볼 앞에 마킹)</p> | <p> ^ : Floating Format (심볼 앞에 마킹)</p> | ||
<p> </p> | <p> </p> | ||
− | <p> 4) 테스트 케이스 작성 후 저장하면 최초 메인창에서 Testcase File 경로에 대한 정보가 아래와 같이 자동으로 추가 된다.</p> | + | <p> 4) 테스트 케이스 작성 후 파일을 저장하면</p> |
− | <p> 사용자가 원하는 테스트케이스를 수동으로 만들어서 아래 리스트에 추가할 | + | <p> 최초 메인창에서 Testcase File 경로에 대한 정보가 아래와 같이 자동으로 추가 된다.</p> |
− | <p>< | + | <p> (사용자가 원하는 테스트케이스를 수동으로 만들어서 아래 리스트에 추가할 수도 있다.)</p> |
− | + | <p><span style="white-space: pre;"> </span><img style="width: 767px; height: 495px;" src="/data/wiki/2018-01-17/1516169246.png" alt="" width="871" height="558" /></p> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<p> </p> | <p> </p> | ||
+ | <p> 5) 위의 Start test 를 클릭하여 테스트를 자동으로 실행하고, 완료 후 저장된 Result 결과 파일이 자동으로 저장 된다.</p> | ||
+ | <p> 결과는 아래와 같이 입력한 테스트 케이스를 적용하여 실제로 타겟에서 수행된 변수 값을 파일로 저장하고,</p> | ||
+ | <p> 기대 값과 일치 여부를 Pass/Fail 로 나타내 준다.</p> | ||
+ | <p> 또한 각 테스트 케이스가 수행된 시간의 정보를 같이 생성하여 저장한다.</p> | ||
+ | <p><span style="white-space: pre;"> </span><img style="width: 989px; height: 437px;" src="/data/wiki/2018-01-17/1516169404.png" alt="" width="1579" height="718" /></p> |
2018년 1월 17일 (수) 15:25 판
기능 소개
본 페이지에서는 SW 프로그램을 테스트하는 여러 방법 중, 실제 타겟 프로세서에서 SW 테스트를 진행하는 방법에 대해 설명한다.
실제 타겟에서의 SW 테스트를 위해서는 "코드가 다운로드된 타겟" 과 "HW 디버깅 장비 TRACE32" 가 필요하다.
이 때, HW 디버깅 장비는 원하는 프로그램 위치에서 타겟 코어의 동작을 멈춘 후 입력 값을 변경하고, 연산이 완료된 출력 값을
가져오는 역할을 수행한다. 특히 TRACE32 는 수많은 테스트케이스를 수행하는데 있어서 개발자가 직접 수동/반복적으로 테스트
해야 했던 일을 자동화하여 많은 시간과 비용을 줄여 줄 수있다.
또한 기존의 많은 테스트에서는 별도의 테스트 Harness를 만들어 주는 등 추가적인 코드 삽입이 필요하지만
TRACE32 를 사용하는 해당 기능은 별도의 추가 삽입되는 코드 없이 테스트가 가능하다.
아래 기능의 사용 방법을 확인
기능 구성 및 사용법
해당 기능을 사용하기 위해서는 먼저 아래와 같은 파일들이 필요하다.
스크립트 요청은 [ trace32.com 홈페이지 메인 - 기술지원 요청] 에서 가능하며, 신청 후 담당 기술지원을 통해 지원받을 수 있다.
기능 실행방법
DODECRYPT "hancommdsktj" TRACE32_SW_TEST
위의 명령어를 실행하면, 아래와 같은 TESTing Tool UI 창이 열린다.
- Search 버튼 : 기존의 SW테스트 케이스를 불러오기
- Create 버튼 : SW 테스트에 사용할 케이스를 새로 생성
해당 버튼을 누르면 아래와 같이 테스트 대상 및 input 테스트 케이스를 만들 수 있는 기능이 실행된다.
1) Start Address: 테스트유닛의 시작점으로 테스트케이스의 Input과 Pre-Condtion을 이 시점에서 대입
END Addresss: 테스트유닛을 실행시킨 뒤 그에 대한 결과값을 확인하는 주소
만약 끝주소를 입력하지 않은 경우에는 자동으로 Start Address심볼의 Exit 주소를 찾아 대체됨
2) 테스트시 옵션 설정
- TEST MODE : 테스트방식을 결정합니다
- CALL 모드 : 함수 단위 테스트시 함수 호출을 TRACE32가 대신 실행
테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면 빠르게 자동화하여 테스트 가능
- BREAK 모드 : start Address/ End Address 시점에 Breakpoint를 잡고 타겟 수행을 멈추어 테스트하는 방식
테스트유닛을 실행시키기 위해서는 타겟이 그 코드를 실제 수행해야함
- FLASH Download : 테스트 시작시 지정한 ELF 이미지를 타겟 flash 에 write
- Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈춤
문제가 발생한 테스트케이스를 디버깅하여 FAIL의 원인을 찾는데 활용
- RUNTIME Test : 각 테스트케이스별 실행시간을 측정
- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소
- Timer 1 Tick Time : Timer 1 tick 당 시간 정보
- MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정
- Step Num : 매개변수 값을 입력 할 프로그램 시점을 맞추기 위해 진입점 도달 후 Step횟수를 설정
3) DONE 버튼 : 아래와 같이 테스트 케이스를 작성할 수 있는 csv파일 포맷 파일이 생성되고 엑셀과 연동되어 파일이 오픈
위의 빨간 네모 안의 영역에 테스트 케이스를 작성한다.
<TYPE 정보>
INP : Parameter, 매개변수
PRE : Pre-Condition, 전역변수
OUT : Return, Output-Value, 리턴값, 전역변수 결과값
^ : Floating Format (심볼 앞에 마킹)
4) 테스트 케이스 작성 후 파일을 저장하면
최초 메인창에서 Testcase File 경로에 대한 정보가 아래와 같이 자동으로 추가 된다.
(사용자가 원하는 테스트케이스를 수동으로 만들어서 아래 리스트에 추가할 수도 있다.)
5) 위의 Start test 를 클릭하여 테스트를 자동으로 실행하고, 완료 후 저장된 Result 결과 파일이 자동으로 저장 된다.
결과는 아래와 같이 입력한 테스트 케이스를 적용하여 실제로 타겟에서 수행된 변수 값을 파일로 저장하고,
기대 값과 일치 여부를 Pass/Fail 로 나타내 준다.
또한 각 테스트 케이스가 수행된 시간의 정보를 같이 생성하여 저장한다.