본문 바로가기

자격증

[정보처리기능사] chapter 01. 애플리케이션 테스트 수행

~ 목차 ~

 

Part 02. 애플리케이션 테스트 수행 

 

 chapter01. 애플리케이션 테스트 수행

 chapter02. 애플리케이션 결함 조치

 


1. 테스트

  •  테스트 : 개발된 애플리케이션이나 시스템의 사용자가 요구하는 기능과 성능, 사용성, 안전성 등을 확인, 결함 찾는 활동
  • 역할 
    • 소프트웨어 아키텍트 
    • 테스트 매니저

소프트웨어 생명 주기(Life Cycle)의 V모델

 

  • 소프트웨어 아키텍처 : 소프트웨어의 골격이 되는 기본 구조, 구성요소 간의 관계를 표현하는 시스템 구조
  • 테스트 7가지 원칙
    • 테스트는 계획 단계부터(초기부터)
    • 테스트는 결함의 발견
    • 완전한 테스트는 불가능
    • 테스트는 상황에 따라 다르다.
    • 결함 집중을 고려(파레토 법칙 : 결함이 높은 곳에 자원이 집중되어 있다.)
    • 살충제 패러독스를 고려 : 동일한 테스트 케이스에 의한 반복적 테스트로 새로운 버그를 찾아내지 못하는 내성 현상
    • 오류 부재의 궤변을 고려 : 개발한 제품은 요구 사항과 일치하고 사용에 적합해야 한다.

 

2. 단위 테스트

  • 작은 소프트웨어 단위(컴포넌트 또는 모듈)를 테스트
  • 반드시 수행(개발 과정 중 자동으로 진행)
  • 구조적 테스트, 기능성 테스트, 리소스 관련 테스트, 강건성 테스트 등
  • 컴포넌트 명세, 소프트웨어 상세 설계, 데이터 모델 명세 등을 이용하여 테스트
테스트 방법 설명 테스트 목적
구조 기반 업무 단위별 제어 흐름과 조건 결정에 따른 결과를 테스트
내부 구조 및 복잡도를 검증(화이트박스 테스트)
제어 흐름, 조건 결정
명세 기반 동등 분할과 경계값 분석을 위하여 사용자의 입력, 출력, 내부 이벤트 등을 확인
목적 및 실행 코드 기반의 실행(블랙박스 테스트)
동등 분할, 경계값 분석
화이트박스 테스트 개발자 관점 / 내부구조와 동작검사
종류 : 기초 경로 테스트, 제어 흐름 테스트, 조건 테스트, 루프 테스트, 데이터 흐름 테스트, 분기 테스트
블랙박스 테스트 사용자 관점 / 명세(요구사항과 결과물 일치) 기반의 테스트
종류 : 균등 분할(동치분해), 한계값(경계값) 테스트, 원인 효과 그래프 테스트, 비교 테스트

 

3. 통합 테스트

  • 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 테스트
  • 빅뱅, 상향식, 하향식, 샌드위치, Central, Collaboration, 레이어 통합 등의 테스트가 있다.
구분 빅뱅(Big Bang) 상향식(Botton Up) 하향식(Top Down)
수행 방법 모든 모듈을 동시 통합 후 수행 최하위 모듈부터 점진적으로 상위 모듈과 함께 수행 최상위 모듈부터 하위 모듈들을 통합하며 수행
더미 모듈 x 드라이버 필요 스텁 필요
장점 단시간 테스트 가능
작은 시스템에 유리
장애 위치 파악 쉬움
모듈 개발 시간 낭비가 없음
장애 위치 파악 쉬움
이른 프로토타입 가능
중요 모듈의 선 테스트 기능
단점 장애 위치 파악 어려움
모든 모듈 개발
이른 프로토타입 어려움
중요 모듈이 마지막으로 테스트될 가능성 높음
많은 스텁이 필요
하위 모듈들의 불충분한 테스트 수행

 

드라이버 상향식 테스트 방식의 존재하지 않는 상위 모듈 간의 인터페이스 역할
스텁 하향식 테스트 방식의 작성이 쉬운 시험용 모듈

 

