정보처리기사

[정보처리기사] 실기 개념정리 5 - 테스트기법

스카이디브 2021. 9. 17. 17:57

 

1. 테스트 종류 


(1) 블랙박스 테스트

     : 프로그램 내부의 구조와는 관계없이 외부에 제공하는 기능중심으로 모든 기능들이 정상적으로 수행되는지 확인

(2) 화이트박스 테스트

     : 프로그램 내부로직(수행경로구조, 루프 등)을 보면서 테스트 실행

(3) 그레이박스 테스트

     : 블랙박스테스트 + 화이트박스 테스트 

 

 

 

2. 블랙박스테스트 종류(명세기반 테스트) -> 동경원오비(동경해서 되고싶은 워너비(원오비))

 

(1) 등분할테스트

     : 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법

     ex) 90~100점이 A학점이라고 할때 90과 100의 중간값인 95점을 대표값으로 선정

(2) 계값분석 테스트

     : 경계의 유효한값과 경계에서 가장 가까운 유효하지 않은 값을 테스트데이터로 선택하는 테스트 기법

     ex) 90~100점이 A학점이라고 할때 90~100점(경계의 유효한값)과 89점 또는 101점(가장 가까운 유효하지 않은 값)

(3) 인-효과 그래프 테스트

     : 입력값을 원인으로, 효과를 출력값으로 선정하는 테스트기법

     ex) 로그인 시 아이디와 비밀번호 입력하면 로그인 성공, 둘 중 하나라도 입력하지 않으면 로그인 실패 등의 원인에          따른 효과를 정해두고 실제 테스팅 후 비교

(4) 류예측테스트

     : 과거의 경험이나 확인자의 감각으로 테스트하는 기법
(5) 교테스트

     : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트

 

 

 

 

3. 화이트박스테스트 종류(구조기반 테스트) -> 조루데기

 

(1) 제어구문 검사(건검사)

     : 프로그램의 제어구문(if, case, else)을 테스트

(2) 프검사

     : 프로그램의 반복구조에 초점을 맞추어 검사

(3) 이터 흐름 검사 

     :  프로그램에서 변수의 정의와 변수사용의 위치에 초점을 맞추어 검사

(4) 본경로검사

     : 프로그램의 제어표를 플로우 그래프로 표현하고 순환복잡도를 통해 독립적인 경로의 수를 찾아서 테스트 

 

 

 

4. V-Model  -> 단통시인(소를 하고 부는 시인)

 

사용자 환경                                      설치시험

     시스템정의                               인수시험

         요구분석                          시스템시험

            구조설계                    통합시험

               상세설계              단위시험

                     코딩        디버깅

 

(1) 위시험

     : 분리하여 시험가능한 소프트웨어 모듈의 기능을 확인하는 활동

(2) 합시험

     : 모듈을 결합하여 하나의 시스템으로 구성시 테스트수행

(3) 스템시험

     : 통합모듈에 대한 시스템적(비기능적) 테스트, 신뢰성, 견고성, 성능, 안전성등의 비기능적 요구사항도 테스트

(4) 수시험

     : 사용자의 만족여부를 테스트하는 품질테스트를 수행

 

 

 

 

5. 테스트 커버리지

- 소프트웨어의 소스코드가 얼마만큼 테스트가 되었는가를 나타내는 지표

- 순환복잡도 : 분기문 수 +1

(1) 구문커버리지

     - 프로그램을 구성하는 문장들이 최소한 한번은 실행될 수 있도록 테스트케이스를 선정

(2) 분기커버리지 (결정 커버리지)

     - 프로그램에 있는 분기를 최소한 한번은 실행하게 테스트

     - 전체결정문이 적어도 한번은 참과 거짓의 결과를 수행하도록 셋팅

(3) 조건 커버리지

     - &&, || 등의 조건을 가진 분기문이 전체조건식의 결과와 관계없이 &&, || 전후의 각 개별 조건식이 참한번, 거짓한         번을 갖도록 테스트 케이스를 만드는 방법 

     - 결정 명령문 내 각 조건이 적어도 한번은 참과 거짓의 결과가 출력되도록 생성

 

 

 

6. 인수테스트

(1) 알파테스트 

     : 개발자의 장소에서 사용자가 개발자 앞에서 행하며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인

(2) 베타테스트

     : 다수의 사용자에게 제한하지 않은 환경에서 프로그램을 사용하게 하고 오류가 발생하면 개발자에게 통보하는 방식

 

테스트는 정황과 비즈니스도메인(분야)에 따라 다르게 수행해야 한다 -> 테스트는 정황에 의존한다.

 

 

 

 

7. 하향식 통합방법 vs 상향식 통합방법

(1) 하향식 통합방법

     - 메인제어 모듈(프로그램)으로부터 아래방향으로 제어의 경로를 따라 하향식으로 통합하면서 테스트를 진행

     - 넓이우선/ 깊이우선 방식으로 통함

     - 스텁 : 특정시스템 컴포넌트의 개발이 완료되기 전 상황에서도 필요한 시험을 진행하기 위해 생성된 더미 컴포넌트

(2) 상향식 통합방법

     - 최하위 레벨의 모듈 또는 컴포넌트로부터 위측방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행

     - 드라이버 : 시스템 및 시스템 컴포넌트를 시험하는 환경의 일부분으로 시험을 지원하는 목적하에 생성된 데이터

                     아직 통합되지 않은 상위컴포넌트의 동작을 시뮬레이션하는 모의 모듈

 

 

 

8. 회귀테스트

    - 이미 테스트가 완료된 소프트웨어에 변경이 발생할 때 이로 인해 의도하지 않은 오류가 발생하지 않음을 보증하기        위한 테스트

     - 기존의 테스트로 다시 테스트 하는 것

 

 

 

9. 테스트 오라클

     - 테스트의 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력하여 비교

(1) 참오라클

     : 모든 입력값에 대하여 기대하는 결과를 생성함으로 발생된 오류를 모두 검출할 수 있는 오라클

(2) 샘플링 오라클 

     : 특정한 몇개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클

(3) 휴리스틱 오라클

     : 샘플링오라클을 제외한 오라클, 특정 입력값에 대해 올바른 결과를 제공하고 나머지 값에 대해서는 휴리스틱(추정)        으로 처리하는 오라클

(4) 일관성검사 오라클

     : 애플리케이션 변경이 있을 때, 수행전과 후의 결과값이 동일한지 확인하는 오라클