본문 바로가기

자격증 준비/정보처리기사필기 - 2과목(소프트웨어 개발)

[정보처리기사 필기] 2과목 - 테스팅(2)

728x90
반응형

블랙박스 테스팅(Black Box Testing)

  • 프로그램 구조를 고려하지 않음
  • 테스트 케이스는 프로그램이나 모듈의 요구나 명세를 기초로 결정
  • 입력출력에 대해 알아야 함
  • 기능 테스트
  • 가능한 모든 기능을 전부 테스트 하는  것이 좋음
  • 종류

 

화이트 박스 테스팅(White Box Testing)

  • 모듈의 논리적인 구조를 체계적으로 점검하는 구조적 테스팅
  • 모듈 안의 작동을 자세히 관찰, 각각 라인이 제대로 수행되는지를 철저하게 시험
  • 종류

  • 검증 기준(Test Coverage)
    • 테스트를 어느 정도 완벽히 수행할 것인가의 기

 

단위 테스트(Unit Test)

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

  • 인터페이스, 외부적 I/O, 자료 구 조, 독립적 기초 경로, 오류처리 경로, 경계 조건 등을 검사
  • 사용자의 요구사항을 기반으로 한 기능 성 테스트를 최우선으로 수행
  • 구조 기반 테스트와 명세 기반 테스트로 나뉘지만 주로 구조 기반 테스트를 시행
  • 발견 가능한 오류
    • 알고리즘 오류에 따른 원치 않는 결과
    • 탈출구가 없는 반복문의 사용
    • 틀린 계산 수식에 의한 잘못된 결과
  • 단위 모듈의 구현 과정
    • 단위 기능 명세서 작성 -> 입출력 기능 구현 -> 알고리즘 구현
  • IPC(Inter-Process Communication)
    • 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로, 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능
    • IPC의 대표 메소드 5가지
Shared Memory 다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스 간 통신을 수행
Socket 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스들 간 통신을 수행
Semaphores 공유 자원에 대한 접근 제어를 통해 프로세스 간 통신을 수행
Pipes&named Pipes - Pipe 라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신을 수행

- 하나의 프로세스가 Pipe를 이용 중이라면 다른 프로세스는 접근 할 수 없음
Message Queueing 메시지가 발생하면 이를 전달하는 형태로 프로세스 간 통신을 수행

 

통합 테스트(Integration Test)

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

 

시스템 테스트(System Test)

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

  • 환경적인 장애 리스크를 최소화하기 위해서는 실제 사용 환경과 유사하게 만든 테스트 환경에서 테스트를 수행
  • 시스템 테스트는 기능적 요구사항과 비기능적 요구사 항으로 구분하여 각각을 만족하는지 테스트

 

인수 테스트(Acceptance Test)

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

  • 인수 테스트는 개발한 소프트웨어를 사용자가 직접 테스트
  • 인수 테스트에 문제가 없으면 사용자는 소프트웨어를 인수하게 되고, 프로젝트는 종료
  • 인수 테스트의 종류

 

하향식과 상향식 통합 테스트

하향식 통합 테스트
(Top Down Integration Test)
상향식 통합 테스트
(Bottom Up Integration Test)
프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트
- 주요 제어 모듈을 기준으로 하여 아래 단계로 이동하면서 통합, 이때     우선 통합법이나 넓이 우선 통합법을 사용
- 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있음
- 상위 모듈에서는 테스트 케이스를 사용하기 어려움
- 가장 하위 단계의 모듈부터 통합 및 테스트가 수행
- 스텁(Stub)은 필요하지 않지만, 하나의 주요 제어 모듈과 관련된 종     속 모듈의 그룹인 클러스터(Cluster)가 필요 

 

드라이버와 스텁

 

회귀 테스팅(Regression Testing)

이미 테스트된 프로그램의 테스팅을 반복하는 것

통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트

  • 수정한 모듈이나 컴포넌트가 다른 부분에 영향을 미치는지 오류가 생기지 않았는지 테스트하여 새로운 오류가 발생하지 않음을 보증하기 위해 반복 테스트
  • 모든 테스트 케이스를 이용해 테스팅하는 것이 가장 좋음
  • 시간 비용이 많이 필요 -> 기존 테스트 케이스 중 변경된 부분을 테스트할 수 있는 테스트 케이스만을 선정하여 수행

 

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

순서

테스트 계획 - 프로젝트 계획서, 요구 명세서 등을 기반으로 테스트 목표를 정의하고 테스트 대상 및 범위를 결정
테스트 분석 및 디자인 - 테스트의 목적과 원칙을 검토, 사용자의 요구 사항을 분석
테스트 케이스 및 시나리오 작성 - 테스트 케이스의 설계 기법에 따라 테스트 케이스를 작성, 검토 및 확인 후 테스트 시나리오 작성
테스트 수행 - 테스트 환경 구축 후 테스트 수행
- 테스트의 실행 결과를 측정하여 기록
테스트 결과 평가 및 리포팅 - 테스트 결과를 비교 분석하여 테스트 결과서를 작성
결합 추적 및 관리 - 테스트를 수행한 후 결함이 어디에서 발생했는지, 어떤 종류의 결함인지 등 결함을 추적하고 관리

 

테스트 시나리오(Test Scenario)

테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스들을 묶은 집합

테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서

  • 테스트 시나리오에는 테스트 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등이 설정

 

테스트 오라클(Test Oracle)

테스트 오라클은 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동을 말함

  • 테스트 오라클은 결과를 판단하기 위해 테스트 케이스에 대한 예상 결과를 계산하거나 확인
  • 종류

 

테스트 자동화 도구

개념

  • 테스트 자동화는 사람이 반복적으로 수행하던 테스트 절차를 스크립트 형태로 구현하는 자동화 도구를 적용함으로써 쉽고 효율적으로 테스트를 수행할 수 있도록 한 것

도구의 유형

 

테스트 하네스(Test Harness) 구성 요소

테스트 드라이버(Test Driver) - 테스트 대상의 하위 모듈을 호출, 매개변수를 전달, 모듈 테스트 수행 후의 결과를 도출하는 도구
테스트 스텁(Test Stub) - 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
- 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈
테스트 슈트(Test Suites) - 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
테스트 케이스(Test Case) - 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값
- 실행 조건, 기대 결과 등으로 만들어진 테스트 케이스의 집합
테스트 스크립트(Test Script) - 자동화된 테스트 실행 절차에 대한 명세서
목 오프젝트(Mock Object) - 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체
728x90
반응형