ISTQB 2.3 테스트 유형 ~ 2.4 유지보수 테스팅

2-3. 테스트 유형

1. 테스트 유형의 기본 개념

  • 테스트 유형은 테스트 목적에 따라 구분
    • 소프트웨어가 수행하는 기능에 대한 테스팅
    • 호환성, 신뢰성, 사용성과 같은 비기능적인 품질 특성 테스팅
    • 소프트웨어나 시스템의 구조나 아키텍처에 대한 테스팅
    • 변경 내용에 관련된 테스팅(확인 테스팅, 리그레션 테스팅)
  • 기능적, 구조적 테스팅은 SW 모델 활용
  • 기능적 테스팅 → 명세 기반 기법(블랙 박스)
    • 프로세스 흐름 모델, 상태 전이 모델, 평문 언어 명세 이용
  • 구조적 테스팅 → 구조 기반 기법(화이트 박스)
    • 제어 흐름 모델, 메뉴 구조 모델 이용

2. 기능 테스팅(Functional testing)

  • 문서화 되어 있거나 테스터가 알고 있는 기능과 특징, 그리고 그 것들과 특별한 시스템과의 상호 운용성을 수행하며 모든 테스트 레벨에서 수행(시스템이 수행하는 무엇(what)을 의미)
  • 명세 기반 기법(블랙 박스 테스팅)을 이용해서 테스트 조건과 테스트 케이스를 도출하고 소프트웨어의 외부적인 행동을 고려
  • 보안성 테스팅
    • 악의적인 코드(바이러스 등)와 같은 외부로부터의 위협을 감지해 내는 것과 관련이 있는 기능을 확인
    • 보안 정책 확인, 트랩도어(진입점) 파악, 보안 관련 평가(가용성, 무결성, 기밀성, 부인 방지 등)

3. 비기능 테스팅

  • 소프트웨어 제품 특성 테스팅
  • 어떻게(How) 동작하는가를 테스팅
  • 성능 테스팅, 부하 테스팅, 스트레스 테스팅, 사용성 테스팅, 유지보수성 테스팅, 신뢰성 테스팅 그리고 이동성 테스팅 등을 포함한 개념
  • 전문적 지식인과 도구 필요
  • 모든 테스트 레벨에서 수행
  • 다양한 척도 또는 비율로 정량화 가능한 SW 품질 특성 측정
  • 소프트웨어 품질 모델 참조(ISO/IEC 9126)
  • 신뢰성, 사용성, 효율성, 유지보수성, 이식성이라는 품질 특성으로 분류

4. 구조적 테스팅

  • 특정 유형의 구조에 대한 커버리지를 평가하여 테스팅의 보장성 또는 충분함을 측정하는 것이 목적인 테스트 유형
  • 커버리지
    • 시스템 또는 SW구조가 테스트 스위트(test suite)에 의해 테스트된 정도
    • 테스팅의 충분함을 측정(100 %로 표시 → 추가 테스트 설계)
  • 모든 테스트 레벨에서 수행 가능
    • 구조적 테스트 기법(화이트 박스 테스트)
    • 시스템 아키텍처에 기반을 두고 수행
    • 비즈니스 모델이나 메뉴 구조(인수 or 시스템 테스트 레벨)

5. 확인/리그레션 테스팅

  • 확인(confirmation/re-testing) 테스팅
    • 결함이 발견되고 수정된 후에 SW는 원래의 결함이 성공적으로 제거되었는지 확인하기 위해 다시 테스트하는 경우
    • 결함을 수정하기 위한 디버깅은 테스팅이 아닌 개발 활동
  • 리그레션(regression) 테스팅
    • 이미 테스트된 프로그램의 테스팅을 반복
    • 결함 수정 이후 변경의 결과로 새롭게 만들어지거나 이전 결함 으로 인해 발견되지 않았던 다른 결함을 발견
    • SW 또는 환경이 변경되면 실시
    • 모든 테스트 레벨에서 수행
    • 리그레션 테스팅 → 반복적인 성향 → 자동화 대상

2-4. 유지보수 테스팅

1. 유지보수 테스팅

  • 이미 운영되고 있는 시스템에서 수행되며, SW나 시스템이 변경, 단종되었거나 마이그레이션될 때 발생
  • 변경에 대한 유지보수 테스팅
    • 계획된 개선을 위한 변경, 수정에 의한 변경과 환경의 변경
    • 계획된 OS, DB 업그레이드, OS의 새로 드러난 취약점 패치
  • 마이그레이션에 대한 유지보수 테스팅
    • 변경된 SW에 대한 운영 테스트 + 새로운 환경에서의 운영 테스트
    • 변경된 것 + 변경되지 않은 시스템 요소(영향도 분석 후)에 대한 방대한 리그레션 테스팅 고려
  • 범위는 변경 범위 및 기존 시스템의 리스크와 크기 고려