본문 바로가기
정보처리기사

[소프트웨어 개발] 8. 개발 단계별 어플리케이션 테스트

by reve5 2022. 3. 15.

21. 평가 점수에 따른 성적부여는 다음 표와 같다. 이를 구현한 소프트웨어를 경계 값 분석 기법으로 테스트 하고자 할 때 다음 중 테스트 케이스의 입력 값으로 옳지 않은 것은?

평가점수
성적
80~100
A
60~79
B
0~59
C

① 59 ② 80
③ 90 ④ 101


>> 정답 3번




40. 소스코드 정적 분석(Static Analysis)에 대한 설명으로 틀린 것은?
① 소스 코드를 실행시키지 않고 분석한다.
② 코드에 있는 오류나 잠재적인 오류를 찾아내기 위한 활동이다.
③ 하드웨어적인 방법으로만 코드 분석이 가능하다.
④ 자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.

>> 정답 3번




22. 테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?
① 시험대상 모듈을 호출하는 간이 소프트웨어이다.
② 필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있다.
③ 상향식 통합 테스트에서 사용된다.
④ 테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다.

>> 정답 4번


 

 

34. 다음이 설명하는 테스트 용어는?

- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법 및 활동을 말한다.
- 종류에는 참, 샘플링, 휴리스틱, 일관성 검사가 존재한다.

① 테스트 케이스 ② 테스트 사나리오
③ 테스트 오라클 ④ 테스트 데이터

>> 정답 3번

22. 다음 중 단위 테스트를 통해 발견할 수 있는 오류가 아닌 것은?
① 알고리즘 오류에 따른 원치 않는 결과
② 탈출구가 없는 반복문의 사용
③ 모듈 간의 비정상적 상호작용으로 인한 원치 않는 결과
④ 틀린 계산 수식에 의한 잘못된 결과

>> 정답 3번

단위테스트는 모듈 테스트
모듈간의 상호작용은 통합테스트에서 테스팅한다.

23. 다음 설명의 소프트웨어 테스트의 기본원칙은?

- 파레토 법칙이 좌우한다.
- 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다.
- 결함은 발생한 모듈에서 계속 추가로 발생할 가능성이 높다.

① 살충제 패러독스 ② 결함 집중
③ 오류 부재의 궤변 ④ 완벽한 테스팅은 불가능

>> 정답 2번


24. 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?
① 스터브(Stub)와 드라이버(Driver)
② 입력 도메인 분석
③ 랜덤(Random) 테스트
④ 자료 흐름도

>>정답 1번

1번은 통합테스트 방법 중 하향식(스터브), 상향식( 드라이버), 샌드위치(스터브, 드라이버)와 관련이 있다.


32. 개별 모듈을 시험하는 것으로 모듈이 정확하게 구현되었는지, 예정한 기능이 제대로 수행되는지를 점검하는 것이 주요 목적인 테스트는?
① 통합 테스트(Integration Test)
② 단위 테스트(Unit Test)
③ 시스템 테스트(System Test)
④ 인수 테스트(Acceptance Test)

>> 정답 2번
모듈별로 테스트하는 건 단위테스트이다.
모듈을 통합하여 아키텍처로 테스트 하는 건 통합테스트이다.

시스템은 소프트웨어를 테스트
인수는 이용자 요구사항에 충족하는제 확인한다.


36. 다음이 설명하는 애플리케이션 통합 테스트 유형은?

- 깊이 우선 방식 또는 너비 우선 방식이 있다.
- 상위 컴포넌트를 테스트 하고 점증적으로 하위 컴포넌트를 테스트 한다.
- 하위 컴포넌트 개발이 완료되지 않은 경우 스텁(Stub)을 사용하기도 한다.

① 하향식 통합 테스트
② 상향식 통합 테스트
③ 회귀 테스트
④ 빅뱅 테스트


>>> 정답 1번
깊이, 너비는 하향식 통합 테스트다.
위에서 아래로 

상향식은 아래에서 위로


39. 알파, 베타 테스트와 가장 밀접한 연관이 있는 테스트 단계는?
① 단위 테스트 ② 인수 테스트
③ 통합 테스트 ④ 시스템 테스트


>> 정답 2번

이용자 요구사항을 확인하는 인수테스트에서
알파 테스트 : 개발자 
베타 테스트 : 이용자
사전에 확인후 배포한다. 
상업용 소프트웨어에서 많이 하는 방식이다.


