- 상위 문서: 소프트웨어 테스트
- System Test
- 개발 프로젝트 범위에서 정의된 전체 시스템 또는 제품의 동작에 대해 수행하는 소프트웨어 테스트
- 단위 테스트, 통합 테스트 등에서 발견하지 못한 시스템 전반의 구조적 제약을 찾는다.
- 특정 환경에서 발생할 수 있는 '환경특성 장애(Environment-specific Failure)'을 찾는다.
특징
- 기능 및 비기능 요구사항을 모두 검증한다.
- 요구사항(RFP, SRS)을 기반으로 테스트한다.
- 독립적인 QA 조직이 수행하는 것이 권장된다.
- 실무적으로 SI 업체의 테스트 결과를 기반으로, 발주자 측에서 한번 더 테스트한다.
- 출시 여부를 결정하는 '검수' 테스트 형태로 이루어지기도 하며, 이 경우 QA 조직의 독립성이 보장되어야 한다.
종류
기능 요구사항
- 주로 기능 요구사항을 기준으로 블랙박스 테스트를 수행한다.
- 결정 테이블(Decision table)이나 요구사항 추적표(Requirement Traceability Matrix)을 이용할 수 있다.
비기능 요구사항
종류 | 내용 | 예시 |
---|---|---|
회복 테스트
(Recovery Test) |
유사시 시스템 자동으로 재초기화, 데이터 회복 등을 수행하는지 확인 |
Power Off |
보안 테스트
(Security Test) |
불법적인 침투로부터 기밀성, 무결성, 가용성을 보호하는지 확인 |
SQL Injection, CSRF |
강도 테스트
(Stress Test) |
비정상적인 값, 양, 빈도 등의 스트레스에 대한 정상 동작 확인 |
Overflow, 부하 테스트 |
민감도 테스트
(Sensitivity Test) |
부적절한 결과를 일으키는 데이터 조합을 검출 |
Data Type, 경계값 검검 |
성능 테스트
(Performance Test) |
시스템 효율성 진단. 자원 이용, 처리시간 등 성능 확인 |
Throughput, TPS |
테스트의 기준
- 상위 레벨의 테스트, 개발 산출물을 근간으로 한다.
- 리스크 분석서
- 요구사항 명세서
- 비즈니스 프로세스
- 유즈 케이스
- 기타 비즈니스 레벨의 시스템 동작 명세
- OS 미 시스템 리소스와의 상호작용 명세
참고 문헌
- 개발자도 알아야할 소프트웨어 테스팅 실무, STA