Industry Issue

비기능 테스트: 성능 테스트 vs 부하 테스트 vs 스트레스 테스트

Cyber Security
작성자
관리자
작성일
2024-03-08 13:30
조회
105

비기능 테스트: 성능 테스트 vs 부하 테스트 vs 스트레스 테스트

 

비기능 테스트는 성능, 안정성 및 접근성과 같은 측면에서 시스템이 어떻게 동작하는지 확인합니다. 이를 통해 개발 및 인프라 비용 절감과 함께 더 나은 고객 만족도 및 전환율을 보장할 수 있습니다. 3 가지 기능적 소프트웨어 방법인 성능 테스트, 부하 테스트, 스트레스 테스트에 대한 정의, 차이점과 장점, 수행 방안에 대한 내용을 아래에서 자세히 설명합니다.



성능 테스트(Performance Test)

대게 성능 테스트와 부하 테스트는 혼동되어 사용되곤 하는데 부하 테스트는 스트레스 테스트와 함께 성능 테스트의 하위 요소에 속합니다.



성능 테스트는 주로 시스템이 다양한 워크로드에서 어떻게 응답하는지, 그리고 이렇게 변동되는 운영 조건(사용자, 네트워크 등)에서 얼마나 안정적일 수 있는지에 대한 평가를 포함합니다. 성능을 평가하기 위한 상위 지표에는 페이지 응답시간, 네트워크 응답성, 서버 요청 처리속도 및 메모리 소비 패턴이 포함됩니다. 이러한 종류의 테스트는 사용량이 갑자기 급증하는 동적 시스템을 개발하기 위한 매우 중요한 요소입니다. 개발자는 수집된 데이터를 사용하여 불일치 및 사용성 문제를 해결하여 성능을 개선함으로써 사용자 만족도와 브랜드 신뢰도를 높일 수 있습니다. 성능 테스트는 몇 가지 주요 지표를 모니터링하여 광범위한 문제를 제거하는 데 도움이 됩니다. 이러한 주요 지표 중 일부는 다음과 같습니다.
  • 디스크 시간 – 요청을 작성하거나 읽기를 실행하는 데 소요된 시간
  • 대역폭 사용량 – 네트워크 인터페이스에서 사용하는 초당 비트 수
  • 처리량 – 초당 수신된 요청 비율
  • 스레드 수 - 활성 스레드 수
  • 메모리 사용 – 가상 메모리 사용 패턴
포괄적인 성능 테스트로 감지할 수 있는 일반적인 문제에는 긴 시스템 로드 시간, 사용자 입력에 대한 느린 응답 시간, 단순히 많은 수의 사용자를 동시에 수용할 수 없는 열악한 확장성 등이 있습니다. 또한 성능 테스트는 하드웨어 문제 및 코딩 문제와 같은 병목 현상을 제거하는 데 도움이 됩니다.

부하 테스트(Load Test)

부하 테스트는 미리 결정된 부하상태에서 시스템의 성능을 검사하는 성능 테스트의 핵심적인 하위 요소입니다. 부하 테스트는 시스템이 다양한 부하 테스트 시나리오에서 페이지에 대해 수신된 응답 시간을 테스트하여 성능 병목 현상을 해결하는데 도움이 될 수 있으며, 사용 중인 인프라가 예상 부하를 견딜 수 있는지 판단하는데 도움이 될 수 있습니다.

부하 테스트의 일반적인 수행 방법은 다음과 같습니다:
  1. 부하 테스트 환경 구축
  2. 부하 테스트 시나리오 정의 예시) 동시에 웹 페이지를 보는 40명의 사용자의 로드 시간이5초를 초과하지 않는지?
  3. 정의된 테스트 시나리오에 따른 부하 테스트 수행
  4. 테스트 완료 후, 부하 테스트 결과를 통해 시스템 성능 분석 및 테스트 성공/실패 판정
  5. 결과가 테스트의 성공/실패 여부를 판단하기 어려울 경우, 부하 테스트 재실행
이때, 응답 시간, 통과 또는 실패한 트랜잭션 수, 통과 또는 실패한 트랜잭션 수, 메모리 사용률, 평균 대기 시간 및 CPU 사용률은 시스템에 대한 부하 테스트 수행의 결과로써 우선적으로 최적화해야 하는 주요 지표로 사용됩니다.

스트레스 테스트(Stress Test)

