Post

[QA]소프트웨어 테스팅.

[QA]소프트웨어 테스팅.

소프트웨어 테스팅

테스트 유형

테스트 유형정적 테스트 🛠️동적 테스트 🚀
설명소프트웨어 실행 없이 수행 (예: 코드 리뷰, 구조 검토)소프트웨어를 실행하며 수행 (예: 기능 테스트, 성능 테스트)

테스트 레벨

  • 개발 단계마다 나눠서 테스트 진행하는 방법
  • 단계별 특정 목표와 범위 정함, 개발 과정에서 발생하는 오류를 체계적으로 찾음
  • 초기 결함 발견 가능성 높음. 각 단계에서 결함 수정을 통해 품질이 높아짐

단위 테스트 (Unit Test)

  • 소프트웨어의 가장 작은 단위(함수, 메서드 등)를 독립적으로 검증하는 테스트
  • 코드 품질을 보장하고, 후속 단계 문제를 사전에 방지
  • 안정적인 개발의 첫 단계
  • 독립적 테스트 케이스를 통해 다른 테스트에 영향을 받지 않아야 함
  • 예상 결과 정의에서 입력값에 따른 출력값이 명확하게 설정해야 함
  • 자동화 도구 활용으로 반복 테스트는 빠르고 정확하게
  • 코드가 변경될 때 테스트 케이스 함께 수정해 오류를 방지
  • 테스트 실행과 결과 분석을 통해 예상값과 실제값을 비교
✅ 장점❌ 단점
소프트웨어 개발 초기에 작은 코드 단위에서 오류를 찾아 비용 절감 가능복잡한 시스템에서는 단위 테스트만으로 전체 기능 검증이 어려움
초기 단계에서 결함을 발견해 큰 문제로 번지는 것을 방지단위 테스트 적용을 위해 개발자가 학습해야 할 내용이 많음
코드 품질 개선 및 유지보수 용이시간과 노력이 추가적으로 필요함

통합 테스트 (Integration Test)

  • 소프트웨어 여러 부분(모듈)이 잘 연결되어 작동하는지 확인하는 테스트
  • 이 테스트는 시스템 전체가 작동하는지를 확인 가능함.

점진적 전략 방식 vs 비 점진적 전략 방식

점진적 전략 방식비 점진적 전략 방식
Top Down 방식BigBang 방식
Bottom Up 방식 
Sandwich 방식 

하향식 접근법 (Top-Down)

  • 최상위 모듈부터 하위로 통합해 가는 방식
  • 주요 기능 검증 가능, 설계 오류 조기 발견
  • 하지만 하위 모듈 테스트가 지연됨

상향식 접근법 (Bottom Up)

  • 최하위 모듈부터 상위로 통합해 가는 방식
  • 병렬 개발 및 테스트 용이
  • 하지만 전체 시스템 관점 테스트 지연, 설계 문제는 늦게 발견됨

샌드위치 접근법 (Sandwich)

  • 하향식과 상향식 접근법을 결합한 하이브리드 방식
  • 시스템을 여러 계층으로 나눔. 각 계층별 적합한 전략 선택 가능
  • 상향 하향의 장점, 복잡한 시스템 적합, 유연한 테스트 전략 가능
  • 하지만 복잡한 계획 및 관리, 테스트 조정이 어려움

비 점진적 전략 (Big Bang)

  • 모든 모듈을 한 번에 통합해 테스트하는 방식
  • 간단한 시스템에 적합하며 빠른 통합이 가능
  • 전체 시스템을 빠르게 확인할 수 있지만, 오류 발견 및 수정이 어려운 단점이 있으며, 대규모 시스템에는 부적합하다

End-to-End 테스트

  • 전체 시스템이 제대로 작동하는지 확인하는 테스트로, 시스템 전체를 통합한 후 진행할 수 있다
  • 시스템을 모두 통합한 후에 전체적인 테스트를 진행할 수 있지만, 시스템 전체가 통합되기 전에는 테스트를 진행할 수 없으며, 초기 오류 발견이 어려운 단점이 있다

Integration 테스트

  • 여러 모듈이나 컴포넌트를 통합하는 과정에서 발생할 수 있는 문제를 찾는 테스트
  • 점진적 전략 방식(예: Top-Down, Bottom-Up 방식)에서 진행될 수 있으며, 모듈을 단계적으로 통합하고 각 단계에서 발생할 수 있는 오류를 빠르게 발견할 수 있지만, 전체 시스템의 통합을 기다려야 하므로 시스템 전체에 대한 검증이 지연될 수 있다

🏗️ 테스트 피라미드

White Box → Black Box
(Unit → Integration → End-to-End)

image

  • 🟣 Unit: 10^(N+2) 개, 1ms 코드 테스트
  • 🟪 Integration: 10^(N+1) 개, 1s 서비스 테스트
  • 🟦 End-to-End: 10^N 개, 1m 웹 테스트
📈 Test Size ↑💰 Cost ↑
This post is licensed under CC BY 4.0 by the author.