4. 시스템 테스트

  • 통합된 단위 시스템의 기능이 정삭적으로 수행되는지 테스트, 성능 및 장애 테스트
  • 환경 제한적 장애 관련 리스크 최소화(시스템 성능, 고객의 기능/비기능적인 요구사항 완벽하게 수행되도록)
  • 요구사항 명세서, 비즈니스 절차, 유스케이스, 리스크 분석 결과 등을 이용
기능적 요구사항 요구사항 명세서, 비즈니스 절차, 유스케이스 등 명세서 기반의 블랙박스 테스트
비기능적 요구사항 성능 테스트, 회복 테스트, 보안 테스트, 내부 시스템의 메뉴 구조 웹 페이지의 네비게이션 등의 구조적 요소에 대한 화이트박스 테스트
유스케이스 시스템의 동작을 사용자의 입장에서 표현한 시나리오
시스템에 관련한 요구사항을 알아내는 과정
유스케이스 다이어그램 시스템 간 상호작용 표현
시스템 범위, 엑터, 유스케이스, 관계

 

5.인수 테스트

  • 최종 사용자와 업무에 따른 이해관계자 등이 테스트 수행함으로써 개발된 제품에 대해 운영 여부를 결정하는 테스트
  • 실제 업무 적용 전에 수행
사용자 인수 테스트 비즈니스 사용자가 시스템 사용의 적절성 여부 확인
운영상의 인수 테스트 시스템 관리자가 시스템 인수 시 수행하는 테스트 활동
백업/복원 시스템, 재난 복구, 사용자 관리, 정기 점검 등 확인
계약 인수 테스트 계약상의 인수/검수 조건을 준수하는지 확인
규정 인수 테스트 정부 지침, 법규, 규정 등 규정에 맞게 개발하였는지 확인
알파 테스트 개발하는 조직 내 잠재 고객에 의해 테스트 수행
베타 테스트 실제 환경에서 고객에 의해 테스트 수행

 


6. 테스트 케이스

  • 명세 기반 테스트의 설계 산출물
  • 요구사항 준수 여부 확인용 입력값
  • 특정한 프로그램의 일부분 또는 경로에 따라 수행하거나, 특정한 요구사항을 준수하는지 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서
  • 장점 : 미리 설계하여 오류를 방지, 테스트 수행에 필요한 인력, 시간 등의 낭비를 축소
  • 작성 절차
    계획 검토 및 참조 문서 수집 → 내부 검토 및 우선순위 결정 → 요구사항 정의 → 테스트 설계와 방법 결정 → 테스트 케이스 정의 → 테스트 케이스 타당성 확인 및 유지보수 → 테스트 수행

 

7. 테스트 오라클

  • 사전에 정의된 참 값을 입력하여 비교
참 오라클 기대 결과 생성 후 오류 검출
샘플링 오라클 특정 입력 값의 기대 결과 제공
휴리스틱(추정) 오라클 샘플링 오라클을 개선한 오라클
확률/직관에 의한 예상 결과
일관성 검사 오라클 APP변경, 전후의 값 동일 여부 검증

 


 

8. 테스트 자동화

  • 테스트 자동화 : 자동화 도구를 활용하여 테스트 하는 것
  • 준비, 구현, 수행, 분석 등을 스크립트 형태로 구현
  • 장점 : 테스트 시간·인력 투입 최소화, 향상된 테스트 품질, 휴먼에러 줄일 수 있다.
  • 단점 : 테스트 도구 전문가 양성 또는 고용 필요, 초기 투자 필요, 비공개 상용 소프트웨어의 경우 고가, 유지관리 비용 높음.
휴먼에러(Human Error) 인간의 실수로 발생하는 에러

 

 

9. 테스트 도구의 평가 방법 및 요소

