본문 바로가기
ETC/Certificate

<정보처리기능사> 애플리케이션 테스트

by Skills 2020. 11. 25.
728x90

3과목 애플리케이션 테스트

 

* 애플리케이션 테스트의 개념

애플리케이션 테스트는 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차이다.

 

* 파레토 법칙

애플리케이션의 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다고 하여 적용하는 법칙

 

* 살충제 패러독스

애플리케이션 테스트에서는 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 살충제 패러독스현상이 발생한다. 살충제 패러독스를 방지하기 위해서 테스트를 지속적으로 보완 및 개선해야 한다.

 

* 정적 테스트

- 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트

- 종류 : 워크스루, 인스펙션, 코드 검사 등

 

* 동적 테스트

- 프로그램을 실행하여 오류를 찾는 테스트로, 소프트웨어 개발의 모든 단계에서 테스트를 수행할 수 있다.

- 종류 : 블랙박스 테스트, 화이트박스 테스트

 

* 회복 테스트

애플리케이션 테스트 중 시스템에 여러 가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인하는 테스트

 

* 성능 테스트

애플리케이션 테스트 중 소프트웨어의 실시간 성능이나 전체적인 효율성을 테스트하며, 모든 단계에서 수행되는 테스트

 

* 확인 테스트

애플리케이션 테스트 중 사용자의 시각에서 생산된 제품의 결과를 테스트 하는 것으로, 사용자가 요구한대로 제품이 완성됐는지, 제품이 정상적으로 동작하는지에 중점을 두는 테스트

 

* 검증 테스트

테스트 종류 중 개발자의 입장에서 소프트웨어가 요구사항에 맞는지를 추적하는데 중점을 두는 테스트

 

* 소프트웨어 테스트

- 프로그램 원시 코드의 논리적인 구조를 커버하도록 테스트 케이스를 설계하는 프로그램 테스트

- 모듈 안의 작동을 자세히 관찰할 수 있다.

- 테스트 종류 : 기초 경로 검사(대표적), 제어 구조 검사(조건 검사, 루프 검사, 데이터 흐름 검사)

 

* 블랙박스 테스트

- 소프트웨어 인터페이스에서 실시되는 기능 테스트로, 소프트웨어의 기능이 의도대로 작동하고 있는지 테스트

- 테스트 종류 : 동치 분할 검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사

 

* 개발 단계

소프트웨어 개발 단계 : 요구사항 -> 분석 -> 설계 -> 구현

테스트 단계 : 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트

 

단위 테스트 : 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트

통합 테스트 : 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트

시스템 테스트 : 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행 되는가를 점검하는 테스트

인수 테스트 : 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트

 

* 통합 테스트

- 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법

- 비점진적 통합 방식과 점진적 통합 방식이 있다.

 

* 애플리케이션 테스트 프로세스

테스트 계획서 -> 테스트 케이스 -> 테스트 시나리오 -> 테스트 결과서

 

* 결함(Fault)의 정의

결함은 오류 발생, 작동 실패 등과 같이 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생되는 것을 의미한다.

 

* 가중치

가중치는 애플리케이션의 평가 항목이나 각 단위 업무가 차지하는 중요도를 의미한다.

 

* 결함 조치 관리의 개요

결함 조치 관리는 결함이 발생한 코드에서 결함을 제거하고 결함 조치로 변경된 코드의 버전과 이력을 관리하는 것을 의미한다.

 

* 코드 인스펙션(Code Inspection)

- 코드의 결함을 파악하고 제거하기 위해 개발 가이드의 준수 여부를 확인하는 것이다.

- 코드 인스펙션을 적절히 수행할 경우 코드에 포함된 에러의 90%까지 찾아낼 수 있다.

- 코드의 사전 검토 방법

(1) 자동 인스펙션 : 애플리케이션에 적합한 코드 인스펙션 도구를 활용하여 검토하는 기법이다.

(2) 수동 인스펙션 : 코드를 추출하여 직접 검토하는 기법이다.

                        자동 인스펙션의 결과로 에러가 많이 검출된 경우 사용

                        자동 인스펙션으로 검토가 어려운 복잡한 처리 로직이 있는 경우 사용

 

