Performance Testing Guidance for Web Applications #1
성능 테스트의 정의
성능 테스트는 응용 프로그램 시스템의 응답성, 처리량, 안정성 및 확장성을 결정하기 위한 테스트 유형이다. 성능 테스트는 일반적으로 다음과 같은 기능들을 수행한다.
- 생산 준비 여부 평가
- 성과 기준에 대한 평가
- 여러 시스템 또는 시스템 구성의 성능 특성 비교
- 성능 문제의 원인 찾기
- 시스템 튜닝 지원
- 처리량 수준 찾기
성능 테스트는 일반적으로 시스템의 병목 현상을 파악하고, 애플리케이션의 전반적인 분석 결과를 토대로 프로덕션에 적용할 때 필요한 하드웨적인 구성을 예측하는데 도움이 된다.
최대 비용, 기회 비용, 기업 평판 등과 관련된 위험을 해결하기 위해 성능 테스트가 거의 항상 수행된다.
이외에 성능 테스트를 수행하는 구체적인 이유는 다음과 같다.
- 출시 준비 여부 평가
- 인프라 적합성 평가
- 개발 된 소프트웨어 성능의 적절성 평가
- 성능 튜닝의 효율성 향상
성능 테스트와 튜닝의 관계
튜닝은 일반적으로 성능 테스터만의 책임이 아니며, 튜닝 과정은 응용 프로그램 또는 테스트 대상 시스템과 관련된 모든 사람들 간의 협업으로 이루어진다. 관련된 사람들은 다음과 같다.
- 제품 공급 업체
- 건축가
- 개발자
- 테스터
- 데이터베이스 관리자
- 시스템 관리자
- 네트워크 관리자
- 제품 공급 업체
- 건축가
- 개발자
- 테스터
- 데이터베이스 관리자
- 시스템 관리자
- 네트워크 관리자
성능 테스트 요약
성능 테스트는 시스템의 병목 현상을 파악하고 향후 테스트를위한 기준을 수립하며 성능 조정을 지원하고 성능 목표 및 요구 사항을 준수하는지 확인하는 데 도움이된다.
개발 수명주기 초반에 성능 테스트를 포함하면 프로젝트에 상당한 가치를 부여하는 경향이 있다.
성능 테스트 프로젝트가 성공하려면 테스트가 프로젝트의 컨텍스트와 관련이 있어야하며, 이는 실제로 중요한 항목에 집중하는 데 도움이된다.
성능 특성을 수용 할 수 없는 경우 일반적으로 성능 테스트에서 성능 조정으로 초점을 이동하여 응용 프로그램을 정상적으로 수행 할 수 있다. 사용중인 자원의 양을 줄이고 시스템 성능을 더 향상시키려는 경우 조정에 중점을 둘 것이다.
성능, 부하 및 스트레스 테스트는 성능 테스트의 하위 범주이며 각각 다른 목적으로 사용된다.
성능 향상을위한 시스템 또는 응용 프로그램의 변경 효과를 평가하기위한 기준선을 작성하면 일반적으로 프로젝트 효율성이 향상된다.