소프트웨어 테스트
1.테스트 오라클
테스트 오라클 개념
- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법 및 활동
테스트 오라클 유형
구분 | 설명 |
참 오라클 (True) | 모든 테스트 케이스 입력값의 기대 결과를 확인 항공기, 임베디드, 발전소 소프트웨어 등 크리티컬한 업무 |
샘플링 오라클 | 특정한 몇 개의 입력 값에 대해서만 기대하는 결과를 제공해 주는 오라클 일반, 업무용, 게임, 오락 등이 일반적인 업무 |
휴리스틱 오라클 (Heuristic) | 샘플링 오라클을 개선한 오라클로, 특정 입력 값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클 |
일관성 검사 오라클 (Consistent ) | 애플리케이션 변경이 있을 때, 수행 전과 후의 결과 값이 동일한지 확인하는 오라클 |
2.테스트 레벨
인수테스트
- 알파 : 사용자+ 개발자
- 베타 : 사용자
시스템 테스트
- 기능 테스트 : 사용자가 요구한 기능 잘 구현 확인
- 비기능 테스트 : 보안, 성능 같은 비기능적인
통합테스트
- 상향식 - 드라이버 필요
- 하향식 - 스텁 필요
- 빅뱅 - 한꺼번에 뻥 테스트
- 빽본 - 상향/하양 둘다
단위테스트
- 정적 : 소스코드보고
- 동작 : 실행시킨 상태
3. 애플리케이션 테스트 유형 중 테스트 기법에 따른 분류
화이트박스 테스트 ( 내부구조와 도작 )
기법 | 설명 |
문장 검증 | 프로그램의 모든 문장을 한 번 수행하여 검증 |
선택(분기) 검증 | 선택하는 부분만 검증 |
경로 검증 | 수행 가능한 모든 경로 검사 |
조건 검증 | 조건이나 반복문 내 조건식을 검사 |
블랙박스 테스트 ( 명세를 보면서 테스트 )
기법 | 설명 |
동등 분할 기법 ( Equivalence Partitioning Testing ) |
입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법 |
경계값 분석 ( Boundary Value Analysis ) |
입력 값의 중간값보다 경계값에서 오류가 발생할 확률이 높다는 점을 이용해 입력 조건의 경계값을 테스트 케이스로 선정한다. |
원인-효과 그래프 검사 ( Cause-Effect Graphing Testing ) |
입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효율성이 높은 테스트 케이스를 선정하여 검사하는 기법 |
오류 예측 검사 ( Error Guessing ) |
과거의 경험이나 테스터의 감각으로 테스트하는 기법이다. |
비교 검사 ( Comparison Testing ) |
여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는 테스트 하는 기법 |
4. 애플리케이션 테스트 유형 중 테스트 목적에 따른 분류
목적 | 설명 |
회복 ( Recovery ) |
시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 테스트 |
안전 ( Security ) |
불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스코드 내의 보안적인 결함을 미리 점검하는 테스트 |
강도 ( Stress) |
시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 |
성능 ( Stress ) |
시스템의 응답하는 시간, 처리량 반응 속도 등을 테스트 |
구조 ( Structure ) |
시스템의 내부 논리 경로, 소스코드의 복잡도를 평가하는 테스트 |
회귀 ( Regression ) |
변경 또는 내부 논리 경로, 소스코드의 복잡도를 평가하는 테스트 |
병행 ( Parallel ) |
변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 |
A/B 테스트 | 기존 서비스 A와 새로 적용하고 싶은 서비스 B를 통계적인 방법으로 비교하여 새로운 서비스가 기존 서비스에 비해 정말 효과가 있는지 알아보는 테스트 |
스모트 테스트 ( Smoke ) |
본격적인 테스트 수행에 앞서 테스트 환경의 테스트가 가능한지 여부를 판단하기 위해 간단하게 테스트 |
5. 애플리케이션 테스트 유형 중 테스트 종류에 따른 분류
분류 | 설명 |
명세 기반 테스트 | 주어진 명세를 빠짐없이 테스트 케이스로 구현 및 확인 하는 테스트 |
구조 기반 테스트 | 소프트웨어 내부 논리 흐름에 따라 케스트 케이스 작성 및 확인하는 테스트 |
경험 기반 테스트 | 경험이 많은 테스터와 직관과 기술능력을 기반으로 수행하는 테스트 |
6. 애플리케이션 테스트 유형 중 프로그램 실행 여부에 따른 분류
* 정적테스트
* 동적테스트
7. 애플리케이션 테스트 유형 중 테스트에 대한 시각에 따른 분류
* 검증 ( Verification ) : 소프트웨어의 개발 과정을 테스트
* 확인 ( Validation ) : 완성된 소프트웨어의 결과를 테스트
8. 테스트 도구 기억할거 두 가지 ( 스텁, 드라이버 )
테스트 스텁(Stub) : 하향식 테스트 , 제어모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
테스트 드라이버(Driver) : 상향식 테스트 , 테스트 대상 하위 모듈을 호출하고, 파라미터 전달하고, 모듈 테스트 수행 후 결과 도출
관련 기출 문제 정리
2020년 3회
테스트의 종류 중, 둥치분할 테스트, 경계값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오.
정답
정답 : 블랙박스 테스트
2020년 4회
테스트 오라클 중 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클은 무엇인가?
정답
정답 : 샘플링 오라클
점수에 따른 성적 부여가 잘 되었는지 테스트하고자 한다. 아래에 알맞는 테스트 기법은 무엇인가?
점수 | 성적 |
0 ~ 59 | 가 |
60 ~ 69 | 양 |
70 ~ 79 | 미 |
80 ~ 89 | 우 |
90 ~ 100 | 수 |
[테스트 값] : -10점 / 30점 / 65점 / 75점 / 85점 / 95점 / 110점
정답
정답 : 동등 분할 테스트
동등분할 테스트는 입력 데이터의 영역을 유사한 도메인별로 유효 값 / 무효 값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트하는 기법 (블랙박스 테스트)
데이터 영역에 가까운 값이 아닌 영역 내에 있는 일반 값들로 테스트한다.
2021년 1회
다음은 테스트 종류에 대한 설명이다. 빈칸에 들어갈 알맞은 용어를 보기에서 찾아 기호로 쓰시오.
- ( 1. ) 은/는 개별 모듈, 서브루틴이 정상적으로 실행되는지 확인
- ( 2. ) 은/는 인터페이스 간 시스템이 정상적으로 실행되는지 확인
[보기] : 시스템 테스트 / 인수 테스트 / 알파 테스트 / 단위 테스트 / 통합 테스트 / 회귀 테스트
정답
정답 : (1) 단위 테스트 , (2) 통합 테스트
2021년 2회
다음은 화이트 박스 테스트 검증 기준에 대한 설명이다. 다음에서 설명하는 알맞은 용어를 보기에서 찾아 쓰시오.
(1) 최소 한 번은 모든 문장을 수행한다.
(2) 결정(Decision) 검증 기준이라고도 하며 조건 별로 True/False일 때 수행한다.
(3) (2)와 달리 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행한다.
[보기] 다중 조건 커버리지, 변형 조건 / 결정 커버리지, 조건 커버리지, 결정 커버리지, 구조 커버리지, 구문 커버리지
정답
정답 : (1) 구문(문장) 커버리지 (2) 결정 커버리지 (3) 조건 커버리지
다음 괄호 안에 알맞은 답안을 작성하시오.
- 테스트 하네스의 도구 구성 요소 중, 상향식 테스트시, 상위 모듈 역할을 대신하는 테스트 드라이버와 하향식 테스트 시, 하위 모듈 역할을 대신하는 테스트 ( ) 이 있다.
정답
정답 : 스텁 (stub)
테스트 하네스란 시스템 및 시스템 컴포넌트 시험하는 환경의 일부분으로 시험을 지원하는 목적 하에 생성된 코드와 데이터를 뜻합니다. 시험 드라이버라고도 하며, 일반적으로 단위 시험이나 모듈 시험에 사용하기 위해 코드 개발자가 만듭니다.
테스트 하네스 도구 구성 요소 :테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 스크립트, 목 오브젝트
2021년 3회
다음은 테스트케이스의 구성요소에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.
정답
정답 : 테스트 조건 , 테스트 데이터 , 테스트 결과
아래에서 설명하는 테스트 기법은 무엇인가?
입력 자료 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 후 효용성이 높은 테스트 케이스를 선정해서 테스트하는 기법
정답
정답 : Cause Effect Graph (원인 결과 그래프)
2022년 1회
정답
정답 : (1) 단위테스트 (2) 통합테스트 (3) 시스템테스트 (4) 인수테스트
2022년 2회
다음 설명에 대한 괄호안에 알맞는 단어를 작성하시오.
1. ( ) 테스트는 하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업. 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업이다.
2. ( ) 테스트는 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트. 즉, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.
정답
정답 : (1) 알파테스트 (2) 베타테스트
다음 설명에 알맞는 테스트 용어를 보기에서 골라 작성하시오.
오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험이다.
반복적인 시험이 필요한 이유는 오류가 제거·수정되는 상당수의 시스템이 의도치 않았던 오동작이나 새로운 형태의 오류를 일으키기 때문이다.
결국, 수정·변경된 시스템이나 시스템 컴포넌트 또는 프로그램이 명세된 요구 사항을 충족시키는지를 확인하는 시험의 한 형태이다.
정답
정답 : Regression (회귀)
'침착하게 Study > 정보처리기사' 카테고리의 다른 글
[정보처리기사/실기]2023년 정처기 실기 자주 나오는 개념 키워드 정리 1 (UML 관계, 다이어그램, 디자인패턴, 결합도&응집도, 암호화 알고리즘-대칭, 비대칭, 해시, 테스트정리 화이트 테스트& 블.. (0) | 2023.07.19 |
---|---|
[정보처리기사/실기] 디자인 패턴 정리 ( + 관련 기출 정리 ) (0) | 2023.07.16 |
[정보처리기사/실기] UML 다이어그램 정리, 구조 다이어그램, 행위 다이어그램 ( + 관련 기출 문제 정리 ) (0) | 2023.07.16 |
[정보처리기사/실기] 공격 기법 ( + 관련 기출 문제 정리 ) (0) | 2023.07.16 |
[정보처리기사/실기] 결합도, 응집도 정리 ( + 관련 기출 정리 ) (0) | 2023.07.16 |