유닛 테스트 뷰는 기본으로 화면 오른쪽에 위치합니다. 유닛 테스트 뷰는 테스트와 커버리지 정보를 통합하여 하나의 뷰로 제공합니다.
유닛 테스트 뷰의 툴바 메뉴
유닛 테스트 뷰의 풀다운 메뉴(▽)
메뉴 이름 | 설명 |
---|---|
모든 항목에 커버리지 표시 | 모든 항목(함수, 테스트, 테스트 케이스)에 커버리지 표시 |
유닛 테스트 대시보드
메뉴 | 설명 |
---|---|
|
유닛 테스트 실행 버튼 |
|
테스트 케이스의의 성공, 실패, 오류, 총합 표현 |
|
유닛 테스트 뷰에 표시할 커버리지 종류(구문, 분기, MC/DC, 함수 호출, 함수) 선택 |
|
선택한 종류의 전체 커버리지 표현 |
검색
유닛 테스트 뷰에서는 파일, 함수, 테스트, 상태(성공, 실패, 오류), 이슈의 이름을 통해 함수, 테스트, 테스트 케이스를 검색할 수 있습니다.
상태 검색 키워드
키워드 | 설명 |
---|---|
%TEST_SUCCESS% |
테스트 성공 |
%TEST_FAILURE% %TEST_ERROR% |
테스트 실패/오류 |
%TEST_FAILURE% |
테스트 실패 |
%TEST_ERROR% |
테스트 오류 |
%TEST_HAS_NOT_FUNCTION% |
함수 변경 |
%TEST_NOT_GUARANTEE% |
실행 보장 안됨 |
%TEST_RESULT_DIFFERENT% |
호스트/타깃 결과 다름 |
유닛 테스트 뷰의 구조
유닛 테스트 뷰는 [함수]-[테스트]-[테스트 케이스]의 계층 구조로 표현합니다. 하나의 테스트에 100개 이상의 테스트 케이스가 존재할 경우, 100개씩 묶어서 그룹으로 표현합니다.
유닛 테스트 뷰의 항목 아이콘
항목 아아이콘 | 설명 |
---|---|
아이콘 없음 | 함수 |
테스트 | |
테스트 케이스, 테스트 케이스 그룹 |
유닛 테스트 뷰의 항목 상태 표현
유닛 테스트 뷰의 함수, 테스트, 테스트 케이스는 테스트 실행 여부 및 실행 결과를 색상으로 표현합니다.
색상 | 설명 |
---|---|
녹색 | 함수/테스트: 하위에 모든 테스트 케이스의 실행 결과가 성공인 경우 테스트 케이스: 실행 결과가 성공인 경우 |
파란색 | 함수/테스트: 하위에 실행 결과가 실패인 테스트 케이스가 존재하고 오류인 테스트 케이스는 존재하지 않음 테스트 케이스: 실행 결과가 실패인 경우 |
붉은색 | 함수/테스트: 하위에 실행 결과가 오류인 테스트 케이스가 존재함 테스트 케이스: 실행 결과가 오류인 경우 |
주황색 | 함수/테스트: 하위에 모든 테스트 케이스를 실행하지 않았고 실행 보장 안 됨 테스트 케이스가 존재함 테스트 케이스: 실행 보장 안 됨 |
검정색 | 함수/테스트: 하위에 모든 테스트 케이스를 실행하지 않음 테스트 케이스: 실행하지 않음 |
함수 노드
함수 노드는 함수의 이름, 커버리지, 테스트 케이스 수행 결과(성공, 실패,오류, 합계)를 제공합니다.
함수 노드를 더블 클릭하여 해당 함수의 위치를 소스 코드 편집기 창에서 확인할 수 있습니다.
함수 노드의 컨텍스트 메뉴
컨텍스트 메뉴 | 설명 |
---|---|
테스트 생성 | 선택된 함수의 테스트 생성 |
테스트 복사 | 선택된 함수의 테스트 복사 |
삭제 | 선택된 함수의 테스트 및 케이스 삭제 |
함수 호출 그래프 보기 | 선택된 함수의 함수 호출 그래프 보기 |
제어 흐름 그래프 보기 | 선택된 함수의 제어 흐름 그래프 보기 |
MC/DC 보기 | 선택된 함수의 MC/DC 보기 |
호스트 출력값 -> 기대값 | 기대값에 호스트 출력값을 붙여넣기 |
타깃 출력값 -> 기대값 | 기대값에 타깃 출력값을 붙여넣기 |
연관 파일 설정 | 해당 테스트가 속한 파일 선택 |
연관 이슈 설정 | 선택된 테스트를 이슈 관리 도구의 이슈와 연관 |
테스트 데이터 가져오기 | 로컬에 저장된 테스트 데이터 가져오기 |
테스트 데이터 내보내기 | 로컬로 테스트 데이터 내보내기 |
기존 스텁 추가 | 선택된 테스트에 스텁 추가 |
함수 선택 | 마우스로 선택된 모든 함수의 실행 체크박스를 선택으로 변경 |
함수 선택 해제 | 마우스로 선택된 모든 함수의 실행 체크박스를 해제로 변경 |
선택한 테스트 커버리지 내보내기 | 선택한 테스트 커버리지를 선택한 경로로 내보내는 기능 |
테스트 노드
테스트 노드는 커버리지, 테스트 케이스 수행 결과(성공, 실패,오류, 합계)를 제공합니다.
테스트 노드를 더블 클릭하여 해당 테스트 편집기 를 열 수 있습니다.
테스트 노드의 컨텍스트 메뉴
컨텍스트 메뉴 | 설명 |
---|---|
테스트 케이스 추가 | 선택된 유닛 테스트에 테스트 케이스 추가 |
테스트 케이스 자동 생성 | 다양한 방법으로 테스트 케이스를 생성 |
호스트 출력값 -> 기대값 | 기대값에 호스트 출력값을 붙여넣기 |
타깃 출력값 -> 기대값 | 기대값에 타깃 출력값을 붙여넣기 |
테스트 케이스 초기화 | 모든 테스트 케이스 삭제 |
복사 | 테스트 및 케이스 복사 |
붙여넣기 | 테스트 및 케이스 붙여넣기 |
복제 | 테스트 및 케이스 복제 |
여러 번 복제 | 테스트 및 케이스 입력한 수만큼 복제 |
삭제 | 테스트 및 케이스 삭제 |
이름 바꾸기 | 테스트 이름 변경 |
연관 파일 설정 | 해당 테스트가 속한 파일 선택 |
연관 이슈 설정 | 선택된 테스트를 이슈 관리 도구의 이슈와 연관 |
테스트 데이터 가져오기 | 로컬에 저장된 테스트 데이터 가져오기 |
테스트 데이터 내보내기 | 로컬로 테스트 데이터 내보내기 |
대용량 테스트 데이터 | 로컬로 내보내거나 사용자가 작성한 파일을 대상 테스트에 테스트 케이스로 등록하는 기능 |
기존 스텁 추가 | 선택된 테스트에 스텁 추가 |
테스트 선택 | 마우스로 선택된 모든 테스트의 실행 체크박스를 선택으로 변경 |
테스트 선택 해제 | 마우스로 선택된 모든 테스트의 실행 체크박스를 해제로 변경 |
선택한 테스트 커버리지 내보내기 | 선택한 테스트 커버리지를 선택한 경로로 내보내는 기능 |
- 테스트 데이터 내보내기 규칙
테스트 데이터를 내보내기 하려는 곳에 이전에 내보내기 했던 같은 테스트의 테스트 데이터가 있을 경우 자동으로 파일에 넘버링을 하여 테스트 데이터를 생성합니다.
넘버링 규칙은 “테스트 이름_#No.” 입니다.
예) test_1_test0.csv, test_1_test0_0.csv, test_1_test1.csv ……
- 테스트 데이터 가져오기 규칙
테스트 데이터를 가져올 때 해당 테스트의 이름을 가지고 넘버링 된 다수의 테스트 데이터를 선택하면 해당 파일을 병합하여 가져옵니다.
테스트 데이터 가져오기
다양한 형식(csv, xlsx, txt, json)의 테스트 데이터를 가져올 수 있습니다.
- 유닛 테스트 뷰의 컨텍스트 메뉴 중 [테스트 데이터 가져오기]를 클릭 후, [기본 형식 데이터], [외부 형식 데이터] 중 하나를 선택합니다.
- [기본 형식 데이터]를 선택할 경우, CT에서 내보낸 형식의 테스트 데이터를 가져옵니다.
- [외부 형식 데이터]를 선택할 경우, 다양한 형식(csv, xlsx, txt, json)의 파일로부터 테스트 데이터를 가져옵니다.
테스트 케이스 자동 생성
Flat/Pairwise/Random 조합, 함수 발생기로 생성, 탐색 기반 생성 (CS Labs)를 사용하여 테스트 케이스를 생성합니다.
- 유닛 또는 통합 테스트 뷰의 컨텍스트 메뉴 중 [테스트 케이스 자동 생성]을 클릭 후, [Flat 조합], [Pairwise 조합], [Random 조합], [함수 발생기로 생성], [탐색 기반 생성 (CS Labs)] 중 한 가지 테스트 케이스 자동 생성 방식을 선택합니다.
방법 | 설명 |
---|---|
FLAT | 테스트 데이터 개수가 가장 많은 변수를 기준으로 단순 조합 |
PAIR WISE | 각 선출된 파라미터의 데이터가 자신 이외의 파라미터 데이터와 적어도 한 번씩은 쌍을 이루도록 조합 ※ 변수 파티션 개수는 2보다 크고 52보다 작아야 함 |
RANDOM | 입력 파라미터의 변수 파티션의 최소값과 최대값 사이의 임의의 값을 사용자가 정의한 테스트 케이스 수만큼 테스트 데이터 조합 |
함수 발생기로 생성 | 6가지 함수 유형(Ramps, Random, Range, Sine, Toggle, Single Value)을 사용하여 테스트 케이스 생성 |
탐색 기반 생성 (CS Labs) | 국지 탐색(Local search) 알고리즘인 AVM (Alternating Variable Method) 기법을 통해 테스트 케이스를 생성 ※ 현재는 C 언어만 지원 |
- [Random 조합]을 선택할할 경우, 사용자로부터 테스트 케이스 개수를 입력 받을 수 있도록 Random 조합 창을 보여줍니다.
- [함수 발생기로 생성]을 선택할 경우, 함수 유형{Ramps, Sine, Random, Toggle, Range, Single value, None)을 선택할 수 있고, 함수 발생기 설정을 통해 선택된 함수의 설정 값을 변경할 수 있습니다. [프로젝트 특서 설정]에서 함수 발생기 정보를 설정할 수 있습니다.
공통 설정 값
각 함수가 공통으로 가지는 설정 값으로, [프로젝트] -> [특성]에서 값을 변경할 수 있습니다. [프로젝트 특성 설정]에서 함수 발생기 정보를 설정할 수 있습니다.
설정 | 설명 |
---|---|
샘플 간격 | 함수로부터 샘플링 할 샘플의 간격 |
샘플 개수 | 함수로부터 샘플링 할 셈플의 개수(테스트 케이스 개수) |
시작 값 | 함수가 시작되는 기본 값으로 해당 값을 기준으로 테스트 데이터 생성 |
타입 최소 값 | 변수 파파티션의 최소 값(해당 함수의 반환 값이 타입 최소 값보다 작은 경우 타입 최소 값 반환) |
타입 최대 값 | 변수 파파티션의 최대 값(해당 함수의 반환 값이 타입 최대 값보다 큰 경우 타입 최대 값 반환) |
Ramps 함수
Pre, Post, Hold 값을 사용하여 펄스를 생성하는 함수입니다. 샘플 개수가 함수의 주기보다 큰 경우는 함수가 재귀적으로 호출됩니다.
설정 | 설명 |
---|---|
Pre delay | Pre/Post 샘플 값이 지속되는 시간 |
Rise samples | Pre/Post 샘플 값에서 Hold 샘플 값으로 상승하는 시간 |
Hold samples | Hold 샘플 값이 지속되는 시간 |
Fall samples | Hold 샘플 값에서 Pre/Post 샘플 값으로 떨어지는 시간 |
Post delay | Pre/Post 샘플 값이 지속되는 시간 |
Pre/Post delay value | Pre/Post delay 샘플 값 |
Hold value | Hold 샘플 값 |
Random 함수
최소 값(Min)과 최대 값(Max) 사이에서 랜덤한 값을 생성하는 함수입니다.
설정 | 설명 |
---|---|
Min | 랜덤 범위 최소 값 |
Max | 랜덤 범위 최대 값 |
Range 함수
타입 최소 값과 최대 값 사이에 일정한 간격(Step Size)만큼 증가 혹은 감소하는 값을 생성하는 함수입니다.
설정 | 설명 |
---|---|
Step size | 증가 혹은 감소 값 크기 |
Hold | Step size가 유지되는 횟수 |
Rising | Step size만큼 상승되는 함수 유형 예) step size가 30일 경우, 0,30,60…… |
Falling Step | size만큼 감소되는 함수 유형 예) step size가 30일 경우, 100,70,40…… |
Alternate | 함수의 결과값이 타입 최대 최소 값을 만난 경우 상승 혹은 감소로 바뀌는 함수 유형 예) step size가 30이고 최대 최소 값이 0~100인 경우, 0,30,60,90,60,30,0…… |
Sine 함수
Sine값을 생성하는 함수 입니다. 샘플 개수가 함수의 주기보다 큰 경우는 함수가 재귀적으로 호출됩니다.
설정 | 설명 |
---|---|
Amplitude | Sine 함수의 진폭 |
Period | Sine 함수의 주기 |
Phase | Sine 함수의 위상 |
Offset | Sine 함수의 offset |
Toggle 함수
FirstValue와 SecondValue를 반복적으로 생성하는 함수입니다.
설정 | 설명 |
---|---|
First value | Toggle함수에서 반복되는 첫 번째 값 |
Second value | Toggle함수에서 반복되는 두 번째 값 |
SingleValue 함수
일정한 단일 값만 반환하는 함수입니다.
설정 | 설명 |
---|---|
Value | 생성할 값 |
None
함수를 생성하지 않습니다.
연관 이슈 설정
선택된 테스트를 등록된 이슈 관리 도구의 이슈와 연관시키는 기능을 제공합니다. CT에서 지원하는 이슈 관리 도구의 종류는 JIRA, Trac, Redmine, Mantis, Bugzilla 입니다.
- 유닛 테스트 뷰의 컨텍스트 메뉴 중 [연관 이슈 설정]을 클릭합니다.
- 이슈 관리 도구 정보를 설정 파일(IssueManagement.ini)에 입력합니다.
- 테슽스트와 연관 시키려는 이슈를 추가합니다.
- 체크된 이슈 목록을 확인한 뒤, [확인]을 클릭합니다.
디버깅용 바이너리 만들기
- [디렉터리 열기] 버튼을 클릭하여 아래의 디버깅용 바이너리 만들기 결과물이 저장된 디렉터리로 이동하거나 또는 [확인] 버튼을 클릭하여 디버깅용 바이너리 만들기를 종료합니다.
- 해당 프로젝트가 “Visual studio CL compiler”를 사용한다면 “vsjitdebugger”를 자동으로 실행 시킵니다.
디버깅용 바이너리 만들기 결과물
[디버깅용 바이너리 만들기]기능은 사용자 환경에 맞는 디버깅용 바이너리 (testrun.exe)를 생성해줍니다. 사용자는 대상 프로젝트의 툴체인에 맞는 디버깅 도구를 통해 testrun.exe 파일을 직접 디버깅할 수 있습니다.
[디버깅용 바이너리 만들기]기능 수행 시 생성되는 파일 목록은 아래 그림과 같습니다.
- Visual Studio CL컴파일러를 사용했을 때의 파일 목록
- testrun.exe: 디버깅용 바이너리
- *.csv: 테스트의 입력값
Need more help with this?
Don’t hesitate to contact us here.