MDSTECH
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객지원
뉴스레터
Q&A
FAQ
원격지원
검색창
검색버튼
회원가입
로그인
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객 지원
뉴스레터
Q&A
FAQ
원격지원
사이트맵 보기
SW 테스트 자동화 문서 원본 보기
←
SW 테스트 자동화
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게만 가능합니다:
사용자
문서의 원본을 보거나 복사할 수 있습니다:
<h2><span style="font-size: x-large;"><strong>1. 기능 소개</strong></span></h2> <p><span style="font-size: x-large;"><strong><br /></strong></span></p> <p><span style="font-size: medium;"> 본 페이지에서는 SW 프로그램을 테스트하는 여러 방법 중, 실제 타겟 프로세서에서 SW 테스트를 진행하는 방법에 대해 설명한다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;">실제 타겟에서의 SW 테스트를 위해서는 "<strong>코드가 다운로드된 타겟" 과 </strong><strong>"HW 디버깅 장비 TRACE32"</strong> 가 필요하다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"> 이 때, HW 디버깅 장비는 원하는 프로그램 위치에서 타겟 코어의 동작을 멈춘 후 입력 값을 변경하고, 연산이 완료된 출력 값을</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;">가져오는 역할을 수행한다. 특히 TRACE32 는 수많은 테스트케이스를 수행하는데 있어서 개발자가 직접 수동/반복적으로 테스트</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;">해야 했던 일을 자동화하여 많은 시간과 비용을 줄여줄 수 있다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p> <img src="/data/wiki/2018-03-13/1520940285.png" alt="" /></p> <h2><span style="font-size: x-large;"><strong>2. 실행 방법</strong></span></h2> <p><span style="font-size: x-large;"><strong><br /></strong></span></p> <p><span style="font-size: large;"><strong> - 다운로드 파일 : <a href="http://ftp.trace32.com/trace32/SW_TEST/tools.zip"><span style="color: #0000ff;">tools.zip</span></a></strong></span></p> <p><span style="font-size: large;"><strong><span style="color: #0000ff;"><br /></span></strong></span></p> <p><span style="font-size: large;"><strong><a href="http://ftp.trace32.com/home/trace32/SW_TEST/tools.zip"></a></strong></span><span style="font-size: medium;"> 1. 받은 tools.zip 파일을 “T32설치폴더(C:\T32)</span><span style="font-size: medium;">” 안에 tools라는 이름으로 압축해제 한다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"> </span><span style="font-size: medium;"> 2. tools 폴더안에 있는 t32.men 파일을 복사하여 “T3설치폴더(C:\T32)”에 덮어쓰기를 한다.</span></p> <p><span style="font-size: medium;"> <img src="/data/wiki/2018-03-13/1520940097.png" alt="" /></span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"> </span><span style="font-size: medium;"> 3. 이후 TRACE32프로그램을 실행하면 아래와 같이 [mds]버튼이 추가된다.</span></p> <p><span style="font-size: medium;"> <img src="/data/wiki/2018-03-13/1520940148.png" alt="" /></span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"> </span><span style="font-size: medium;"> 4. 생성된 [mds]버튼을 누르면 SW Testing Tool 이 실행된다.</span></p> <p> </p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="white-space: pre; font-size: large;"><span style="text-decoration: underline;"><span style="color: #ff0000;"><strong><br /></strong></span></span></span></p> <h2><span style="font-size: x-large;"><strong>3. </strong><strong>화면 구성 및 사용법</strong></span></h2> <p><span style="font-size: xx-large;"><strong><br /></strong></span></p> <h3><span style="font-size: x-large; text-decoration: underline;"><strong>3-1. Main UI</strong></span></h3> <p><span style="font-size: medium;"><strong> <img src="/data/wiki/2018-03-13/1520940366.png" alt="" /></strong></span></p> <p><span style="font-size: medium;"><strong> </strong></span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>① </strong><strong>Add Test Case File : </strong>Test Case를 설정/정의한 CSV파일을 등록하거나 새로 생성</span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>② </strong><strong>Test Scenario:</strong> 테스트 시나리오 리스트 (T32_Test_List.txt 파일)</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"><span style="white-space: pre;"> </span></span>테스트케이스를 만들거나 추가 등록시키면 리스트가 업데이트 된다.</span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"><span style="white-space: pre;"> </span></span>Start버튼을 누르면 테스트케이스 파일과 T32 커맨드를 정의한 순서대로 수행한다.</span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><strong><span style="white-space: pre;"> <span style="white-space: pre;"> </span></span>[Edit Test Scenario]버튼</strong>을 통해 시나리오를 직접 수정 가능</span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 240px;"><span style="font-size: medium;"><span style="white-space: pre;"> <span style="white-space: pre;"> </span></span>- TEST_FILE : [테스트케이스 파일의 경로]</span></p> <p style="padding-left: 240px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 240px;"><span style="font-size: medium;"><span style="white-space: pre;"> <span style="white-space: pre;"> </span></span>- T32_CMD : [T32 명령어]</span></p> <p style="padding-left: 240px;"> </p> <p style="padding-left: 240px;"><span style="font-size: medium;"><br /></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: 300px;"><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;"> 전환할 경우 PowerView가 재시작 되니 주의하십시오.</span></p> <p style="padding-left: 300px;"> </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: 150px;"><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;"><span style="white-space: pre;"> </span>- Load Symbol : 심볼을 로딩한다.</span></p> <p style="padding-left: 150px;"> </p> <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>⑤ </strong><strong>Test Start : </strong>정의한 시나리오대로 테스트를 시작한다.</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong> </strong></span></p> <p> </p> <p><span style="font-size: medium;"><strong><br /></strong></span></p> <h3><span style="font-size: x-large; text-decoration: underline;"><strong>3-2. Test Case </strong><strong>생성</strong></span></h3> <p> </p> <p><span style="font-size: medium;">- Main UI에 있는 [Create] 버튼을 누르면 아래와 같은 창이 나타난다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p> <img src="/data/wiki/2018-03-13/1520940846.png" alt="" /></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>① </strong><strong>Test Unit</strong> : [Sel] 버튼을 눌러 테스트 함수를 검색하거나</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><strong> <span style="white-space: pre;"> </span> </strong>주소나 심볼을 직접 입력한다.</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- 테스트 시작 지점 (Input/ Pre-Condition 대입 시점)</span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- 테스트 끝 지점 (예상 Output 값과 실제 Output 값 비교 시점)</span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 210px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>※ End Address를 입력하지 않을 경우 함수 종료 시점이 자동 입력된다.</span></p> <p style="padding-left: 210px;"> </p> <p style="padding-left: 210px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>② </strong><strong>Test Setting :</strong> 테스트 방법이나 항목을 설정한다.</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><strong><span style="white-space: pre;"> </span>1. </strong>TEST MODE : 테스트 방식을 결정</span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- CALL 모드 : 함수 단위 테스트시 함수 호출을 TRACE32가 대신 실행</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"> 테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면</span><span style="font-size: medium;"> 반복하여 빠르게 테스트가 가능함</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- BREAK 모드 : 테스트 시작점에 Breakpoint를 잡고 테스트하는 방식</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 240px;"><span style="font-size: medium;"> <span style="white-space: pre;"> </span> 코드 흐름에 맞추어 테스트 진행됨</span></p> <p style="padding-left: 240px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"> <span style="white-space: pre;"> </span> <span style="text-decoration: underline;">※ CMD</span> : 각 테스트 케이스가 실행되기 전에 수행되는 명령어</span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><strong><span style="white-space: pre;"> </span>2. </strong>FLASH Download : 타겟에 ELF 이미지파일의 다운로드와 관련된 설정 항목이다.</span></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;"><strong><span style="white-space: pre;"> </span>3. </strong>Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈추게하는 기능</span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 300px;"><span style="font-size: medium;"> 타겟이 멈추면 그 시점을 디버깅하여 FAIL의 원인을 찾을수 있음</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;"> [Continue Test] 버튼을 누르면 이어서 테스트 시작</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><strong><span style="white-space: pre;"> </span>4. </strong>RUNTIME Test : 각 테스트케이스별 수행시간을 측정하는 기능이다.</span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span><img src="/data/wiki/2018-03-13/1520940894.png" alt="" /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- Timer 1 Tick Time : Timer 1 tick 당 시간 정보</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>- MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><strong><span style="white-space: pre;"> </span>5. Step Num : </strong>함수 진입시 매개변수나 지역변수가 할당 되지 않을 경우에 테스트 시작점에서 지정한 횟수만큼 Step을 하고 테스트를 진행한다.</span></p> <p style="padding-left: 150px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"> </span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong>③ </strong><strong> DONE</strong> : Testcase를 작성하기 위한 csv파일 포맷이 자동 완성되어 열린다.</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>※ 엑셀과 연동하기 위해서는 config폴더의 excel_path.txt 안에</span><span style="font-size: medium;"> excel 실행파일 경로를 반드시 설정해주어야함</span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"> </p> <p><span style="font-size: x-large;"><br /></span></p> <h3><span style="font-size: x-large; text-decoration: underline;"><strong>3-3. Test Case </strong><strong>입력 (CSV파일)</strong></span></h3> <p><span style="text-decoration: underline;"><span style="font-size: medium;"><strong><br /></strong></span></span></p> <p><span style="font-size: medium;"><strong> <img src="/data/wiki/2018-03-13/1520940923.png" alt="" /></strong></span></p> <p> </p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><span style="font-size: large;"><span style="white-space: pre;"> </span><span style="text-decoration: underline;">1. 기본 포맷</span> : </span> <strong>TYPE/[</strong><strong>심볼or주소]</strong></span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong><br /></strong></span></p> <p style="padding-left: 60px;"><span style="text-decoration: underline; font-size: large;"><span style="white-space: pre;"> </span>2. TYPE 정보</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><span style="text-decoration: underline;"><br /></span></span></p> <p style="padding-left: 120px;"><span style="font-size: medium;"><strong><span style="white-space: pre;"> </span>1. INP : </strong>Parameter, 매개변수</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;"><strong><span style="white-space: pre;"> </span>2. PRE : </strong>Pre-Condition, 전역변수 입력</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;"><strong><span style="white-space: pre;"> </span>3. OUT : </strong>함수 Return값, 전역변수 출력 확인</span></p> <p style="padding-left: 120px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 120px;"> </p> <p style="padding-left: 60px;"><span style="font-size: large;"><span style="text-decoration: underline;"><span style="white-space: pre;"> </span>3. </span><span style="text-decoration: underline;">심볼/ 주소/ 레지스터</span></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><span style="text-decoration: underline;"><br /></span></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: 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 lang="EN-US" 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;">(※ 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: 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;"><br /></span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>ex) PRE/0x90000100(long) , OUT/0x1000(short)</span></p> <p style="padding-left: 180px;"><span style="font-size: medium;"><br /></span></p> <p style="padding-left: 120px;"><span style="font-size: medium;"> </span><strong style="font-size: medium;"><span style="white-space: pre;"> </span>3. </strong><strong style="font-size: medium;">레지스터</strong><span style="font-size: medium;"> : r( )함수를 이용하여 원하는 레지스터 이름 입력</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) PRE/r(r2) , OUT/R(D15)</span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="text-decoration: underline;"><span style="font-size: medium;">3. 테스트케이스 값 입력</span></span></p> <p style="padding-left: 60px;"><span style="text-decoration: underline;"><span style="font-size: medium;"><br /></span></span></p> <p style="padding-left: 60px;"><span style="font-size: x-small;"><span style="font-size: medium;"> 참고로 아래처럼 입력값을 넣지 않고 빈칸으로 놔두게 되면 이전 테스트케이스의 값을 유지한다.</span></span></p> <p style="padding-left: 60px;"><span style="font-size: x-small;"><span style="font-size: medium;"><br /></span></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><span style="font-size: x-large;"><strong><img src="/data/wiki/2018-03-13/1520945359.png" alt="" /></strong></span><br /></span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: large;">4. <span style="text-decoration: underline;">랜덤값 입력</span></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><span style="text-decoration: underline;"><br /></span></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><span style="white-space: pre;"> </span>rand(min~max) 으로 원하는 범위내의 임의의 값을 대입하도록 설정할 수 있다.</span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"> <img src="/data/wiki/2018-03-13/1520941063.png" alt="" /></span></p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong> </strong></span></p> <p style="padding-left: 60px;"> </p> <p style="padding-left: 60px;"><span style="font-size: medium;"><strong><br /></strong></span></p> <h3><span style="font-size: x-large; text-decoration: underline;"><strong>3-4. Test </strong><strong>시작</strong></span></h3> <p><span style="text-decoration: underline;"><span style="font-size: medium;"><strong><br /></strong></span></span></p> <p><span style="font-size: medium;"><strong> 1. </strong></span><span style="font-size: medium;">Main UI의 </span><img style="font-size: medium;" src="/data/wiki/2018-03-13/1520941139.png" alt="" /><span style="font-size: medium;"> 버튼을 누르면 테스트가 시작된다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"> </span><span style="font-size: medium;"> 2. Main UI의 AREA창을 통해 테스트 진행상황을 모니터링할 수 있다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p> <img src="/data/wiki/2018-03-13/1520941240.png" alt="" /></p> <p> </p> <p> </p> <p> </p> <p><strong> <span style="text-decoration: underline;"><span style="font-size: x-large;">3-5. Test Report 결과 확인</span></span></strong></p> <p><strong style="font-size: medium; text-decoration-line: underline;"><br /></strong></p> <p><span style="font-size: medium;"> 테스트케이스 대상 별로 폴더가 각각 생성되고 테스트 결과는 csv포맷으로 출력된다.</span></p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"> 아래와 같이 결과를 받아서 테스트케이스의 예상결과값과 다르게 나온 부분이 어디인지 한눈에 파악이 가능하다.</span></p> <p> </p> <p><span style="font-size: medium;"><br /></span></p> <p><span style="font-size: medium;"><span style="font-size: x-large;"><strong><img src="/data/wiki/2018-03-13/1520944933.png" alt="" /></strong></span><br /></span></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <div style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;" id="_mcePaste" class="mcePaste"> <p 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;" class="MsoListParagraph"><!--[if !supportLists]--><strong style="mso-bidi-font-weight: normal;"><span lang="EN-US" 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;"><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 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;" class="MsoNormal"><strong style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="font-size: 8.0pt; mso-bidi-font-size: 11.0pt; mso-fareast-font-family: "맑은 고딕"; mso-fareast-theme-font: minor-latin;"> </span></strong></p> <p style="text-indent: 10.0pt; mso-char-indent-count: 1.0;" class="MsoNormal">디버깅도 일종의 테스트라고 할 수 있습니다<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 style="text-indent: 10.0pt; mso-char-indent-count: 1.0;" class="MsoNormal">하지만 테스트해야 할 코드가 수백개고 코드마다 테스트케이스가 수십개씩 이라면<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 style="text-indent: 10.0pt; mso-char-indent-count: 1.0;" class="MsoNormal"><span style="color: black; mso-themecolor: text1;">한컴<span lang="EN-US">MDS </span>기술지원팀에서 제공하는 <span lang="EN-US">SW Testing Tool</span>을 이용한다면<span lang="EN-US">, </span></span>이러한 반복된 작업을 파일로 정의하고 코드가 수정될때 마다 쉽게 테스트를 자동화하여 반복 수행할 수 있습니다<span lang="EN-US">. </span>또한 테스트 결과를 파일로 레포트 받아 오류가 발생한 테스트케이스 사항이 무엇인지 한눈에 파악하실 수 있습니다<span lang="EN-US">.</span></p> <ol> <li><strong>1. </strong><strong>소개</strong></li> </ol> <p><strong> </strong></p> <p>디버깅도 일종의 테스트라고 할 수 있습니다. 작성한 개발 코드가 의도대로 동작하는지 보기 위해서는 테스트하려는 코드를 Running 하기 전에 입력되는 변수들을 원하는 값으로 변경합니다. 그 후 테스트 대상 코드를 Running 시키고 종료 시점에서 의도대로 값들이 출력되었는지 결과를 확인합니다.</p> <p>하지만 테스트해야 할 코드가 수백개고 코드마다 테스트케이스가 수십개씩 이라면, 일일히 디버깅 하듯이 유저가 테스트 하는것은 많은 시간과 비용이 들게 됩니다. 또한 수정이 잦은 개발 단계의 코드는 반복 테스트가 많은 만큼 자동화 테스트는 꼭 필요합니다.<strong> </strong></p> <p>한컴MDS 기술지원팀에서 제공하는 SW Testing Tool을 이용한다면, 이러한 반복된 작업을 파일로 정의하고 코드가 수정될때 마다 쉽게 테스트를 자동화하여 반복 수행할 수 있습니다. 또한 테스트 결과를 파일로 레포트 받아 오류가 발생한 테스트케이스 사항이 무엇인지 한눈에 파악하실 수 있습니다.</p> <p> </p> <p> </p> <table cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td> <div> <p>반복 작업을 자동화 할 수 있는</p> <p><strong>TRACE32 SW Testing Tool</strong></p> </div> </td> </tr> </tbody> </table> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <br /> <ol> <li><strong>2. </strong><strong>실행 방법</strong></li> </ol> <p><strong> </strong></p> <ol> <li>받은 tools.zip 파일을 “T32설치폴더” 안에 tools라는 이름으로 압축해제 합니다.</li> <li>tools 폴더안에 있는 t32.men 파일을 복사하여 “T3설치폴더(C:\T32)”에 덮어쓰기를 합니다.</li> </ol> <p> </p> <ol> <li>이후 TRACE32프로그램을 실행하면 아래와 같이 [mds]버튼이 추가됩니다.</li> </ol> <p> </p> <ol> <li>생성된 [mds]버튼을 누르면 SW Testing Tool 이 실행됩니다.</li> </ol> <p> </p> <p><strong>3. </strong><strong>화면 구성 및 사용법</strong></p> <p><strong>3-1. Main UI</strong></p> <p><strong> </strong></p> <p><strong> </strong></p> <p> </p> <p><strong>① </strong><strong> Add Test Case File : </strong>Test Case를 설정/정의한 CSV파일을 등록하거나 새로 생성합니다.</p> <p><strong>② </strong><strong>Test Scenario :</strong> 테스트 시나리오 리스트를 보실 수 있습니다.</p> <p>테스트케이스를 만들거나 추가 등록시키면 리스트가 업데이트 됩니다.</p> <p>정의한 테스트케이스 파일과 T32 커맨드를 Start버튼을 누를 경우 순서대로 수행합니다.</p> <p><strong>[Edit Test Scenario]버튼</strong>을 통해 시나리오를 직접 수정하실 수 있습니다.</p> <p>l TEST_FILE : [테스트케이스 파일의 경로]</p> <p>l T32_CMD : [T32 명령어]</p> <p><strong>③ </strong><strong> Simulator Debugging </strong>: 디버깅 환경을 시뮬레이터로 전환합니다.</p> <p>시뮬레이터에서는 코드 커버리지나 백트레이스 등 고급 기능들을 사용하실 수 있습니다.</p> <p>전환할 경우 PowerView가 재시작 되니 주의하세요.</p> <p><strong>④ </strong><strong>ETC : </strong></p> <p>- Coverage : 코드 커버리지를 보거나 리셋합니다.</p> <p>- Load Symbol : 심볼을 로딩합니다.</p> <p><strong>⑤ </strong><strong>Test Start : </strong>정의한 시나리오대로 테스트를 시작합니다.<strong> </strong></p> <p><strong> </strong></p> <p><strong>3-2. Test Case </strong><strong>생성</strong></p> <p><strong> </strong></p> <p> </p> <p><strong>① </strong><strong>Test Unit</strong> : Sel 버튼을 눌러 테스트 함수를 검색하실 수 있습니다.</p> <p><strong> </strong>주소를 직접 입력하시거나 심볼을 입력합니다.</p> <p>- 테스트 시작 지점 (Input/ Pre-Condition 대입 시점)</p> <p>- 테스트 끝 지점 (예상 Output 값과 실제 Output 값 비교 시점)</p> <p>※ End Address를 입력하지 않을 경우 함수 종료 시점이 자동 입력됩니다.</p> <p><strong>② </strong><strong>Test Setting :</strong> 테스트 방법이나 항목을 설정합니다.</p> <p><strong>1. </strong>TEST MODE : 테스트 방식을 결정</p> <p>- CALL 모드 : <span style="text-decoration: underline;">함수 단위 테스트시</span> 함수 호출을 TRACE32가 대신 실행합니다.</p> <p> 테스트 대상이 반복적으로 호출되지 않더라도 이 모드를 이용하면</p> <p>반복하여 빠르게 테스트하실 수 있습니다.</p> <p>- BREAK 모드 : 테스트 시작점에 Breakpoint를 잡고 테스트하는 방식입니다.</p> <p> 코드 흐름에 맞추어 테스트 합니다.</p> <p> <span style="text-decoration: underline;">※ CMD</span> : 각 테스트 케이스가 실행되기 전에 수행되는 명령어</p> <p>참고로 CALL 모드는 처음 한번만 수행됨</p> <p><strong>2. </strong>FLASH Download : 타겟에 ELF 이미지파일의 다운로드와 관련된 설정 항목입니다.</p> <p><strong>3. </strong>Debug Option : 테스트중 FAIL이 발생하면 그 시점에 타겟을 멈추도록 만듭니다.</p> <p> 타겟이 멈추면 그 시점을 디버깅하여 FAIL의 원인을 찾을수 있습니다.</p> <p> [Continue Test] 버튼을 누르면 이어서 테스트합니다.</p> <p><strong>4. </strong>RUNTIME Test : 각 테스트케이스별 실행시간을 측정하실 수 있습니다.</p> <p> </p> <p>- Timer Register Address : 타이밍 측정에 사용할 내부 타이머 레지스터 주소</p> <p>- Timer 1 Tick Time : Timer 1 tick 당 시간 정보</p> <p>- MAX Timer Value : 16bit or 32bit 선택, Max Timer 값 지정</p> <p><strong>5. Step Num : </strong>함수 진입시 매개변수나 지역변수가 할당 되지 않을 경우에 사용합니다.</p> <p> Start Address에서 지정한 횟수만큼 Step을 합니다. </p> <p><strong>③ </strong><strong> DONE</strong> : Testcase를 작성하기 위한 csv파일이 포맷 완성되어 열립니다.</p> <p>※ 엑셀과 연동하기 위해서는 config폴더의 excel_path.txt 안에</p> <p>excel 실행파일 경로를 설정해 주셔야 합니다.</p> <p><strong>3-3. Test Case </strong><strong>입력 (CSV파일)</strong></p> <p><strong> </strong></p> <p>TEST_CASE를 CSV 포맷으로 작성해 주시면 됩니다.</p> <p>l 기본 포맷 : <strong>TYPE/[</strong><strong>심볼or주소]</strong></p> <p>l <span style="text-decoration: underline;">TYPE </span><span style="text-decoration: underline;">정보</span></p> <p><strong>1. INP : </strong>Parameter, 매개변수<strong> </strong></p> <p><strong>2. PRE : </strong>Pre-Condition, 전역변수 입력<strong> </strong></p> <p><strong>3. OUT : </strong>함수 Return값, 전역변수 출력 확인</p> <p><strong> </strong>- T32는 함수 종료시 return이라는 심볼을 생성후 리턴값을 대입합니다.</p> <p>l <span style="text-decoration: underline;">심볼/ 주소/ 레지스터</span></p> <ol> <li><strong>1. </strong><strong>심볼 :</strong> 심볼이 로딩되어 있는 경우 변수 이름 입력</li> </ol> <p>ex) INP/tmp , OUT/result, PRE/^coeff</p> <ol> <li><strong>2. </strong><strong>주소 : </strong>직접 주소값과 포맷을 입력 (INP 타입은 사용 불가)</li> </ol> <p>ex) PRE/0x90000100(long) , OUT/0x1000(short)</p> <ol> <li><strong>3. </strong><strong>레지스터</strong> : r( )함수를 이용하여 원하는 레지스터 이름 입력</li> </ol> <p>ex) PRE/r(r2) , OUT/R(D15)</p> <p> </p> <p>l <span style="text-decoration: underline;">랜덤값 입력</span></p> <p>rand(min~max) 으로 원하는 범위내의 임의의 값을 대입 가능</p> <p>ex)</p> <p><strong> </strong></p> <p><strong>3-4. Test </strong><strong>시작 </strong></p> <p><strong> </strong></p> <ol> <li>Main UI의 버튼을 누르면 테스트가 시작됩니다.</li> <li>Main UI의 AREA창을 통해 테스트 진행상황을 모니터링할 수 있습니다.</li> </ol> <p> </p> <p><strong>3-5. Test </strong><strong>결과 확인 </strong></p> <p><strong> </strong></p> <p>테스트케이스 대상 별로 폴더가 각각 생성되고 테스트 결과는 csv포맷으로 출력됩니다.</p> <p><strong> </strong></p> <p>아래와 같이 결과를 받아서 테스트케이스의 예상결과값과 다르게 나온 부분이 어디인지 한눈에 파악하실 수 있습니다.</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> </div>
SW 테스트 자동화
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
행위
검색
TRACE32 Dummy
TRACE32
iTSP User's Guide
aTSP User's Guide
Linux Debugging
Debugging Tips
Trace Analysis
Virtual Target
TRACE32로 바라본 ARM
TRACE32 FAQ
TRACE32 Trouble Shooting
TRACE32 Software Update
Software Revision History
DT10 / DT-Win
다운로드
DT10 Evaluation
DT-Win Evaluation
TestPoint 삽입 Error
Build Error
DT10 FAQ
도구
여기를 가리키는 문서
가리키는 글의 바뀜
특수 문서 목록
문서 정보