Performance Testing Guidance for Web Applications #2
성능 테스트의 종류
성능 테스트의 주요 유형은 다음과 같다.
- 성능검사 - 속도, 확장성, 안정성을 결정하거나 검증한다.
- 부하 테스트 - 정상 및 최대로드 조건에서 응용 프로그램 동작을 확인한다.
- 스트레스 테스트 - 응용 프로그램의 동작이 정상 조건이나 최대 로드 조건을 초과하는지 확인한다.
- 용량 테스트 - 주어진 시스템이 얼마나 많은 사용자나 트랜잭션을 지원하는지 결정한다.
주요 성능 테스트 유형별 혜택
- 성능 검사
애플리케이션의 속도, 확장 성 및 안정성 특성을 결정함으로써 올바른 비즈니스 결정을 내리는 데 필요한 정보를 제공합니다. 시스템의 사용자가 응용 프로그램의 성능 특성에 만족하는지 판단하는 데 중점을 둡니다. 성과와 관련된 기대와 현실의 불일치를 확인합니다. 튜닝, 용량 계획 및 최적화 작업을 지원합니다.
- 부하 테스트
예상 최대 생산로드를 지원하는 데 필요한 처리량을 결정합니다. 하드웨어 환경의 적합성을 결정합니다. 로드 밸런서의 적합성을 평가합니다. 동시성 문제를 감지합니다. 로드 중 기능 오류를 감지합니다. 확장 성 및 용량 계획 목적으로 데이터를 수집합니다. 성능이 저하되기 전에 애플리케이션이 처리 할 수있는 사용자 수를 결정할 수 있습니다. 자원 활용 한도를 초과하기 전에 하드웨어에서 처리 할 수있는로드의 양을 결정하는 데 도움을줍니다.
- 스트레스 테스트
시스템에 과부하로 인해 데이터가 손상 될 수 있는지를 판별합니다. 속도 저하뿐만 아니라 오류 및 오류를 유발하기 전에 응용 프로그램이 얼마나 많은 대상 부하를 초과하는지 평가합니다. 임박한 장애를 경고하기 위해 응용 프로그램 모니터링 트리거를 설정할 수 있습니다. 스트레스가 많은 환경에서 보안 취약점이 열리지 않는지 확인합니다. 일반 하드웨어 또는 지원 응용 프로그램 오류의 부작용을 확인합니다. 어떤 종류의 실패가 가장 중요한 계획인지 결정하는 데 도움이됩니다.
- 용량 테스트
비즈니스 요구 사항을 충족하기 위해 작업 부하를 처리하는 방법에 대한 정보를 제공합니다.
용량 계획자가 모델 및 / 또는 예측을 검증하거나 향상시키는 데 사용할 수있는 실제 데이터를 제공합니다. 용량 계획 모델 및 / 또는 예측을 비교하기위한 다양한 테스트를 수행 할 수 있습니다. 용량 계획을 돕기 위해 기존 시스템의 현재 사용량 및 용량을 결정합니다. 용량 계획을 돕기 위해 기존 시스템의 사용 및 용량 동향을 제공합니다.
추가 개념 / 조건
- 구성 요소 테스트
구성 요소 테스트는 응용 프로그램의 아키텍처 구성 요소를 대상으로 어떤 성능 테스트입니다. 일반적으로 테스트되는 구성 요소에는 서버, 데이터베이스, 네트워크, 방화벽, 클라이언트 및 저장 장치가 포함됩니다.
- 조사
조사 는 제품 품질을 결정하거나 향상시키는 데 가치가있을 수있는 테스트중인 제품의 속도, 확장 성 및 / 또는 안정성 특성과 관련된 정보 수집에 기반을 둔 활동입니다. 조사는 하나 이상의 관측 된 성능 문제의 근본 원인에 관한 가설을 입증하거나 반증하기 위해 자주 사용됩니다.
- 연기 테스트
연기 테스트는 응용 프로그램이 정상적인 부하의 작업을 수행 할 수 있는지 확인하기 위해 성능 테스트의 초기 실행됩니다.
- 단위 테스트
성능 테스트의 컨텍스트에서 단위 테스트 는 성능 특성에 중점을 둔 상태에서 응용 프로그램의 기존 코드 전체의 논리적 하위 집합 인 코드 모듈을 대상으로하는 테스트입니다. 일반적으로 테스트 된 모듈에는 함수, 프로 시저, 루틴, 객체, 메서드 및 클래스가 포함됩니다. 성능 단위 테스트는 테스트중인 코드 모듈을 작성한 개발자가 자주 만들고 수행합니다.
- 유효성 검사 테스트
검증 테스트가 설정하거나 해당 제품에 대한 추정 된 기대에 대해 테스트중인 제품의 속도, 확장 성 및 / 또는 안정성의 특성을 비교한다.
내가 생각하는 성능 테스트 유형별 필요 상황
- 성능 검사
프로덕션에 올라갈 어플리케이션이 어떤 용도로 사용될 것인가에 따라서 필요한 자원의 크기는 천차만별일 것이다.
개인 용도의 메모 정도만 하는 프로그램이 페이스북과 같은 인프라를 가진다면 낭비가 될 것이고,
반대로 대규모 트래픽이 예상되는 서비스가 필요한 인프라를 적절히 예측해야한다. 이럴 경우, 성능 검사를 통해
필요한 자원을 테스트해 볼 수 있을 것이라고 생각한다.
- 부하 테스트
성능 검사를 통해서, 혹은 과거 경험 등을 통해서 적당한 자원을 배치하였다면, 실제로 내가 예측한 자원을
토대로 서비스를 할 경우, 전반적으로 문제 없이 정상적으로 서비스가 구동되는 알고 싶을 때 부하 테스트를 해 볼 수 있을 것 같다.
- 스트레스 테스트
시스템이 부하가 걸려서 서비스가 안되는 것이 가장 큰 문제지만, 단순히 서비스가 안되는 것 외에도 과부하로 인한 데이터 손실이나, 취약점 발생 등의 문제는 더 큰 문제를 초래할 수도 있다. 사전에 이러한 문제를 알기 위한 테스트로 사용될 수 있을 것 같다고 생각된다.
- 용량 테스트
데이터는 시간이 지날수록 축적되는게 일반적이지만, 축적되는 크기는 서비스별로 제각각일 것이다. 과거를 기반으로 미래에 얼마나 많은 데이터를 처리하게 될 것인지 알게된다면, 서비스 인프라를 구축하는데 도움이 될 것이다. 용량 테스트는 데이터를 처리하는데 필요한 용량을 결정하는데 도움이 될 것 같다.