소프트웨어 테스팅에는 여러 레벨(범위 기준)과 유형(목적 기준)이 있습니다. 이를 이해하는 것 — unit, integration, end-to-end; 기능 vs 비기능 — 은 품질의 다양한 측면을 다루는 완전한 테스팅 접근법을 구축하는 데 도움이 됩니다.
테스팅 레벨 (범위 기준)
UNIT → 개별 함수/메서드를 격리 상태로 (가장 작고, 빠르고, 수가 많음)
INTEGRATION → 여러 unit/컴포넌트가 함께 동작 (예: 코드 + 데이터베이스, 서비스들)
END-TO-END (E2E) → 사용자 관점에서 앱 전체 (전체 흐름, 실제 UI/시스템을 통해)
— 가장 넓고, 가장 느림
SYSTEM → 완전히 통합된 시스템; ACCEPTANCE → 비즈니스 요구사항 충족
기능 vs 비기능
기능(FUNCTIONAL) → 올바른 일을 하는가? (정확한 동작, 기능 작동)
→ unit, integration, e2e, smoke, regression, sanity 테스트
비기능(NON-FUNCTIONAL) → 얼마나 잘 동작하는가? (정확성을 넘어선 품질):
성능(속도, 부하), 보안, 사용성, 신뢰성, 호환성 등
