본문 바로가기

정보처리기사 (필기)/2. 소프트웨어 개발

[정보처리기사] 2-6. 개발단계에 따른 애플리케이션 테스트 / 테스트 하네스

1. 단위 테스트 (Unit)

  • 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 진행
  • 화이트박스, 블랙박스 사용
  • 주로 구조 기반 테스트

2. 통합 테스트 (Intergration)

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

3. 시스템 테스트 (System)

  • 개발된 소프트웨어가 해당 시스템에서 완벽하게 수행되는 가를 테스트
  • 기능적 요구사항과 비기능적 요구사항 각각을 만족하는지 테스트

4. 인수 테스트 (Acceptance)

  • 개발한 소프트웨어가 사용자의 요구사항을 충족하는가 테스트
  • 사용자가 직접 테스트함
  • 사용자 인수 테스트 : 사용자가 시스템 사용 적절성 여부 확인
  • 운영상의 인수 테스트 :  시스템 관리자가 백업/복원 시스템, 재난 복구, 사용자 권리 등 테스트
  • 계약 인수 테스트 : 계약상의 인수/검수 조건을 준수하는지 여부 확인
  • 규정 인수 테스트 : 규정에 맞게 개발되었는지 확인
  • 알파 테스트 : 개발자 앞에서 사용자가 행하는 테스트, 통제된 환경에서 검사
  • 베타 테스트 : 선정된 최종 사용자가 여러명 사용자 앞에서 행하는 테스트, 개발자에 의해 제어되지 않은 환경에서 진행

5. 통합 테스트

5-1) 비 점진적 통합 방식

  • 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트하는 방법
  • 소규모 프로그램에 유리, 단시간 내 테스트 가능
  • 오류 발견 및 장애 위치 파악 및 수정이 어려움
  • 빅뱅 통합 테스트 방식

5-2) 점진적 통합 방식

  • 모듈 단위로 단계적으로 통합하면서 테스트하는 방법
  • 하향식, 상향식, 혼합식 통합방식이 있음
  • 오류수정 용이

5-3) 하향식 통합 테스트

  • 프로그램 상위-하위 모듈 방향으로 통합하면서 테스트하는 기법
  • 깊이우선, 넓이우선 통합법
  • 테스트 초기부터 사용자에게 시스템 구조 보여줄 수 있음
  • 상위 모듈에서는 테스트케이스 사용하기 어려움 있음
  • stub 사용

5-4) 상향식 통합 테스트

  • 프로그램의 하위-상위 모듈 방향으로 통합하면서 테스트하는 기법
  • 클러스터와 드라이버 사용

5-5) 혼합식 통합 테스트

  • 상향식, 하향식을 혼합하여 테스트, 샌드위치식 통합이라고 함

5-6) 회귀 테스팅 

  • 이미 완료된 테스트를 반복하는 것
  • 오류가 있는지 다시한번 확인하는 테스트

6. 테스트 하네스

  • 테스트 드라이버 : 컴포넌트나 시스템을 제어하거나 호출하는 컴포넌트를 대체하는 소프트웨어 컴포넌트 또는 테스트 툴
  • 테스트 스텁 : 의존적인 컴포넌트 개발하거나 테스트 할 때 
  • 테스트 슈트 : 테스트 케이스의 집합
  • 테스트 케이스 : 테스트 항목 명세서
  • 테스트 스크립트 : 테스트 실행 절차에 대한 명세서
  • 목 오브젝트 : 행위를 조건부로 입력해두면 예정된 행위 수행하는 객체