동적시험 실제사례

이유정·2023년 10월 5일
0

검증

목록 보기
4/7

1. 동적시험

  • 기능 시험 (COVER)
    : 시험 절차(요구사항 기반)에 따라 test
    target 직접 연결하여 실행파일 검증
    '아키텍처 설계서' 기반
ex. <pad.c>
         SRS                       STD
1. 문서를 open할 수 있다. → 1. Pad 실행
...                       2. File명 클릭
n.                        3. 열기 button 클릭
                          4. 파일을 open
[오류 가능성]
문서 txt, word, 아래한글만 사용한다는 가정하에,
3가지 파일형만 open 가능하도록 test
그 외 파일형이 open 불가하도록 test
  • 단위 시험 (CONTROLLER TESTER - CT)
    : target 직접 연결하여 실행파일 내 함수 검증
    '상세 설계서' 기반
    함수 = 코드 내 최소 단위
    함수들의 집합 = 모듈, 컴포넌트, 시스템 등
▶ 코드 커버리지
: 소프트웨어의 테스트 케이스가 얼마나 충족되었는지를 나타내는 지표
테스트 진행 시, '코드 자체가 얼마나 실행되었는지'를 수치로 확인 가능
▶ 커버리지
(1) 문장 커버리지: ;(=semicolon) 기준 모든 문장 test
(2) 분기 커버리지: 조건문, 반복문 기준 test
(3) MC/DC 커버리지: 분기문 안에 있는 개별 조건문 포함 test
 - 아키텍처 설계서 & 상세 설계서
 
	 ex. 계산기
	 1. 덧셈기능     //아키텍처 설계서
 	   1-1 숫자 int형     //상세 설계서 (함수)
 - 아키텍처
 
 	 ex. 
	 1. 덧셈기능
 	   1-1 숫자 int형  
 	   1-2 ...
       
	 2. 뺄셈기능
 	   2-1 ...
 	   2-2 ...
       2-23 ...
       
       //단위 테스트: 1-1, 1-2, 2-1 ..
       //통합 테스트: 1, 2
       //시스템 테스트: all(1+2)

2. 동적시험 관련 용어

  • host & target
    -host: PC, windows (환경)
    -target: 하드웨어 내부 칩 (보드)
※ target OS 없을 경우, host에서 동적시험
  • 테스트 하네스(= 테스트 드라이버)
    : 자동화된 테스트 지원도구
    테스트 코드 및 입력값(in 파라미터, 전역변수) 자동생성
  • 의존성 제거
    : 단위시험 시, 함수를 직접 호출하지 않고
    목 객체 or stub을 이용해서 값을 조절해가며 시험
  • 테스트 충분성
    : 위험도가 높을수록, 깊이있고 충분한 테스트 요구
	ex. 드론                 
	구문 커버리지 - 스크린 시계
	분기 커버리지
	MC/DC 커버리지 - 프로펠러
	all pass
                             // ↓ 할수록 충분한 테스트 = 비효율적
  • 시스템 안정성
    : 회피 가능성, 고장 빈도 등 평가 기준표에 따라 어떤 커버리지를 수행할 것인지 결정하는 척도

3. 동적시험 실제 사례

ex. 

a = 1;
b = 3;
if (a < b && a > 0){
	a = b;
}

구문 커버리지 100% (3/3)

→ a = 1;, b = 3;, a = b;
  세 문장 모두 실행 o

분기 커버리지 50% (1/2)

→ if가 true일 경우, 테스트 o
  if가 false일 경우, 테스트 x

4. 동적시험 CT 오류 및 해결방안

1) signaled "메모리 오류"
전역 변수, 포인터 변수 등 할당된 메모리가 없는 상태에서 접근할 때,

  • 해결방안
    : 전역 변수, 파라미터에 값을 할당
    or null 포인터를 참조하지 않도록 수정

2) Abnormal exit "비정상적인 종료"
ex. exit, reset 함수 //비정상
return, int //정상
(void) 함수 전체 실행 후 종료 //정상

  • 해결방안
    : 코드 → 미달성 사유서 작성
    함수 → stub 빈 함수도 대체

3) Timeout "무한루프"

  • 해결방안
    : 코드 → 미달성 사유서 작성
    값을 조절하여 무한루프 탈출

5. 동적시험 메모리 문제 및 해결방안

  1. 메모리맵 파일 = 파티션 해놓을 파일 내에서 메모리 조정 가능
  2. 시험 대상을 줄인 후, test
  3. 필요한 것만 사용하여 test (메모리 절약)
profile
안녕하세요 이유정입니다. 반갑습니다.

0개의 댓글