성능 테스트 (Performance Test)

  • 특정 워크로드에서 소프트웨어 어플리케이션의 속도, 응답 시간, 안정성, 확장성, 및 리소스 사용량을 테스트하는 테스트 프로세스
  • 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이는지를 측정하는 테스트
  • 해당 제품의 결함을 찾는 목표가 아님
  • 몇 가지 주요 지표를 모니터링하여 광범위한 문제를 제거하는 데 도움이 된다. (디스크 시간, 대역폭 사용량, 처리량, 스레드 수, 메모리 사용)

🤔 워크로드?

  • 주어진 시간 안에 컴퓨터 시스템이 처리해야 하는 작업의 양과 작업의 성격을 뜻함

부하테스트 (Load Test)

  • 성능 테스트의 하위 집합으로, 임계치 한계에 도달할 때까지 시스템의 부하를 지속적으로 지속적으로 증가시켜 시스템을 테스트하는 것을 의미한다.
  • 발생시키는 부하는 실제 시스템에 적용될 예상 트래픽이어야 한다.
  • Volume test 또는 Endurance test 라고도 함
  • 부하 테스트의 목표는 애플리케이션이 향후 예상되는 로드를 관리할 수 ​​있도록 데이터베이스, 하드웨어, 네트워크 등과 같은 애플리케이션의 모든 구성 요소에 대한 상한을 결정한다.

스트레스 테스트 (Stress Test)

  • 시스템이 과부하 상태에서 어떻게 작동하는지를 검사하는 테스트이다.
  • 시스템의 실패를 확인하고 모니터링하는 과정이 정상적으로 이루어지는지, 민감한 정보나 보안상의 문제가 노출되지 않는지, 장애 조치와 복구 절차가 효과적이고 효율적인지
  • 스트레스 테스트의 목적은 스트레스 테스트의 목적은 시스템의 오류를 확인하고 시스템이 어떻게 정상적으로 복구되는지 모니터링하는 것이다.

🔻 스트테스 테스트 종류

  • 네거티브 테스트: 시스템에서 구성 요소를 제거하는 작업도 스트레스 테스트의 일부로 수행된다.
  • 피로 테스트: 이 테스트는 대역폭 용량을 넘을 정도로 테스트하여 애플리케이션의 안정성을 포착해야 한다. 따라서 기본적으로 스트레스 테스트는 최대 부하 및 정상 조건을 넘어서는 애플리케이션의 동작을 평가한다.

🔻 성능테스트에 주로 사용되는 용어

  • 트랜잭션 (Transaction) : 일정한 단위를 나타내며, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다.
  • TPS (Transaction Per Second) : 1초에 처리할 수 있는 트랜잭션의 수, 성능 테스트의 가장 중요한 지표로 사용
  • 응답 시간 (Response Time) : 사용자가 요청을 보낸 시점부터 처리 결과가 사용자에게 보일 때까지의 시간을 의미

 

📝 Reference site

https://loosie.tistory.com/821#%EC%84%B1%EB%8A%A5_%ED%85%8C%EC%8A%A4%ED%8A%B8_(Performance_Test)
https://nesoy.github.io/articles/2018-08/Testing-Performance
https://cyberx.tistory.com/213

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기