테스트 활동 테스트 도구 내용
테스트 계획 요구사항 관리 고객 요구사항 정의 및 변경 사항 관리
테스트 분석/설계 테스트 케이스 생성 테스트 기법에 따른 테스트 데이터 및 케이스 작성
커버리지 분석 대상 시스템에 대한 테스트 완료 범위의 척도
테스트 수행 테스트 자동화 기능 테스트 등 테스트 도구를 활용하여 자동화를 통한 테스트 효율성 제고
정적 분석 코딩 표준, 런타임 오류 등을 검증
동적 분석 대상 시스템 시뮬레이션을 통한 오류 검출
성능 테스트 가상 사용자를 인위적으로 생성하여 시스템 처리 능력 측정
모니터링  시스템 자원(CPU,Memory)의 상태 확인 및 분석 지원 도구
테스트 통제 형상 관리 테스트 수행에 필요한 다양한 도구 및 데이터 관리
테스트 관리 전반적인 테스트 계획 및 활동에 대한 관리
결함 추적/관리 테스트에서 발생한 결함 관리 및 협업 지원

커버리지는 소프트웨어 테스트에서 얼마나 많은 코드가 실행되었는지를 측정하는 지표

 

 

 

문제 풀어보기

 

01. 소프트웨어의 구조 또는 소프트웨어의 설계와 구성요소들 사이에서 유기적으로 관계를 표현하는 용어를 무엇이라 하는지 쓰시오.

 

답 : 소프트웨어 아키텍처

 

 

02. 다음 보기 중 테스트의 7가지 원칙으로 올바르지 않은 것?

ㄱ. 초기테스트
ㄴ. 완전한 테스트는 불가능하다.
ㄷ. 살충제 패러독스
ㄹ. 테스트는 결함을 제거하기 위해 존재한다.

 

답 :

 

 

03. 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 테스트하는 것으로, 하나의 프로세스가 완성된 경우 부분적으로 통합 테스트를 수행하는 테스트를 의미한다. 테스트 방식으로는 상향식, 하향식, 빅뱅 등이 있는 테스트 방식을 무엇이라고 하는지 쓰시오.

 

답 : 통합 테스트

 

 

04. 일반적으로 최종 테스트를 수행함으로써 개발된 제품에 대해 운영 여부를 결정하는 테스트를 무엇이라고 하는지 쓰시오.

 

답 : 인수 테스트

 

 

05. 다음 보기에서 설명하는 용어를 작성하시오.

특정 프로그램 경로를 실행하거나 검증하는 것과 같이 목표를 달성하기 위한 테스트를 정의하는 항목에 대한 명세 기반 테스트의 산출물이다.

 

답 : 테스트 케이스

 

 

06. 다음 빈칸에 들어가는 테스트 케이스의 작성 절차를 작성하시오.

 

계획 검토 및 참조 문서 수집
내부 검토 및 우선순위 결정
(                               )
테스트 설계와 방법 결정
테스트 케이스 정의
테스트 케이스 타당성 확인 및 유지보수
테스트 수행

 

답 : 요구사항 정의

 

 

07. 다음 설명하는 테스트 오라클의 유형을 작성하시오.

특정한 입력값들에 대해서만 기대하는 결과를 제공하는 샘플링 오라클을 개선한 오라클이며, 특정 입력값에 대해 올바른 결과를 제공하고 나머지는 기대값으로 처리한다.

 

답 : 휴리스틱 오라클(추정 오라클)

 

 

08. 다음 보기에서 나타내는 용어를 작성하시오.

인간이 일으키는 사고로 정의할 수 있으며, 테스트 자동화를 통하여 이 오류 및 테스트 시간과 인력 투입의 부담감을 줄일 수 있고 보다 정밀한 테스트가 가능하다.

 

답 : 휴먼에러(Human Error)

 

 

09. 다음 중 테스트 자동화 수행 시의 고려사항으로 올바르지 않은 것을 모두 고르면?

ㄱ. 불완전한 테스트를 초래할 수 있기 때문에, 프로젝트 초기에 적절한 투입시기와 계획을 수립해야 한다.
ㄴ. 도구의 한계성으로 인해 용도에 맞는 적절한 도구를 사용해야 한다.
ㄷ. 테스트 절차를 고려하여 재사용 및 불가능한 테스트 프로그램도 포함하여야 한다.
ㄹ. 설계 기준을 고려하여 반복적인 빌드에서 스크립트 재사용성이 가능해야 한다.

 

답 :

728x90