📌 개발 단계별 애플리케이션 테스트 정리 🚀
소프트웨어 개발 단계에 따라 테스트의 유형이 다르게 적용됩니다.
이를 테스트 레벨(Test Level)이라고 하며, V-모델을 기반으로 설명할 수 있습니다.
1️⃣ 테스트 레벨 개요 (V-모델)
소프트웨어 개발 단계마다 진행되는 테스트의 흐름은 다음과 같습니다.
개발 단계 | 테스트 단계 | 설명 |
---|
요구사항 분석 | 인수 테스트 | 사용자의 요구사항이 충족되는지 검증 |
시스템 설계 | 시스템 테스트 | 전체 시스템이 정상적으로 작동하는지 검증 |
소프트웨어 설계 | 통합 테스트 | 여러 모듈을 결합하여 오류를 찾는 테스트 |
모듈 설계 | 단위 테스트 | 개별 모듈(컴포넌트)의 동작을 확인 |
📌 V-모델이란?
소프트웨어 개발 프로세스를 왼쪽(개발 단계)과 오른쪽(테스트 단계)로 연결하여,
각 개발 단계에서 대응되는 테스트가 이루어지는 방식을 의미합니다.
2️⃣ 개발 단계별 테스트 상세 설명
✅ 단위(Unit) 테스트
- 가장 작은 단위(모듈)에서 수행하는 테스트
- 코딩 직후에 수행
- 주요 검증 대상:
- 인터페이스 오류
- 자료 구조 오류
- 경계 조건 오류
- 실행 흐름 오류
- 화이트박스 테스트 방식을 주로 사용
- 자동화된 테스트 도구 사용 (ex. JUnit, NUnit, PyTest)
✅ 통합(Integration) 테스트
- 모듈들이 결합되었을 때, 정상적으로 동작하는지 확인
- 모듈 간 인터페이스와 데이터 흐름을 검증
- 주로 사용하는 방식:
- 빅뱅(Big Bang) 테스트 → 한꺼번에 모든 모듈을 결합하여 테스트
- 점진적 테스트 → 모듈을 단계적으로 결합하며 테스트
- 상향식(하위 모듈부터 결합)
- 하향식(상위 모듈부터 결합)
✅ 시스템(System) 테스트
- 개발된 소프트웨어가 전체 시스템 환경에서 정상 동작하는지 검증
- 사용자 환경과 유사한 환경에서 진행
- 기능적 테스트(블랙박스 테스트) & 비기능적 테스트(화이트박스 테스트)
- 주요 검증 대상:
✅ 인수(Acceptance) 테스트
- 최종 사용자 관점에서 소프트웨어가 요구사항을 충족하는지 검증
- 실제 배포 전 마지막 테스트
- 주요 종류:
- 사용자 인수 테스트 (UAT) → 실제 사용자가 검증
- 운영상 인수 테스트 (OAT) → 시스템 운영자가 검증
- 계약 인수 테스트 → 계약 조건 충족 여부 검증
- 규정 인수 테스트 → 법적 규정을 준수했는지 검증
- 알파(Alpha) 테스트 → 개발자 환경에서 사용자 테스트
- 베타(Beta) 테스트 → 실제 사용자 환경에서 테스트
📌 알파 vs 베타 테스트 차이점
| 구분 | 알파 테스트 | 베타 테스트 |
|------|------------|------------|
| 테스트 장소 | 개발자의 장소 | 실제 사용자 환경 |
| 테스터 | 내부 직원, 고객 | 최종 사용자 |
| 개발자 개입 | 개발자가 함께 참여 | 개발자 없이 독립적으로 진행 |
| 목적 | 주요 오류 발견 | 실사용 환경에서의 오류 탐색 |
3️⃣ 핵심 요약
1️⃣ 테스트 레벨은 개발 단계별로 진행된다.
- 단위 테스트 → 개별 모듈 검증
- 통합 테스트 → 모듈 간 연결 검증
- 시스템 테스트 → 전체 시스템 검증
- 인수 테스트 → 사용자 요구사항 검증
2️⃣ V-모델에 따라 각 개발 단계마다 대응되는 테스트가 존재한다.
3️⃣ 알파 테스트(개발 환경)와 베타 테스트(실제 사용자 환경)는 다르다.
4️⃣ 시험 문제 대비 → 용어 및 개념을 정확히 숙지하고, 단계별 차이점을 이해하면 좋습니다! 🚀