성능 테스트 (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
반응형
'🔍 QA_Test' 카테고리의 다른 글
탐색적 테스팅 (0) | 2022.11.28 |
---|---|
소프트웨어 테스트 수명주기(STLC)? (0) | 2022.09.30 |
동적테스트, 정적테스트 이해하기 (0) | 2022.09.12 |
HTTP Status Code / HTTP 상태(응답) 코드 정리 (0) | 2022.08.28 |
협업을 위한 기본적인 개발용어 (0) | 2022.08.23 |