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) 일관성검사 오라클
: 애플리케이션 변경이 있을 때, 수행전과 후의 결과값이 동일한지 확인하는 오라클
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 실기 개념정리 3 - 응집도와 결합도 (0) | 2021.09.15 |
---|---|
[정보처리기사] 실기 개념정리 2 - 디자인패턴 (0) | 2021.09.15 |
[정보처리기사] 실기 개념정리 1 - 객체지향, 미들웨어, 요구사항분석 (0) | 2021.09.08 |