* 형상 관리

소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다.

 

-----------------------------------------------------------------------------------------------------------------------------------

3과목 애플리케이션 예상 문제 

 

1. 다음 괄호(1, 2)에 들어갈 가장 적합한 용어를 쓰시오.

애플리케이션 테스트는 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차로, 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 ( 1 )하고 소프트웨어가 기능을 정확히 수행하는지 ( 2 )해야 한다. ( 1 )은 개발된 소프트웨어가 개발자의 입장에서 명세서에 맞게 만들어졌는지를 보는 것이다.

답 : ( 1 = 확인), ( 2 = 검증)

 

2. 다음 각각의 설명에 해당하는 애플리케이션 테스트의 종류를 쓰시오.

① 시스템에 여러 가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인하는 테스트

답 : 회복 테스트

② 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가

답 : 강도 테스트

③ 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트

답 : 회귀 테스트

④ 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교하는 테스트

답 : 병행 테스트

 

5. 소프트웨어 테스트에 사용되는 방식으로, 모듈의 논리적 구조를 체계적으로 점검하는 구조 테스트이며, 유형에는 기초 경로 검사, 조건 검사, 데이터 흐름 검사, 루프 검사 등이 있는 테스트 방식을 쓰시오.

답 : 화이트박스 테스트

 

4. 다음은 인수 테스트에 대한 설명이다. 괄호(1, 2)에 들어갈 적합한 테스트 이름을 쓰시오.

인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 방법이다. 인수 테스트 중 ( 1 ) 테스트는 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법으로 통제된 환경에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 기록한다. ( 2 ) 테스트는 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법으로 개발자에 의해 제어되지 않은 상태에서 사용자가 직접 테스트를 수행하며, 발견된 오류와 사용상의 문제점을 기록하고 개발자에게 주기적으로 보고한다.

답 : ( 1 = 알파), ( 2 = 베타)

 

5. 다음은 상향식 통합 방식의 수행 단계이다. 괄호(1, 2)에 들어갈 가장 적합한 용어를 쓰시오.

ⓐ 최하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 ( 1 )로 결합된다.
ⓑ 상위 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈인 ( 2 )를 작성한다.
ⓒ 각 통합된 ( 1 ) 단위로 테스트한다.
ⓓ 테스트가 완료되면 각 ( 1 )는 프로그램의 위쪽으로 결합되고, ( 2 )는 실제 모듈 또는 컴포넌트로 대체된다.

답 : ( 1 = 클러스터), ( 2 = 드라이버)

 

6. 다음 괄호에 공통으로 들어갈 가장 적합한 테스트 기법을 쓰시오.

(  )는 이미 테스트된 프로그램의 테스팅을 반복하는 것으로, 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트이다. (  )는 수정한 모듈이나 컴포넌트가 다른 부분에 영향을 미치는지, 오류가 생기지 않았는지 테스트하여 새로운 오류가 발생하지 않음을 보증하기 위해 반복 테스트한다.

답 : 회귀 테스트

 

7. 다음에 제시된 결함 관리의 각 단계를 순서대로 나열하시오.

ⓐ 에러가 발견되면 테스트 전문가와 프로젝트팀이 논의한다.
ⓑ 수정이 완료된 결함에 대해 확인 테스트를 수행하고, 이상이 없으면 결함 조치 완료 상태로 설정한다.
ⓒ 등록된 에러가 실제 결함이면 결함 확정 상태로 설정한다.
ⓓ 결함을 수정하고, 수정이 완료되면 결함 조치 상태로 설정한다.
ⓔ 발견된 에러를 결함 관리 대장에 등록한다.
ⓕ 등록된 에러가 실제 결함인지 아닌지를 분석한다.
ⓖ 결함을 해결할 담당

답 : a -> e -> f -> c -> g -> d -> b

 

8. 다음은 애플리케이션 테스트를 마치면 산출되는 문서에 대한 설명이다. 괄호(1~4)에 들어갈 가장 적합한 문서를 쓰시오.

