본문 바로가기
이론

테스트 기법

by 앗사비 2013. 6. 27.
728x90
  1. 테스트를 하려면?
    1. 분석 : 개발 산출물 (테스트 베이시스) 검토
    2. 설계 : 테스트 조건에 맞게 테스트케이스 작성
    3. 구현 : 테스트 프로시저 구성
  2. 테스트 설계란?
    1. 정의 : TC와 테스트 데이터 등을 구상하고 구체적으로 명세화하는 활동
      1. 간단하게 말하면 TC를 만드는 것
      2. 최소 개수로, 가능한 많은 결함을, 빠짐없이 테스트할 수 있도록
      3. 커버리지 확보가 필요함 (보장성)
    2. TC 관련 용어
      1. 테스트 케이스 (TC : Test Case) : 입력값과 기대결과로 구성된 최소 단위
      2. 테스트 수트 (Test Suite) : 여러 개 TC 단순 묶음
        1. TC와 TS를 혼동하여 사용하는 테스트 조직이 많음
      3. 테스트 프로시져 (Test Procedure) : TC를 효율적인 테스트 순서로 구성
      4. 테스트 시나리오 (Test Scenario) : TC를 사용자 조작 순서로 구성
  3. 테스트 설계 기법의 분류
    1. 공식
      1. 명세 기반 : 개발 명세를 분석해서 TC 설계 (커버리지 제한적)
      2. 구조 기반 : 코드/설계 등의 SW 구현 정보 기반 (정량적인 커버리지 측정 가능)
    2. 비공식 (기법이라기 보다는 접근법)
      1. 경험 기반 : 유사SW 경험과 지식으로 TC 도출
  4. 명세 기반
    1. 동등 분할 (등가 분할) : 클래스로 분류하여 각 클래스의 대표 TC 도출
    2. 경계값 분석 : 범위가 있는 경우 경계값 위주로 TC 도출
    3. 조합 테스팅 : 두 요소간의 상호작용을 고려하여 TC 도출 (allpairs 등의 툴 사용)
    4. 결정 테이블 테스팅 : 논리적인 명세서를 원인/결과로 나누어 TC 도출
    5. 상태전이 테스팅 : 이벤트, 액션, 가드, 상태전이 사이의 관계를 검증
    6. 유즈케이스 테스팅 : 유즈케이스 모델링을 TC로 도출
  5. 구조 기반
    1. 커버리지 기반 테스트 : SW테스트가 얼마나 충분한지 확인
      1. 구문 (SC) : 프로그램 내의 모든 명령문을 한번 이상 수행
      2. 결정 (DC) : 프로그램 내의 각 분기들을 한번 이상 수행
      3. 조건 (CC) : 조건들이 참이 되는 경우와 거짓이 되는 경우를 모두 수행
      4. 조건/결정 (C/DC) : 조건+결정. 각 커버리지의 단점 보완
      5. 변형 조건/결정 (MC/DC) : 각 개별 조건식이 다른 조건식에 무관하게 전체 조건식 결과에 영향을 주는 경우
        1. 최소 TC = 개별조건수 + 1
      6. 다중 조건 (MCC) : 모든 개별 조건식의 모든 조합을 한 번 이상 수행
        1. 최소 TC = 2개별조건수
    2. 제어흐름 테스트 : 제어 흐름도를 사용하여 TC 도출 (SC, DC 달성)
    3. 데이터흐름 테스트 : 변수들이 값을 할당받은 지점에 따라 테스트 경로 도출
    4. 기본경로 테스트 : 독립적인 경로를 모두 수행하여 잠재적인 오류 검출
    5. 최소비교 테스트 : MC/DC 기반으로 최적화된 분기 도출
      1. MC/DC는 다른 분기점을 고려하지 않음
      2. 최소비교는 다른 분기점까지 고려함
  6. 경험 기반
    1. 에러 추정 : 자주 발견되는 결함 유형을 DB화하여 TC 도출
    2. 체크리스트 : 수행해야 할 테스트 목록 나열 (커버리지 없음)
    3. 탐색적 테스팅 : 테스트하면서 제품을 파악하고 테스트 설계 (보완 후 반복 작업)
      1. 사전 정보 없거나 시간이 부족한 경우
      2. 테스터 개인의 지적 능력이 중요함
      3. 산출물 작성보다 테스트 실행 자체에 집중
      4. 결함 집중 원리에 충실한다 (결함은 집중되어 있다)
      5. 필요한 절차와 원칙이 있다 (개인 역량 의존에 의한 완성도 저하 방지)
        1. 테스트 차터 : 중점 테스트 항목
        2. 테스트 노트 : 테스트한 기록을 남김
        3. 타임 박싱 : 테스트 집중력을 높이기 위해 실행 시간 제한
        4. 회고 : 소감 및 개선안 공유
    4. 분류 트리 기법 : 명세 없는 경우 테스트 아이디어 시각화


728x90