티스토리 뷰

사람들은 흔히 성능 테스트, 부하 테스트, 스트레스 테스트를 혼용해서 사용한다. 그러나 이 세 가지 용어는 의미가 다른데, 오늘은 각 테스트의 의미와 차이점 등에 대해 살펴보고자 한다.

 

 

목차

     

    1. 성능테스트(Performance Test)

     성능 테스트는 시스템이 특정 상황에서 성능을 측정하는 테스트로, 시스템의 구성 요소가 어떻게 수행되는지 확인하는 테스트이다. 성능 테스트는 부하 테스트와 스트레스 테스트의 상위개념으로 두 가지 테스트를 포함한다.

     성능 테스트는 시스템의 사용자나 네트워크 등 다양한 변동상황 및 워크로드에서 시스템이 얼마나 안정적일 수 있는지에 대해 평가한다. 성능을 평가하기 위해 네트워크 응답성능, 페이지 응답시간, 메모리 사용율 및 요청 처리 속도 등을 측정하며, 이를 통해 시스템 성능을 개선할 수 있다. 성능을 측정하는 데 사용되는 주요 지표는 다음과 같다.

     

    • 전체 사용자(Named User) : 대상 소프트웨어를 사용하는 모든 사용자
    • 동시 사용자(Concurrent User) : 특정 시점에 대상 시스템에 접속하여 서비스를 사용하고 있는 사용자
    • 부하(Load) : 사용자가 대상 시스템에 요청하는 처리량
    • 응답시간(Response Time) : 사용자가 서버에 서비스를 요청한 후 응답을 받을 때까지 소요되는 시간
    • 처리량(Throughput) : 단위 시간당 대상 시스템에서 처리되는 요청 건수
    • 경과시간(Turnaround Time) : 서비스에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

     

    2. 부하 테스트(Load Test)

     부하 테스트는 성능 테스트의 핵심적인 테스트 중 하나로, 설정된 부하 상태에서 임계치 한계에 도달할 때까지 부하를 지속적으로 증가시켜 시스템의 성능을 검사하는 테스트이다. 부하 테스트를 통해 시스템의 다양한 시나리오를 테스트하고 사용 중인 인프라의 병목 현상을 해결하는데 도움이 될 수 있다. 또한 이를 통해 애플리케이션에 대한 SLA(Service Level Agreement)를 설정할 수 있다. 부하테스트의 수행 방법은 다음과 같다.

     

    • 부하 테스트 환경 구축
    • 부하 테스트 시나리오 정의(예. 동시에 홈페이지에 40명이 접속할 경우 홈페이지 로딩 시간이 2초를 초과하는지?)
    • 테스트 시나리오에 따른 부하테스트 수행
    • 테스트 결과 판정(이때 응답 시간, 성공 트랜잭션 수, CPU/메모리 사용율 등을 주요 지표로 활용한다.)

     

     

    3. 스트레스 테스트(Stress Test)

     스트레스 테스트는 시스템 과부하 상태에서 어떤 동작을 보이는지 점검하는 테스트로 내구성 테스트라고도 불리며, 시스템의 상태가 임계치에 도달했을 때 시스템의 안정성을 측정한다. 이를 통해 시스템의 오류를 확인하고 시스템이 어떻게 정상적으로 복구되는지 모니터링한다. 스트레스 테스트의 수행방법은 부하 테스트와 거의 유사하며, 주요 수행방안은 다음과 같다.

     

    • 애플리케이션 스트레스 테스트 : 네트워크 결함이나 데이터베이스의 락킹(Locking) 및 블로킹(Blocking)과 관련된 결함을 테스트
    • 시스템 스트레스 테스트 : 과부하 상태에서 동일 서버에서 함께 실행 중인 시스템의 장애 여부를 테스트
    • 트랜잭션 스트레스 테스트 : 둘 이상의 시스템 간의 트랜잭션을 테스트

     

    4. 부하 테스트와 스트레스 테스트 차이점

     부하 테스트는 임계치 이전까지의 시스템의 성능을 개선하기 위한 목적으로 수행되는 것으로, 애플리케이션의 성능이 악화되기 시작하는 임계치를 찾아내기  위해 사용된다. 반면에 스트레스 테스트는 시스템이 임계치를 초과한 경우에 애플리케이션의 동작을 확인하기 위해 수행되는 것으로 시스템의 복구 절차나 보안상의 문제를 파악하기 위해 사용된다.

    구분 부하 테스트(Load Test) 스트레스 테스트(Stress Test)
    목적 전체 시스템의 성능 확인 임계치 이후 동작, 복구 가능성
    성능지표 동시 사용자수, 초당 트랜잭션 등 동시 사용자수, CPU, 메모리 사용율 등
    테스트 대상 전체 시스템 특정 임계치에 집중
    테스트 완료 시기 부하가 모두 적용되었을 경우 시스템 동작이 중단되었을 경우