애플리케이션 테스트를 마치면 ( 1 ), ( 2 ), ( 3 ), ( 4 )가 산출 된다. ( 1 )는 테스트 목적, 범위, 일정, 수행 절차, 대상 시스템 구조, 조직의 역할 및 책임 등 테스트 수행을 계획한 문서이다. ( 2 )는 사용자의 요구 사항을 얼마나 준수하는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서이다. ( 3 )는 테스트를 수행할 여러 개 테스트 케이스의 동작 순서를 기술한 문서이다. ( 4 )는 테스트 결과를 비교분석한 내용을 정리한 문서이다.

답 : ( 1 = 테스트 계획서 ( 2 = 테스트 케이스), ( 3 = 테스트 시나리오), ( 4 = 테스트 결과서)

 

9. 다음은 테스트 케이스의 작성 순서이다. 순서대로 나열하시오.

ⓐ 테스트 계획 검토 및 자료 확보
ⓑ 테스트 요구사항 정의
ⓒ 위험 평가 및 우선순위 결정
ⓓ 테스트 케이스 정의
ⓔ 테스트 구조 설계 및 테스트 방법 결정
ⓕ 테스트 케이스 타당성 확인 및 유지 보수

답 : a -> c -> b -> e -> d -> i

 

10. 테스트 자동화 도구 중 다음 괄호에 공통으로 들어갈 도구를 쓰시오.

(  )는 애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위해 생성된 코드와 데이터를 의미하고, (  ) 도구는 테스트가 실행될 환경을 시뮬레이션 하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 한다.

답 : 테스트 하네스

 

11. 단위 업무에 대한 애플리케이션의 평가 항목에 대한 가중치가 각각 20%, 15%, 40%, 25%이고, ‘상품 판매업무의 평가 등급이 각각 2, 4, 3, 2일 때, ‘상품 판매업무의 가중치를 산출하시오.

답 : 27

 

12. 다음은 결함 관리 측정 지표들에 대한 설명이다. 괄호(1 ~ 3)에 들어갈 적합한 지표를 쓰시오.

( 1 ) 모듈 또는 컴포넌트의 특정 속성에 해당하는 결함 수 측정
( 2 ) 테스트 진행 시간에 따른 결함 수의 추이 분석
( 3 ) 특정 결함 상태로 지속되는 시간 측정

답 : ( 1 = 결함 분포), ( 2 = 결함 추세), ( 3 = 결함 에이징)

 

13. 결함 조치의 우선순위를 결정하기 위한 중요 요인 중 하나로, 각 단위 업무 프로세스에 발생한 결함이 전체 시스템에 미치는 영향의 수준을 의미하며, 단위 업무의 가중치를 기반으로 환산되어 H, M, L 등으로 표시되는 것을 가리키는 용어가 무엇인지 쓰시오.

* 코드의 결함을 파악하고 제거하기 위해 개발 가이드의 준수 여부를 확인하는 검토 기법이다
* 적절히 수행할 경우 코드에 포함된 에러의 90%까지 찾아낼 수 있다.
* 제공학이 가능한 영역을 식별하는데 도움을 준다.
* 계획, 시작, 준비, 회의 등의 과정을 거쳐 수행된다.

답 : 결함 심각도

 

14. 다음의 설명에 가장 부합하는 용어를 쓰시오.

답 : 코드 인스펙션

 

15. 코드 인스펙션의 시작 단계에서 자동 인스펙션의 결과로 에러가 많이 검출되거나, 검토가 어려운 복잡한 처리 로직이 있는 경우, 또는 처음 투입되는 개발자의 코드가 코드 인스펙션의 대상이 된 경우 수행하는 검토 방법이 무엇인지 쓰시오.

답 : 수동 인스펙션

 

16. 소프트웨어 개발 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등의 변경 사항을 관리하기 위해 개발된 일련의 활동을 무엇이라고 하는지 쓰시오.

답 : 형상 관리

728x90

'ETC > Certificate' 카테고리의 다른 글

<정보처리기능사> 데이터베이스  (0) 2020.11.24
<정보처리기능사> 운영체제  (0) 2020.11.23

댓글