"SW 테스트 자동화"의 두 판 사이의 차이
52번째 줄: | 52번째 줄: | ||
<p style="padding-left: 60px;"><span style="font-size: medium;"><strong>③ </strong><strong>Simulator Debugging </strong>: 디버깅 환경을 시뮬레이터로 전환</span></p> | <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>③ </strong><strong>Simulator Debugging </strong>: 디버깅 환경을 시뮬레이터로 전환</span></p> | ||
<p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> | <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> | ||
− | <p style="padding-left: | + | <p style="padding-left: 270px;"><span style="font-size: medium;">시뮬레이터에서는 코드 커버리지나 백트레이스 등 고급 기능들을 사용 가능하다.</span></p> |
<p style="padding-left: 300px;"><span style="font-size: medium;"><br /></span></p> | <p style="padding-left: 300px;"><span style="font-size: medium;"><br /></span></p> | ||
− | <p style="padding-left: | + | <p style="padding-left: 270px;"><span style="font-size: medium;"> 전환할 경우 PowerView가 재시작 되니 주의하십시오.</span></p> |
<p style="padding-left: 300px;"> </p> | <p style="padding-left: 300px;"> </p> | ||
<p style="padding-left: 300px;"><span style="font-size: medium;"><br /></span></p> | <p style="padding-left: 300px;"><span style="font-size: medium;"><br /></span></p> | ||
<p style="padding-left: 60px;"><span style="font-size: medium;"><strong>④ </strong><strong>ETC :<span style="font-size: medium;"><strong><br /></strong></span></strong></span></p> | <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>④ </strong><strong>ETC :<span style="font-size: medium;"><strong><br /></strong></span></strong></span></p> | ||
− | <p style="padding-left: | + | <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- Coverage : 코드 커버리지를 보거나 리셋한다.</span></p> |
<p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> | <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> | ||
− | <p style="padding-left: | + | <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- Load Symbol : 심볼를 로딩한다.</span></p> |
<p style="padding-left: 150px;"> </p> | <p style="padding-left: 150px;"> </p> | ||
<p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> | <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> | ||
151번째 줄: | 151번째 줄: | ||
<p style="padding-left: 120px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><strong>1. </strong></span><strong style="font-size: medium;">심볼 :</strong><span style="font-size: medium;"> 심볼이 로딩되어 있는 경우 변수 이름 입력</span></p> | <p style="padding-left: 120px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><strong>1. </strong></span><strong style="font-size: medium;">심볼 :</strong><span style="font-size: medium;"> 심볼이 로딩되어 있는 경우 변수 이름 입력</span></p> | ||
<p style="padding-left: 120px;"><span style="font-size: medium;"><br /></span></p> | <p style="padding-left: 120px;"><span style="font-size: medium;"><br /></span></p> | ||
− | <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>ex) INP/tmp , OUT/result, PRE/^coeff<span style="white-space: pre;"> <span | + | <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>ex) INP/tmp , OUT/result, PRE/^coeff<span style="white-space: pre;"> <span style="line-height: 107%; font-family: "맑은 고딕"; font-size: 10pt; mso-bidi-font-size: 11.0pt; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA;" lang="EN-US">(※ float 소수점 자료형은</span><span style="line-height: 107%; font-family: "맑은 고딕"; font-size: 10pt; mso-bidi-font-size: 11.0pt; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA;"> 심볼앞에 <span lang="EN-US">“<strong style="mso-bidi-font-weight: normal;">^</strong>” </span>마킹<span lang="EN-US">)</span></span></span></span></p> |
<p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"><br /></span></span></p> | <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"><br /></span></span></p> | ||
<p style="padding-left: 120px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span></span><strong style="font-size: medium;"><span style="white-space: pre;"> </span>2. </strong><strong style="font-size: medium;">주소 : </strong><span style="font-size: medium;">직접 주소값과 포맷을 입력 (INP 타입은 사용 불가)</span></p> | <p style="padding-left: 120px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span></span><strong style="font-size: medium;"><span style="white-space: pre;"> </span>2. </strong><strong style="font-size: medium;">주소 : </strong><span style="font-size: medium;">직접 주소값과 포맷을 입력 (INP 타입은 사용 불가)</span></p> | ||
209번째 줄: | 209번째 줄: | ||
<p> </p> | <p> </p> | ||
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"> | <div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"> | ||
− | <p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 18.75pt; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0gd; text-indent: -18.75pt; line-height: normal; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; text-autospace: ideograph-numeric ideograph-other; word-break: keep-all;"><!--[if !supportLists]--><strong style="mso-bidi-font-weight: normal;"><span | + | <p class="MsoListParagraph" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 18.75pt; mso-para-margin-top: 0cm; mso-para-margin-right: 0cm; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 0gd; text-indent: -18.75pt; line-height: normal; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1; text-autospace: ideograph-numeric ideograph-other; word-break: keep-all;"><!--[if !supportLists]--><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 14.0pt; mso-bidi-font-size: 11.0pt; mso-fareast-font-family: "맑은 고딕"; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: "맑은 고딕"; mso-bidi-theme-font: minor-latin;" lang="EN-US"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";"> </span></span></span></strong><!--[endif]--><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 14.0pt; mso-bidi-font-size: 11.0pt; mso-fareast-font-family: "맑은 고딕"; mso-fareast-theme-font: minor-latin;">소개<span lang="EN-US"> </span></span></strong></p> |
− | <p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 20.0pt; line-height: normal; mso-pagination: widow-orphan; text-autospace: ideograph-numeric ideograph-other; word-break: keep-all;"><strong style="mso-bidi-font-weight: normal;"><span | + | <p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 20.0pt; line-height: normal; mso-pagination: widow-orphan; text-autospace: ideograph-numeric ideograph-other; word-break: keep-all;"><strong style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt; mso-bidi-font-size: 11.0pt; mso-fareast-font-family: "맑은 고딕"; mso-fareast-theme-font: minor-latin;" lang="EN-US"> </span></strong></p> |
<p class="MsoNormal" style="text-indent: 10.0pt; mso-char-indent-count: 1.0;">디버깅도 일종의 테스트라고 할 수 있습니다<span lang="EN-US">. </span>작성한 개발 코드가 의도대로 동작하는지 보기 위해서는 테스트하려는 코드를 <span lang="EN-US">Running </span>하기 전에 입력되는 변수들을 원하는 값으로 변경합니다<span lang="EN-US">. </span>그 후 테스트 대상 코드를 <span lang="EN-US">Running </span>시키고 종료 시점에서 의도대로 값들이 출력되었는지 결과를 확인합니다<span lang="EN-US">. </span></p> | <p class="MsoNormal" style="text-indent: 10.0pt; mso-char-indent-count: 1.0;">디버깅도 일종의 테스트라고 할 수 있습니다<span lang="EN-US">. </span>작성한 개발 코드가 의도대로 동작하는지 보기 위해서는 테스트하려는 코드를 <span lang="EN-US">Running </span>하기 전에 입력되는 변수들을 원하는 값으로 변경합니다<span lang="EN-US">. </span>그 후 테스트 대상 코드를 <span lang="EN-US">Running </span>시키고 종료 시점에서 의도대로 값들이 출력되었는지 결과를 확인합니다<span lang="EN-US">. </span></p> | ||
<p class="MsoNormal" style="text-indent: 10.0pt; mso-char-indent-count: 1.0;">하지만 테스트해야 할 코드가 수백개고 코드마다 테스트케이스가 수십개씩 이라면<span lang="EN-US">, </span>일일히 디버깅 하듯이 유저가 테스트 하는것은 많은 시간과 비용이 들게 됩니다<span lang="EN-US">. </span>또한 수정이 잦은 개발 단계의 코드는 반복 테스트가 많은 만큼 자동화 테스트는 꼭 필요합니다<span lang="EN-US">.<strong style="mso-bidi-font-weight: normal;"> </strong></span></p> | <p class="MsoNormal" style="text-indent: 10.0pt; mso-char-indent-count: 1.0;">하지만 테스트해야 할 코드가 수백개고 코드마다 테스트케이스가 수십개씩 이라면<span lang="EN-US">, </span>일일히 디버깅 하듯이 유저가 테스트 하는것은 많은 시간과 비용이 들게 됩니다<span lang="EN-US">. </span>또한 수정이 잦은 개발 단계의 코드는 반복 테스트가 많은 만큼 자동화 테스트는 꼭 필요합니다<span lang="EN-US">.<strong style="mso-bidi-font-weight: normal;"> </strong></span></p> |
2018년 3월 16일 (금) 11:11 판
목차
1. 기능 소개
본 페이지에서는 SW 프로그램을 테스트하는 여러 방법 중, 실제 타겟 프로세서에서 SW 테스트를 진행하는 방법에 대해 설명한다.
실제 타겟에서의 SW 테스트를 위해서는 "코드가 다운로드된 타겟" 과 "HW 디버깅 장비 TRACE32" 가 필요하다.
이 때, HW 디버깅 장비는 원하는 프로그램 위치에서 타겟 코어의 동작을 멈춘 후 입력 값을 변경하고, 연산이 완료된 출력 값을
가져오는 역할을 수행한다. 특히 TRACE32 는 수많은 테스트케이스를 수행하는데 있어서 개발자가 직접 수동/반복적으로 테스트
해야 했던 일을 자동화하여 많은 시간과 비용을 줄여줄 수 있다.
2. 실행 방법
- 다운로드 파일 : tools.zip
1. 받은 tools.zip 파일을 “T32설치폴더(C:\T32)” 안에 tools라는 이름으로 압축해제 한다.
2. tools 폴더안에 있는 t32.men 파일을 복사하여 “T3설치폴더(C:\T32)”에 덮어쓰기를 한다.
3. 이후 TRACE32프로그램을 실행하면 아래와 같이 [mds]버튼이 추가된다.
4. 생성된 [mds]버튼을 누르면 SW Testing Tool 이 실행된다.
3. 화면 구성 및 사용법
3-1. Main UI
① Add Test Case File : Test Case를 설정/정의한 CSV파일을 등록하거나 새로 생성
② Test Scenario: 테스트 시나리오 리스트 (T32_Test_List.txt 파일)
테스트케이스를 만들거나 추가 등록시키면 리스트가 업데이트 된다.
Start버튼을 누르면 테스트케이스 파일과 T32 커맨드를 정의한 순서대로 수행한다.
[Edit Test Scenario]버튼을 통해 시나리오를 직접 수정 가능
- TEST_FILE : [테스트케이스 파일의 경로]
- T32_CMD : [T32 명령어]
③ Simulator Debugging : 디버깅 환경을 시뮬레이터로 전환
시뮬레이터에서는 코드 커버리지나 백트레이스 등 고급 기능들을 사용 가능하다.
전환할 경우 PowerView가 재시작 되니 주의하십시오.
④ ETC :
- Coverage : 코드 커버리지를 보거나 리셋한다.
- Load Symbol : 심볼를 로딩한다.
⑤ Test Start : 정의한 시나리오대로 테스트를 시작한다.
3-2. Test Case 생성
- Main UI에 있는 [Create] 버튼을 누르면 아래와 같은 창이 나타난다.
① Test Unit : [Sel] 버튼을 눌러 테스트 함수를 검색하거나
주소나 심볼을 직접 입력한다.
- 테스트 시작 지점 (Input/ Pre-Condition 대입 시점)
- 테스트 끝 지점 (예상 Output 값과 실제 Output 값 비교 시점)
※ End Address를 입력하지 않을 경우 함수 종료 시점이 자동 입력된다.
② Test Setting : 테스트 방법이나 항목을 설정한다.
1. TEST MODE : 테스트 방식을 결정
- CALL 모드 : 함수 단위 테스트시 함수 호출을 TRACE32가 대신 실행
테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면 반복하여 빠르게 테스트가 가능함
- BREAK 모드 : 테스트 시작점에 Breakpoint를 잡고 테스트하는 방식
코드 흐름에 맞추어 테스트 진행됨
※ CMD : 각 테스트 케이스가 실행되기 전에 수행되는 명령어
2. FLASH Download : 타겟에 ELF 이미지파일의 다운로드와 관련된 설정 항목이다.
3. Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈추게하는 기능
타겟이 멈추면 그 시점을 디버깅하여 FAIL의 원인을 찾을수 있음
[Continue Test] 버튼을 누르면 이어서 테스트 시작
4. RUNTIME Test : 각 테스트케이스별 수행시간을 측정하는 기능이다.
- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소
- Timer 1 Tick Time : Timer 1 tick 당 시간 정보
- MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정
5. Step Num : 함수 진입시 매개변수나 지역변수가 할당 되지 않을 경우에 테스트 시작점에서 지정한 횟수만큼 Step을 하고 테스트를 진행한다.
③ DONE : Testcase를 작성하기 위한 csv파일 포맷이 자동 완성되어 열린다.
※ 엑셀과 연동하기 위해서는 config폴더의 excel_path.txt 안에 excel 실행파일 경로를 반드시 설정해주어야함
3-3. Test Case 입력 (CSV파일)
1. 기본 포맷 : TYPE/[심볼or주소]
2. TYPE 정보
1. INP : Parameter, 매개변수
2. PRE : Pre-Condition, 전역변수 입력
3. OUT : 함수 Return값, 전역변수 출력 확인
3. 심볼/ 주소/ 레지스터
1. 심볼 : 심볼이 로딩되어 있는 경우 변수 이름 입력
ex) INP/tmp , OUT/result, PRE/^coeff (※ float 소수점 자료형은 심볼앞에 “^” 마킹)
2. 주소 : 직접 주소값과 포맷을 입력 (INP 타입은 사용 불가)
ex) PRE/0x90000100(long) , OUT/0x1000(short)
3. 레지스터 : r( )함수를 이용하여 원하는 레지스터 이름 입력
ex) PRE/r(r2) , OUT/R(D15)
4. 테스트케이스 값 입력
아래와 같이 calculator 함수의 명세서가 있다고 가정해 보자.
이러한 함수 사양 명세서를 보고 아래와 같이 여러개의 테스트케이스를 만들 수 있다.
참고로 아래처럼 입력값을 넣지 않고 빈칸으로 놔두게 되면 이전 테스트케이스의 값을 유지한다.
5. 랜덤값 입력
만약 원하는 범위내의 임의의 값을 대입하고 싶다면 아래처럼 rand(min~max) 형태로 입력할 수 있다.
3-4. Test 시작
1. Main UI의 버튼을 누르면 테스트가 시작된다.
2. Main UI의 AREA창을 통해 테스트 진행상황을 모니터링할 수 있다.
3-5. Test Report 결과 확인
테스트케이스 대상 별로 폴더가 각각 생성되고 테스트 결과는 csv포맷으로 출력된다.
RES/ 로 출력되는 TYPE은 실제 타겟에서 출력된 결과를 의미한다.
아래와 같이 결과를 받아서 테스트케이스의 예상결과값과 다르게 나온 부분이 어디인지 한눈에 파악이 가능하다.
1. 소개
디버깅도 일종의 테스트라고 할 수 있습니다. 작성한 개발 코드가 의도대로 동작하는지 보기 위해서는 테스트하려는 코드를 Running 하기 전에 입력되는 변수들을 원하는 값으로 변경합니다. 그 후 테스트 대상 코드를 Running 시키고 종료 시점에서 의도대로 값들이 출력되었는지 결과를 확인합니다.
하지만 테스트해야 할 코드가 수백개고 코드마다 테스트케이스가 수십개씩 이라면, 일일히 디버깅 하듯이 유저가 테스트 하는것은 많은 시간과 비용이 들게 됩니다. 또한 수정이 잦은 개발 단계의 코드는 반복 테스트가 많은 만큼 자동화 테스트는 꼭 필요합니다.
한컴MDS 기술지원팀에서 제공하는 SW Testing Tool을 이용한다면, 이러한 반복된 작업을 파일로 정의하고 코드가 수정될때 마다 쉽게 테스트를 자동화하여 반복 수행할 수 있습니다. 또한 테스트 결과를 파일로 레포트 받아 오류가 발생한 테스트케이스 사항이 무엇인지 한눈에 파악하실 수 있습니다.
- 1. 소개
디버깅도 일종의 테스트라고 할 수 있습니다. 작성한 개발 코드가 의도대로 동작하는지 보기 위해서는 테스트하려는 코드를 Running 하기 전에 입력되는 변수들을 원하는 값으로 변경합니다. 그 후 테스트 대상 코드를 Running 시키고 종료 시점에서 의도대로 값들이 출력되었는지 결과를 확인합니다.
하지만 테스트해야 할 코드가 수백개고 코드마다 테스트케이스가 수십개씩 이라면, 일일히 디버깅 하듯이 유저가 테스트 하는것은 많은 시간과 비용이 들게 됩니다. 또한 수정이 잦은 개발 단계의 코드는 반복 테스트가 많은 만큼 자동화 테스트는 꼭 필요합니다.
한컴MDS 기술지원팀에서 제공하는 SW Testing Tool을 이용한다면, 이러한 반복된 작업을 파일로 정의하고 코드가 수정될때 마다 쉽게 테스트를 자동화하여 반복 수행할 수 있습니다. 또한 테스트 결과를 파일로 레포트 받아 오류가 발생한 테스트케이스 사항이 무엇인지 한눈에 파악하실 수 있습니다.
반복 작업을 자동화 할 수 있는 TRACE32 SW Testing Tool |
- 2. 실행 방법
- 받은 tools.zip 파일을 “T32설치폴더” 안에 tools라는 이름으로 압축해제 합니다.
- tools 폴더안에 있는 t32.men 파일을 복사하여 “T3설치폴더(C:\T32)”에 덮어쓰기를 합니다.
- 이후 TRACE32프로그램을 실행하면 아래와 같이 [mds]버튼이 추가됩니다.
- 생성된 [mds]버튼을 누르면 SW Testing Tool 이 실행됩니다.
3. 화면 구성 및 사용법
3-1. Main UI
① Add Test Case File : Test Case를 설정/정의한 CSV파일을 등록하거나 새로 생성합니다.
② Test Scenario : 테스트 시나리오 리스트를 보실 수 있습니다.
테스트케이스를 만들거나 추가 등록시키면 리스트가 업데이트 됩니다.
정의한 테스트케이스 파일과 T32 커맨드를 Start버튼을 누를 경우 순서대로 수행합니다.
[Edit Test Scenario]버튼을 통해 시나리오를 직접 수정하실 수 있습니다.
l TEST_FILE : [테스트케이스 파일의 경로]
l T32_CMD : [T32 명령어]
③ Simulator Debugging : 디버깅 환경을 시뮬레이터로 전환합니다.
시뮬레이터에서는 코드 커버리지나 백트레이스 등 고급 기능들을 사용하실 수 있습니다.
전환할 경우 PowerView가 재시작 되니 주의하세요.
④ ETC :
- Coverage : 코드 커버리지를 보거나 리셋합니다.
- Load Symbol : 심볼을 로딩합니다.
⑤ Test Start : 정의한 시나리오대로 테스트를 시작합니다.
3-2. Test Case 생성
① Test Unit : Sel 버튼을 눌러 테스트 함수를 검색하실 수 있습니다.
주소를 직접 입력하시거나 심볼을 입력합니다.
- 테스트 시작 지점 (Input/ Pre-Condition 대입 시점)
- 테스트 끝 지점 (예상 Output 값과 실제 Output 값 비교 시점)
※ End Address를 입력하지 않을 경우 함수 종료 시점이 자동 입력됩니다.
② Test Setting : 테스트 방법이나 항목을 설정합니다.
1. TEST MODE : 테스트 방식을 결정
- CALL 모드 : 함수 단위 테스트시 함수 호출을 TRACE32가 대신 실행합니다.
테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면
반복하여 빠르게 테스트하실 수 있습니다.
- BREAK 모드 : 테스트 시작점에 Breakpoint를 잡고 테스트하는 방식입니다.
코드 흐름에 맞추어 테스트 합니다.
※ CMD : 각 테스트 케이스가 실행되기 전에 수행되는 명령어
참고로 CALL 모드는 처음 한번만 수행됨
2. FLASH Download : 타겟에 ELF 이미지파일의 다운로드와 관련된 설정 항목입니다.
3. Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈추도록 만듭니다.
타겟이 멈추면 그 시점을 디버깅하여 FAIL의 원인을 찾을수 있습니다.
[Continue Test] 버튼을 누르면 이어서 테스트합니다.
4. RUNTIME Test : 각 테스트케이스별 실행시간을 측정하실 수 있습니다.
- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소
- Timer 1 Tick Time : Timer 1 tick 당 시간 정보
- MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정
5. Step Num : 함수 진입시 매개변수나 지역변수가 할당 되지 않을 경우에 사용합니다.
Start Address에서 지정한 횟수만큼 Step을 합니다.
③ DONE : Testcase를 작성하기 위한 csv파일이 포맷 완성되어 열립니다.
※ 엑셀과 연동하기 위해서는 config폴더의 excel_path.txt 안에
excel 실행파일 경로를 설정해 주셔야 합니다.
3-3. Test Case 입력 (CSV파일)
TEST_CASE를 CSV 포맷으로 작성해 주시면 됩니다.
l 기본 포맷 : TYPE/[심볼or주소]
l TYPE 정보
1. INP : Parameter, 매개변수
2. PRE : Pre-Condition, 전역변수 입력
3. OUT : 함수 Return값, 전역변수 출력 확인
- T32는 함수 종료시 return이라는 심볼을 생성후 리턴값을 대입합니다.
l 심볼/ 주소/ 레지스터
- 1. 심볼 : 심볼이 로딩되어 있는 경우 변수 이름 입력
ex) INP/tmp , OUT/result, PRE/^coeff
- 2. 주소 : 직접 주소값과 포맷을 입력 (INP 타입은 사용 불가)
ex) PRE/0x90000100(long) , OUT/0x1000(short)
- 3. 레지스터 : r( )함수를 이용하여 원하는 레지스터 이름 입력
ex) PRE/r(r2) , OUT/R(D15)
l 랜덤값 입력
rand(min~max) 으로 원하는 범위내의 임의의 값을 대입 가능
ex)
3-4. Test 시작
- Main UI의 버튼을 누르면 테스트가 시작됩니다.
- Main UI의 AREA창을 통해 테스트 진행상황을 모니터링할 수 있습니다.
3-5. Test 결과 확인
테스트케이스 대상 별로 폴더가 각각 생성되고 테스트 결과는 csv포맷으로 출력됩니다.
아래와 같이 결과를 받아서 테스트케이스의 예상결과값과 다르게 나온 부분이 어디인지 한눈에 파악하실 수 있습니다.