본문으로 바로가기

테스트- 테스트 레벨

category Test Engineer & QA 2019. 8. 3. 21:01

소프트웨어 개발 모델

테스팅은 소프트웨어 개발 활동과 동떨어진 것이 아니다. 함께 해야하며 개발 모델에 따라 테스트 접근 법을 달리한다.

1) V-모델(순차적 개발 모델)

단 - 통 - 시 - 인

  • 컴포넌트(단위) 테스팅
  • 통합 테스팅
  • 시스템 테스팅
  • 인수 테스팅

제품 특성에 따라 V모델의 개발 단계, 테스트 레벨을 더 많이 구성할 수 있고 더 적게 구성할 수도 있다.

예를 들어서 컴포넌트 테스팅 이후 컴포넌트 통합 테스팅을 구성할 수 있다.

 

2) 반복적-점증적 개발 모델

이 모델은 요구사항 확립, 설계, 구현, 테스트를 짧게 연속적으로 반복 진행한다.

프로토타이핑, RUP , 에자일 개발 모델이 있다.

부분 시스템은 점증적으로 커지기 때문에 계속 테스트가 진행되어야한다.

 

모델 상관 없이 진행되어야하는 테스팅 요건들은 아래와 같다.

  • 모든 개발활동은 테스팅 활동을 동반한다
  • 테스트 레벨은 각 목적이 있다.
  • 개발활동하는 동안 테스트 레벨에 맞는 테스트 분석 설계가 이루어져야한다.
  • 개발 문서 초안이 작성되면 테스터들은 리뷰활동에 무조건 참가해야한다.

테스트 레벨

1) 컴포넌트 테스팅

데이터 베이시스

  • 컴포넌트 요구사항
  • 상세 설계
  • 코드

일반적인 테스트 대상

  • 컴포넌트
  • 프로그램
  • 데이터 변환/마이그레이션 프로그램
  • 데이터베이스 모듈

컴포넌트 테스팅은 소프트웨어 모듈, 프로그램, 클래스, 객체 내 결함을 찾는다.

메모리 유출 검색, 강건성 테스트, 구조적 테스팅(분기 커버리즈) 등 비기능적 테스팅을 포함한다.

독립적으로 수행이 가능하고 개발자가 직접 코드를 중심으로 참여한다. 결함을 발견하면 바로 수정하고 기록은 생략한다. 코딩 전 테스트 케이스를 준비하고 자동화하는 방법도 존재한다.

 

2) 통합 테스팅

데이터 베이시스

  • 소프트웨어와 시스템 설계
  • 아키텍처
  • 워크플로우
  • 유즈케이스

일반적인 테스트 대상

  • 서브시스템
  • 데이터베이스 구축
  • 기반 환경
  • 인터페이스(상호작용)
  • 시스템 구성과 구성 데이터

통합 테스팅은 컴포넌트 개개인이 아닌 컴포넌트 간의 인터페이스를 테스트한다. 시스템의 각기 다른 부분과 상호 연동하는 동작을 테스팅한다.

 

통합테스팅은 각기 하나 이상 레벨이 있다.

  • 컴포넌트 통합 테스팅: 소프트웨어 컴포넌트 사이 상호작용 테스팅 => 컴포넌트 테스팅 이후 실행
  • 시스템 통합 테스팅: 시스템 간의 상호작용을 테스팅 => 시스템 테스팅 이후 실행

통합 범위가 커서는 안된다. 또한 빅뱅 전략보다는 순차적이고 체계적인 통합 전략을 사용하자.

 

통합 그 자체에 집중하고 컴포넌트나 시스템 각각 개개인적으로 집중하지는 말자.

 

3) 시스템 테스팅

데이터 베이시스

  • 시스템 및 소프트웨어 요구사항
  • 유즈케이스
  • 기능 명세
  • 리스크 분석 레포트

테스트 대상

  • 시스템, 사용자 메뉴얼
  • 시스템 구성 및 구성 데이터

시스템 테스팅은 전체 시스템 또는 제품의 동작에 대해 테스트 하는 것이다.

환경특성 장애 리스크를 최소화 하기 위해서는 실제 최종 사용 환경, 이와 유사 환경에서 실행되어야한다.

비기능, 기능 요구사항, 데이터 품질 특성 등을 모두 검증해야한다.

 

블랙박스 기법과 화이트박스 기법 모두 사용된다.

 

4)인수 테스팅

고객이나 사용자가 전담하여 수행한다.

기능, 비기능적 특성에 대한 확신을 얻는 것이다.

실제 시스템을 배포하거나 준비가 되었는지 확인한다. 인수 테스트는 최종 단계가 아니다.

이를테면 컴포넌트 테스팅 동안에 수행될 수 도 있다.

  • 사용자 인수 테스팅: 일반적 비즈니스 사용자가 사용 적절성을 확인한다.
  • 운영상의 인수 테스팅: 시스템 관리자가 테스트한다. (백업, 복원, 재난 복구, 사용자 관리, 유지보수, 데이터 마이그레이션 보안 취약성 점검 등)
  • 계약 인수 테스팅, 규정 인수 테스팅: 맞춤 개발 소프트웨어가 계약상 인수 통과 조건을 준수하는지 확인
  • 알파 테스팅 과 베타 테스팅: 알파테스팅은 개발 조직 내에서 수행된다(개발자는 X) 베타테스팅은 실제 환경내 사용자 또는 잠정적인 고객이 테스트한다.

 

 

'Test Engineer & QA' 카테고리의 다른 글

테스트 - 테스트 설계 기법  (0) 2019.08.06
테스트- 정적기법  (0) 2019.08.05
테스트 - 테스트유형  (0) 2019.08.05
테스트 프로세스  (0) 2019.08.03