23. 하향식 통합시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈은?
① Stub ② Driver
③ Procedure ④ Function

>> 정답 1

2번은 상향식
4번은 함수다


34. 테스트 케이스에 일반적으로 포함되는 항목이 아닌 것은?
① 테스트 조건
② 테스트 데이터
③ 테스트 비용
④ 예상 결과

>> 정답 3번
테스트 비용은 계획에서 포함되어 있다


https://www.youtube.com/watch?v=RqMVVMX7D5Q&list=PLKpxllD6C8Cli4UZqnDG4_77OU6XeF6e_&index=8 


1. 단위테스트
단위 = 모듈 
단위테스트는 모듈이나 컴포넌트에 초점
기능성 우선 수행
구조기반(복잡도, 화이트박스), 명세기반(기능, 블랙박스)

2. 통합테스트
단위테스트 완료 후 완료된 모듈들을 하나의 시스템으로 완성하면서 상호작용의 오류를 검사
모듈간 상호작용 오류 검사
> 비점진적 방식 : 모든 모듈을 결합한 상태(한번에 통합), 단시간 테스트, 오류 파악 및 수정 어려움
> 점진적 방식 : 단계적 통합, 오류 수정 용이

+ 점진적 방식 종류
1. 하향식 테스트
상위모듈에서 하위 모듈로 뻗어나가는 방식
+ 깊이 우선 통합
밑으로 끝까지 나간 다음에 옆으로 확장
+ 너비 우선 통합
옆으로 다 확장한 다음에 밑으로 내려감
>> 둘다 트리 구조와 같음. 시스템 구조 시각화에 좋음
>> 모듈통합할때마다 회귀테스트(수정된 부분 테스트) 진행
>> stub : 상위 모듈의 테스트를위한 기능만 가지고 있는 시험요 하위모듈

2. 상향식 테스트
하위 모듈에서 상휘모듈로 진행한다
driver : 아직 존재하지 않는 상위 모듈의 역할(인터페이스)을 하는 시험용 모듈
클러스터 : 드라이버에 적용될 하위모듈을 결합한 것, 상향식 테스트의 단위

3. 혼합식(샌드위치) 통합 테스트
하향식과 상향식을 섞은 테스트

3. 시스템 테스트
모듈 모두 합쳐서 소프트웨어가 된 상황
이 소프트웨어가 컴퓨터 시스템에서 작동하는지 확인
기능적 요구사항 > 블랙박스 테스트
비기능적 요구사항 > 화이트박스 테스트
실제 사용 환경과 유사하게 구성하여 테스트한다.

4. 인수테스트
최종적으로 사용자가 요구사항을 충족하는지 확인하는 테스트
오류 검출보다는 기능확인이 주 목적

+ 알파테스트 : 개발환경에서 테스트
+ 베타테스트 : 일반 사용자들 환경에서 테스트

5. 프로젝트 종료

* 테스트 프로세스(테스트 절차)
계획 : 시스템 구조 파악, 테스트 비용 산정, 시작 및 종료 조건 정의 > 계획서 작성

설계 : 테스트 목적과 원칙에 따라 요구사항 분석, 오류에 따른 리스크 분석 (우선순위), 테스트 데이터, 환경, 도구를 준비

테스트 케이스 및 시나리오 
> 테스트 케이스 : 구현된 기능의 기대 결과를 비교하는 항목들
> 테스트 시나리오 : 여러 테스트 케이스의 집합(절차명세), 모듈간 연계 테스트가 가능하도록 분류, 특정 기준으로 여러 개의 시나리오로 분류
> 테스크 오라클 : 기대 결과와 실제 결과를 비교하는 기법
>> 테스크 오라클 특징 ; 제한적, 수학적, 자동화
+ 테스크 오라클 종류
1. 참오라클 : 모든 결과 비교, 미션 크리티컬(충격이 큰것)
2. 샘플링 오라클 : 특정 케이스만 비교
3. 추정 오라클 : 샘플링 + 나머지 추정
4. 일관성 검사 오라클 : 어플리케이션의 변경 전과 후 결과 비교

수행 : 테스트 환경 구축, 수행, 결과 측정
평가 : 결함 기록, 리뷰, 다음 테스트 적용
관리 : 결함 추적 관리

댓글