스트레스 테스트는 시스템의 부하가 중단점에 도달했을 경우, 또는 시스템의 메모리 또는 CPU가취약한 경우, 시스템이 어떻게 동작하는지 확인하는데 도움이 됩니다. 이러한 스트레스 테스트는 일부에서는 내구성 테스트라고도 불리며, 시스템의 상태가 흔들리는 한계 또는 임계치에 도달했을 때, 시스템의 안정성을 확인하는데 도움이 됩니다. 이러한, 스트레스 테스트에는 아래와 같이 대표적인 몇 가지 수행방안이 있습니다.
  • 애플리케이션 스트레스 테스트 – 네트워크와 관련된 결함과 함께 데이터베이스의 락킹(Locking) 및 블로킹(Blocking)과 관련된 결함을 찾는 데 도움이 됩니다.
  • 시스템 스트레스 테스트 – 동일한 서버에서 동시에 실행중인 시스템의 장애 여부를 확인하는데 도움이 됩니다.
  • 트랜잭션 스트레스 테스트 – 둘 이상의 시스템 간의 트랜잭션을 검사하는데 도움이 됩니다.
스트레스 테스트는 부하 테스트의 수행 방법과 거의 비슷합니다. 테스트 환경을 구축하고, 테스트 시나리오를 생성하여 테스트를 수행합니다. 이후, 테스트 수행결과를 분석하여 최적화가 필요한 부분을 파악합니다.

부하 테스트 vs 스트레스 테스트

시스템의 성능을 측정하기 위한 테스트 방법론으로써 부하 테스트와 스트레스 테스트가 혼동되곤 합니다. 간단히 설명하여, 부하 테스트는 시스템의 성능을 개선하기 위한 목적으로 사용되며, 이를 위해 부하는 애플리케이션의 성능이 악화되기 시작하는 임계치를 정확히 찾아내기 위해 전략적으로 조작됩니다. 그러나, 스트레스 테스트는 시스템이 극한의 조건에서 한계점에 도달했을 때, 애플리케이션의 동작을 확인하기 위한 테스트로써, 임계치 이상의 부하가 발생했을 때, 시스템의 복구 절차 또는 보안 허점을 감지하기 위해 주로 사용됩니다.

또한, 부하 테스트는 응답 시간을 측정하면서 전체 환경과 데이터베이스까지 성능을 측정하는 반면, 스트레스 테스트는 식별된 트랜잭션에 대해서만 기능이 동작하지 않을 때까지 부하를 발생시켜 시스템 동작의 안정성을 확인합니다.
구분 부하테스트 스트레스 테스트
테스트 목적 전체 시스템의 성능확인 중단 점에서의 동작, 복구 가능성
주요 성능지표 동시 사용자 수, 초 당 트랜잭션 동시 사용자 수, 메모리, CPU, 네트워크 등
테스트 대상 전체 시스템 식별된 트랜잭션에만 집중
테스트 완료 시기 예상 부하가 모두 적용되었을 경우 시스템 동작이 중단되었을 경우
보안성 확인 불가능 가능
부하 및 스트레스 테스트는 정기적으로 수행되어야 하며 시스템의 성능을 측정하고 최적화를 위해 소프트웨어 개발 파이프라인에 통합되어야 합니다. 여러 면에서 차이가 있지만 이 두 가지 주요 테스트 방법론은 시스템이 실제로 시장에 출시되기 전, 결함과 안정성 문제를 해결하는데 도움이 됩니다.

요약

RADVIEW의 WebLOAD는 성능 및 부하테스트를 위해 다양한 사용자 및 네트워크 시나리오 생성을 제공합니다. 또한, 향상된 가시성과 투명성을 위해 중앙 집중식 웹 대시보드를 제공하며, 자동화를 위한 CI/CD 파이프라인과의 통합을 제공합니다. 이를 통해, 테스트 수행에 필요한 시간, 비용 및 리소스를 절약할 수 있으며, 애플리케이션의 속도, 견고성, 확장성 및 신뢰성을 보장하여 사용자의 만족을 향상시킴으로써 수익과 연결할 수 있습니다. WebLOAD가 어떻게 테스트를 수행하는지 궁금하다면 지금 문의하십시오.

 

출처: https://www.radview.com/blog/non-functional-testing-performance-testing-vs-load-testing-vs-stress-testing/

/about-us/inquiry/
https://www.youtube.com/@softflow2018
https://blog.naver.com/softflow_group
#