유닛 테스트 뷰는 기본으로 화면 오른쪽에 위치합니다. 유닛 테스트 뷰는 테스트와 커버리지 정보를 통합하여 하나의 뷰로 제공합니다.

유닛 테스트 뷰의 툴바 메뉴

툴바 아이콘 설명
모두 접기 테스트 뷰 트리 모두 접기
고유한 테스트 이름으로 보기 고유한 테스트 이름으로 보기
합계 전체 테스트 보기
실패/오류 테스트 결과가 실패 또는 오류인 테스트만 보기
실패 테스트 결과가 실패인 테스트만 보기
오류 테스트 결과가 오류인 테스트만 보기
성공 테스트 결과가 성공인 테스트만 보기
함수 변경 테스트 대상 함수가 변경된 테스트만 보기
실행 보장 안됨 테스트 실행 보장 안되는 테스트만 보기
호스트/타깃 결과 다름 호스트/타깃 결과가 다른 테스트만 보기

유닛 테스트 뷰의 풀다운 메뉴(▽)

메뉴 이름 설명
모든 항목에 커버리지 표시 모든 항목(함수, 테스트, 테스트 케이스)에 커버리지 표시

유닛 테스트 대시보드

메뉴 설명
유닛 테스트 실행 버튼
테스트 케이스의의 성공, 실패, 오류, 총합 표현
유닛 테스트 뷰에 표시할 커버리지 종류(구문, 분기, 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)의 테스트 데이터를 가져올 수 있습니다.

  1. 유닛 테스트 뷰의 컨텍스트 메뉴 중 [테스트 데이터 가져오기]를 클릭 후, [기본 형식 데이터], [외부 형식 데이터] 중 하나를 선택합니다.
  2. [기본 형식 데이터]를 선택할 경우, Controller Tester에서 내보낸 형식의 테스트 데이터를 가져옵니다.
  3. [외부 형식 데이터]를 선택할 경우, 다양한 형식(csv, xlsx, txt, json)의 파일로부터 테스트 데이터를 가져옵니다.

테스트 케이스 자동 생성

Flat/Pairwise/Random 조합, 함수 발생기로 생성, 탐색 기반 생성 (CS Labs)를 사용하여 테스트 케이스를 생성합니다.

  1. 유닛 또는 통합 테스트 뷰의 컨텍스트 메뉴 중 [테스트 케이스 자동 생성]을 클릭 후, [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 언어만 지원
  1. [Random 조합]을 선택할할 경우, 사용자로부터 테스트 케이스 개수를 입력 받을 수 있도록 Random 조합 창을 보여줍니다.

  1. [함수 발생기로 생성]을 선택할 경우, 함수 유형{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

함수를 생성하지 않습니다.

연관 이슈 설정

선택된 테스트를 등록된 이슈 관리 도구의 이슈와 연관시키는 기능을 제공합니다. Controller Tester에서 지원하는 이슈 관리 도구의 종류는 JIRA, Trac, Redmine, Mantis, Bugzilla 입니다.

  1. 유닛 테스트 뷰의 컨텍스트 메뉴 중 [연관 이슈 설정]을 클릭합니다.
  2. 이슈 관리 도구 정보를 설정 파일(IssueManagement.ini)에 입력합니다.
  3. 테슽스트와 연관 시키려는 이슈를 추가합니다.
  4. 체크된 이슈 목록을 확인한 뒤, [확인]을 클릭합니다.

디버깅용 바이너리 만들기

  1. 유닛 또는 통합 테스트 뷰에서 테스트 선택 후 마우스 우 클릭합니다. 컨텍스트 메뉴에서 [디버깅용 바이너리 만들기] 메뉴를 선택하면 디버깅용 바이너리 만들기 기능이 수행됩니다.
  1. [확인] 버튼을 클릭하면 디버깅용 바이너리 만들기 진행 정보를 확인할 수 있습니다. 또한, 결과 파일의 위치를 알려주는 창이 열립니다.
  1. [디렉터리 열기] 버튼을 클릭하여 아래의 디버깅용 바이너리 만들기 결과물이 저장된 디렉터리로 이동하거나 또는 [확인] 버튼을 클릭하여 디버깅용 바이너리 만들기를 종료합니다.
    • 해당 프로젝트가 “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.

Thanks for your feedback.