회의를 하다가 부하테스트? 스트레스 테스트? 라는 단어를 듣게 되었다.
성능 테스트는 테스트 모두에 대한 상위 집합임을 의미한다.

성공적인 성능 테스트는 데이터베이스, 네트워크, 소프트웨어, 하드웨어 등과 관련 될 수있는 대부분의 성능 문제를 예측해야 한다.
부하테스트는 시스템이 특정 작업 부하를 처리할 수 있는 능력을 검증하는 데 사용
임계치 한계에 도달 할 때까지 시스템의 부하를 지속적으로 증가시켜 시스템을 테스트한다.
부하 테스트 목표
버퍼 오버플로, 메모리 누수 및 메모리 관리 오류와 관련된 애플리케이션의 결함 노출 로드 테스트의 결과로 결국 나올 문제에는 로드 밸런싱 문제, 대역폭 문제, 기존 시스템의 용량 등이 포함될 수 있다.
애플리케이션이 향후 예상되는 로드를 관리 할 수 있도록 데이터베이스, 하드웨어, 네트워크 등과 같은 애플리케이션의 모든 구성 요소에 대한 상한을 결정한다.
애플리케이션에 대한 SLA(Service Level Agreement)를 설정한다
주어진 작업 부하 아래에서 시스템이 예상대로 동작하는지 확인하며, 응답 시간, 처리량 및 자원 사용량과 같은 성능 메트릭을 평가합니다.
예를 들어, 웹 서버에 대한 부하테스트는 동시에 여러 사용자가 웹 페이지를 요청하는 시나리오를 시뮬레이션하여 서버 응답 시간과 동시 접속자 수 등을 평가할 수 있습니다.
과잉 작업을 과부하시키는 다양한 활동을 수행하여 시스템을 무너뜨리는 시도
기본적으로 스트레스 테스트는 최대 부하 및 정상 조건을 넘어서는 애플리케이션의 동작을 평가한다.
스트레스 테스트의 결과로 결국 나올 문제에는 동기화 문제, 메모리 누수, 경쟁 조건 등이 포함될 수 있다.
스트레스 테스트 목표
충돌 후 애플리케이션의 동작을 정의하는 것이다.
이를 통해 잠재적인 병목 현상이나 성능 저하를 찾아내고 이에 대한 대비책을 마련할 수 있다.
EX) 웹 서버에 대한 스트레스 테스트는 동시에 많은 사용자가 서버에 동시에 접속하는 시나리오를 시뮬레이션하여 서버가 어떻게 동작하는지를 확인