Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

공부해보잠

애플리케이션 테스트의 분류 본문

자격증/정보처리

애플리케이션 테스트의 분류

heejk 2025. 2. 1. 23:43
프로그램 실행 여부에 따른 테스트

애플리케이션을 테스트할 때 프로그램의 실행 여부에 따라 정적 테스트(Static Testing)와 동적 테스트(Dynamic Testing)로 구분됩니다.

테스트 유형 설명 특징
정적 테스트 (Static Testing) 프로그램을 실행하지 않고 명세서, 소스 코드 등을 분석하여 결함을 찾는 테스트 - 개발 초기 단계에서 오류를 발견하여 비용 절감 가능 
- 코드 검토(Code Review), 워크스루(Walkthrough), 인스펙션(Inspection) 등을 포함 
- 소프트웨어의 논리적 오류나 구조적 문제를 조기에 식별
동적 테스트 (Dynamic Testing) 프로그램을 실제로 실행하여 오류를 찾는 테스트 - 프로그램을 실행하여 입력값과 출력값을 검증 
- 소프트웨어 개발의 모든 단계에서 수행 가능 
- 블랙박스 테스트(Black-box Testing), 화이트박스 테스트(White-box Testing) 포함

 

  • 정적 테스트는 코드 실행 없이 검토 및 분석을 통해 결함을 찾는 방식으로, 코드 품질 유지와 문서화 과정에서 중요한 역할을 합니다.
  • 동적 테스트는 실제 실행을 통해 오류를 발견하는 방식으로, 기능적 결함을 탐지하는 데 효과적입니다.
  • 정적 테스트는 주로 개발 초기에, 동적 테스트는 개발 후반부와 배포 전에 집중적으로 수행됩니다.

테스트 기반(Test Bases)에 따른 테스트

애플리케이션을 테스트할 때 어떤 기준을 기반으로 수행하느냐에 따라 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트로 구분됩니다.

테스트 유형 설명 특징 종류
명세 기반 테스트 (Specification-Based Testing, Black-Box Testing) 사용자의 요구사항을 기반으로 테스트 케이스를 작성하여 기능을 검증하는 테스트 - 내부 구조를 고려하지 않고, 입력-출력 중심으로 테스트 수행
- 블랙박스 테스트 방식 사용
- 기능 요구사항이 정확히 구현되었는지 확인
등등 분할, 경계 값 분석
구조 기반 테스트 (Structure-Based Testing, White-Box Testing) 소프트웨어 내부 코드의 논리 흐름에 따라 테스트 케이스를 작성하여 검증하는 테스트 - 코드 커버리지 기준으로 테스트 수행
- 화이트박스 테스트 방식 사용
- 소스 코드와 직접 연결된 테스트
구문 기반, 결정 기반, 조건 기반
경험 기반 테스트 (Experience-Based Testing) 테스터의 경험과 직관을 바탕으로 수행하는 테스트 - 요구사항 문서 없이도 수행 가능
- 과거 유사 프로젝트에서 발견된 결함을 고려하여 테스트
- 탐색적 테스팅(Exploratory Testing)과 오류 추정(Error Guessing) 기법 활용
에러 추정, 체크 리스트, 탐색적 테스팅

 

  • 명세 기반 테스트는 사용자의 요구사항을 중심으로 검증하며, "기능이 정상적으로 동작하는가?"에 초점을 맞춥니다.
  • 구조 기반 테스트는 프로그램의 내부 로직과 코드의 흐름을 분석하여 "모든 코드가 정상적으로 실행되는가?"를 확인합니다.
  • 경험 기반 테스트는 문서화되지 않은 예외 사항이나 예상치 못한 오류를 발견하는 데 유용하며, 베테랑 테스터가 주로 활용합니다.

시각에 따른 테스트

애플리케이션을 테스트할 때 누구를 기준으로 테스트를 수행하는가에 따라 검증(Verification) 테스트 확인(Validation) 테스트로 구분됩니다.

테스트 유형설명특징

