Skip to content

성능 테스트와 부하, 스트레스 테스트

KWAKMANBO edited this page Jan 8, 2025 · 2 revisions

성능 테스트란?

  • 부하테스트를 알기전에 성능 테스트에 대해서 먼저 알아보자
  • 성능 테스트는 특정 상황에서 시스템의 구성 요소가 어떻게 수행되는지를 확인하기위해서 수행되는 테스트를 의미한다.
  • 성능 테스트를 통해서 시스템의 자원의 사용량, 확장성, 신뢰성 등을 검증할 수 있다.

image

  • 위 사진처럼 성능 테스트는 다른 테스트를 모두 포함하는 광범위한 테스트로, 대부분의 테스트의 상위집합을 성능 테스트라고 할 수 있다.
  • 간단하게 성능 테스트에 속하는 테스트들에 대한 정의는 아래와 같다.
테스트 정의
부하테스트 예상되는 최대 사용자수를 시물레이션 하며 성능 측정
스트레스 테스트 시스템이 한계치 이상으로 과부하 상태에서 어떻게 반응하지는 확인
내구성 테스트 장시간에 걸친 사용 중 시스템의 성능을 측정
스파이크 테스트 짧은 시간동안 급격한 변화를 주어 시스템의 반응을 측정
볼륨 테스트 대량의 데이터를 처맇라 때 의 시스템 성능을 측정
  • 부하테스트와 스트레스 테스트는 헷갈리는 개념으로 아래에서 조금더 다뤄볼 예정이다.

부하테스트란?

  • 시스템의 부하를 지속적으로 증가시켜 시스템이 부담할 수 있는 임계치를 측정하는 테스트를 의미한다. 간단하게 말하면 시스템의 성능을 테스트하는 것이라고 보면된다.
  • 부하테스트는 유저의 수와 초당 API 요청 등을 증가시켜 시스템의 내구성을 테스트하고 결과를 모니터링하며 애플리케이션의 한계를 찾아내는 것을 목표로한다.

부하테스트의 목표

  • 버퍼 오버플로우, 메모리 누수 및 잘못된 메모리 관리와 관련된 응용 프로그램의 결함을 노출한다.
    • 부하 테스트의 결과로 발견되는 문제는 로드 밸런싱 문제, 대역폭 문제, 기존 시스템의 용량 등이 포함될 수 있음
  • 애플리케이션이 부하를 관리할 수 있도록 데이터베이스, 하드웨어, 네트워크 등 모든 구성요소의 상한을 결정하기 위해서 부하테스트를 수행

부하 테스트가 스트레스 테스트가 아니다?

  • 얼핏보면 부하 테스트와 스트레스 테스트는 같다고 생각이든다. 나도 당연히 처음에는 같은 뜻이라고 생각했고 그저 사람마다 부르는게 다를뿐이라고 생각했다. 하지만 스트레스 테스트와 부하 테스트는 엄연히 차이가 있다고 한다.
  • 부하 테스트는 위에서 언급했듯 시스템의 부하를 지속적으로 증가시켜 시스템이 부담할 수 있는 임계치를 측정하는 테스트를 의미한다.
  • 스트레스 테스트는 기존 자원에 초과 작업으로 과부하를 주는 다양한 활동을 수행하며 시스템이 정상 작동이 안되도록 부하를 줬을때 어떤 동작을 보이는지 확인하는 테스트를 의미한다.
    • 시스템이 커버할 수 없는 과부하를 가했을 때 모니터링 도구는 정상적으로 복구되는지, 시스템 장애 조치를 하는지, 보안상의 문제가 발생하는지등을 확인한다.

성능, 부하, 스트레스 테스트 비교하기

성능 테스트 부하 테스트 스트레스 테스트
도메인 부하, 스트레스 테스트의 상위집합 성능 테스트의 하위 집합 성능 테스트의 하위 집합
범위 부하 테스트, 스트레스 테스트, 용량 테스트, 볼류 템스트, 내구성 테스트 등 넓은 범위를 가짐 볼륨 테스트 및 내구성 테스트를 포함 soak테스트 및 스파이크 테스트를 포함
주요 목표 애플리케이션 성능의 벤치마크의 표준을 설정 시스템의 상한선을 확인하기 위해서 SAL(서비스 수준 계약)를 설정하고 시스템이 과부하 볼륨을 처리하는 방법을 확인 시스템이 과부하에서 작동하는 방식과 장애로부터 복구하는 방식을 테스트하면서 알아내는데 목적이 있음, 앱이 기본적으로 예기치 않은 트래픽 급증에 다운되지 않도록 대비
부하 제한 임계치 이전과 초과된 경우 모두 테스트 임계치 이전까지 테스트 임계치를 초과해서 테스트
학습된 속성 리소스 사용량, 안정성, 확장성, 리소스 사용량 , 응답 시간, 처리량, 속도 과부하 수준에서 최대성능, 서버 처리량, 응답 시간, 하드웨어 환경의 적절성, 처리할 수 있는 사용자 요청 수, 부하 분산 요구사항 대역푝 용량, 응답 시간 이상의 안정성
테스트 결과 런타임 팽창, 최적화 범위, 속도, 지연시간등 성능과 관련된 모든 것 부하 분산 문제, 대역폭 문제, 시스템용량 문제, 응답 시간 부족, 처리량 문제등 과부하, 과부하 상황에서의 데이터 손상 문제, 속도 저하, 메모리 누수 등의 보안 허점 등

참고문헌

# 성능테스트, 부하테스트, 스트레스 테스트..무엇이 다를까?

팀 빌딩

📚팀 빌딩
📝Git 전략

회의록

1주차

🤝1월 7일
🤝1월 8일
🤝1월 9일

2주차

🤝주간 계획(1월 13일)

3주차

🤝주간 계획(1월 20일)

인공지능 리팩토링 1주차

🤝주간 계획(2월 3일)

인공지능 리팩토링 2주차

🤝주간 계획(2월 10일)

개발일지

AI 리팩토링 기획안

AI 리팩토링 개발일지

성능개선

리팩토링

팀회고

학습 정리

Clone this wiki locally