시스템 테스트

From CS Wiki
System Test
개발 프로젝트 범위에서 정의된 전체 시스템 또는 제품의 동작에 대해 수행하는 소프트웨어 테스트
  • 단위 테스트, 통합 테스트 등에서 발견하지 못한 시스템 전반의 구조적 제약을 찾는다.
  • 특정 환경에서 발생할 수 있는 '환경특성 장애(Environment-specific Failure)'을 찾는다.

특징[edit | edit source]

  • 기능 및 비기능 요구사항을 모두 검증한다.
  • 요구사항(RFP, SRS)을 기반으로 테스트한다.
  • 독립적인 QA 조직이 수행하는 것이 권장된다.
    • 실무적으로 SI 업체의 테스트 결과를 기반으로, 발주자 측에서 한번 더 테스트한다.
    • 출시 여부를 결정하는 '검수' 테스트 형태로 이루어지기도 하며, 이 경우 QA 조직의 독립성이 보장되어야 한다.

종류[edit | edit source]

기능 요구사항[edit | edit source]

비기능 요구사항[edit | edit source]

종류 내용 예시
회복 테스트

(Recovery Test)

유사시 시스템 자동으로 재초기화, 데이터 회복 등을 수행하는지 확인

Power Off
보안 테스트

(Security Test)

불법적인 침투로부터 기밀성, 무결성, 가용성을 보호하는지 확인

SQL Injection, CSRF
강도 테스트

(Stress Test)

비정상적인 값, 양, 빈도 등의 스트레스에 대한 정상 동작 확인

Overflow, 부하 테스트
민감도 테스트

(Sensitivity Test)

부적절한 결과를 일으키는 데이터 조합을 검출

Data Type, 경계값 검검
성능 테스트

(Performance Test)

시스템 효율성 진단. 자원 이용, 처리시간 등 성능 확인

Throughput, TPS

테스트의 기준[edit | edit source]

상위 레벨의 테스트, 개발 산출물을 근간으로 한다.
  • 리스크 분석서
  • 요구사항 명세서
  • 비즈니스 프로세스
  • 유즈 케이스
  • 기타 비즈니스 레벨의 시스템 동작 명세
  • OS 미 시스템 리소스와의 상호작용 명세

참고 문헌[edit | edit source]

  • 개발자도 알아야할 소프트웨어 테스팅 실무, STA