테스트 유형 설명 특징
검증 테스트 (Verification) 개발자의 시각에서 제품의 생산 과정을 테스트하는 방식 - 요구사항 명세서 및 설계 문서를 기반으로 테스트 수행
- 제품이 명세서대로 구현되었는지를 확인
확인 테스트 (Validation) 사용자의 시각에서 제품의 결과물을 테스트하는 방식 - 제품이 사용자의 요구사항을 충족하는지 확인
- 최종 제품이 정상적으로 동작하는지 테스트

 

  • 검증(Verification): 제품이 **제대로 만들어지고 있는가?**에 초점을 둔 테스트 (개발자의 관점)
  • 확인(Validation): 제품이 **사용자가 원하는 대로 동작하는가?**를 테스트 (사용자의 관점)

검증 없이 확인만 수행하면? → 제품의 명세서와 다른 기능이 구현될 수 있음
확인 없이 검증만 수행하면? → 사용자의 요구사항을 충족하지 못할 가능성이 있음

검증과 확인은 함께 수행해야 완성도 높은 소프트웨어를 개발할 수 있습니다


목적에 따른 테스트

애플리케이션을 테스트할 때 무엇을 목적으로 수행하는지에 따라 회복(Recovery), 안전(Security), 강도(Stress), 성능(Performance), 구조(Structure), 회귀(Regression), 병행(Parallel) 테스트로 구분됩니다.

테스트 유형 설명 특징
회복 테스트 (Recovery Test) 시스템에 여러 가지 결함을 인위적으로 발생시킨 후 정상적으로 복구되는지를 확인하는 테스트 - 장애 발생 시 자동 복구 기능이 정상적으로 작동하는지 확인
- 시스템의 복원력 및 신뢰성을 평가
안전 테스트 (Security Test) 시스템이 불법적인 접근, 해킹, 악성 코드 등의 보안 위협으로부터 안전한지 검증하는 테스트 - 사용자 인증, 권한 관리, 데이터 암호화 등 보안 요소 평가
- 외부 침입 및 공격 시도의 대응력 테스트
강도 테스트 (Stress Test) 과부하(Heavy Load) 상황에서 시스템의 안정성을 검증하는 테스트 - 과도한 트래픽, 데이터 입력, 메모리 사용 등을 부과하여 한계점 분석
- 시스템이 오작동 없이 정상적으로 동작하는지 확인
성능 테스트 (Performance Test) 소프트웨어의 응답 속도, 처리량, 효율성 등을 평가하는 테스트 - 최대 사용자 수, 응답 시간, 데이터 처리 속도 등을 측정
- 부하 테스트(Load Test), 스파이크 테스트 포함
구조 테스트 (Structure Test) 소프트웨어의 내부 논리적 경로, 코드 복잡도 등을 분석하는 테스트 - 모듈 간 결합도, 응집도 평가하여 최적화 유도
- 화이트박스 테스트 기법과 함께 활용 가능
회귀 테스트 (Regression Test) 기존 기능이 코드 수정 또는 추가 후에도 정상적으로 동작하는지 확인하는 테스트 - 변경된 코드가 기존 기능에 영향을 미치지 않는지 검증
- 지속적인 통합 환경(CI/CD)에서 반복 수행 필수
병행 테스트 (Parallel Test) 변경된 시스템과 기존 시스템을 동시에 실행하여 결과를 비교하는 테스트 - 신규 시스템이 기존 시스템과 동일한 결과를 도출하는지 검증
- 시스템 마이그레이션, 업그레이드 시 필수 수행

 회복 vs. 강도 테스트

  • 회복 테스트: 시스템 장애 후 복구 가능 여부를 평가
  • 강도 테스트: 과부하를 가하여 안정성을 확인

안전 vs. 성능 테스트

  • 안전 테스트: 보안 및 접근 제어 평가
  • 성능 테스트: 응답 시간 및 처리 속도 평가

회귀 vs. 병행 테스트

  • 회귀 테스트: 기존 기능이 코드 변경 후에도 정상 작동하는지 검증
  • 병행 테스트: 신규 시스템과 기존 시스템의 결과가 동일한지 비교

 

출저 및 참고

정보처리 산업기사 기본서(시나공)

 

728x90

'자격증 > 정보처리' 카테고리의 다른 글

개발 단계에 따른 애플리케이션 테스트  (0) 2025.02.02
테스트 기법에 따른 애플리케이션 테스트  (0) 2025.02.02
애플리케이션 테스트  (0) 2025.02.01
개발 지원 도구  (0) 2025.01.31
디자인 패턴  (0) 2025.01.30