성능 테스트는 주어진 워크로드에서 애플리케이션의 안정성, 속도, 확장성 및 응답성이 어떻게 유지되는지 확인하는 비기능 소프트웨어 테스트 기법입니다. 이는 소프트웨어 품질을 보장하는 핵심 단계이지만 안타깝게도 기능 테스트가 완료된 후, 대부분의 경우 코드가 릴리스될 준비가 된 후에 시작해야 하는 사후 고려 사항으로 여겨지는 경우가 많습니다.
성능 테스트의 목표는 애플리케이션 출력, 처리 속도, 데이터 전송 속도, 네트워크 대역폭 사용량, 최대 동시 사용자, 메모리 사용률, 워크로드 효율성, 명령 응답 시간 등을 평가하는 것입니다.
생산성이 높은 소프트웨어 개발 조직을 구축하기 위해 "왼쪽으로 이동"과 "오른쪽으로 이동"을 결합한 성능 엔지니어링 접근 방식을 채택하는 방법을 알아보세요.
자세히 알아보기조직은 다음 중 한 가지 이상의 이유로 성능 테스트를 실행합니다:
성능 테스트의 구체적인 단계는 조직과 애플리케이션마다 다릅니다. 이는 비즈니스에서 가장 중요하게 생각하는 성능 지표에 따라 달라집니다. 그럼에도 불구하고 성능 테스트의 일반적인 목표는 전반적으로 거의 동일하므로 대부분의 테스트 계획이 따르는 특정 워크플로우가 있습니다.
테스트 환경 및 도구 식별
프로덕션 환경, 테스트 환경 및 사용 가능한 테스트 도구를 파악하세요. 테스트 환경과 프로덕션 환경 모두에서 하드웨어, 소프트웨어, 인프라 사양 및 구성을 문서화하여 일관성을 유지하세요. 일부 성능 테스트는 프로덕션 환경에서 수행할 수 있지만, 테스트가 프로덕션 운영을 방해하지 않도록 엄격한 안전장치를 마련해야 합니다.
허용 가능한 성능 기준 정의
테스트 성공을 입증할 제약 조건, 목표 및 임계값을 결정합니다. 주요 기준은 프로젝트 사양에서 직접 도출되지만 테스터는 더 광범위한 테스트와 벤치마크를 설정할 수 있는 적절한 권한을 부여받아야 합니다.
테스트 계획 및 설계
사용 범위가 얼마나 다양할지 생각한 다음 가능한 모든 사용 사례를 수용하는 테스트 시나리오를 만드세요. 그에 따라 테스트를 설계하고 캡처해야 할 메트릭의 윤곽을 잡으세요.
테스트 환경 및 도구 준비
성능 테스트를 실행하기 전에 테스트 환경을 구성합니다. 테스트 도구를 준비합니다.
성능 테스트 실행
테스트를 실행합니다. 결과를 캡처하고 모니터링합니다.
해결 및 재테스트
테스트 결과를 통합하고 분석합니다. Share 프로젝트 팀과 결과를 공유합니다. 확인된 성능 단점을 해결하여 애플리케이션을 미세 조정합니다. 테스트를 반복하여 각 문제가 확실하게 해결되었는지 확인합니다.
프로덕션 에코시스템을 최대한 가깝게 반영하는 테스트 환경을 만드세요. 그렇지 않으면 테스트 결과가 애플리케이션이 출시되었을 때 애플리케이션의 성능을 정확하게 반영하지 못할 수 있습니다.
성능 테스트와 성능 엔지니어링은 밀접하게 관련되어 있지만 서로 다른 용어입니다. 성능 테스트는 성능 엔지니어링의 하위 집합으로, 주로 특정 부하에서 애플리케이션의 현재 성능을 측정하는 것과 관련이 있습니다.
신속한 애플리케이션 제공에 대한 요구를 충족하기 위해 최신 소프트웨어 팀에는 기존의 성능 테스트를 넘어 엔드투엔드 통합 성능 엔지니어링을 포함하는 보다 진화된 접근 방식이 필요합니다. 성능 엔지니어링은 정의된 성능 목표를 달성하기 위해 소프트웨어를 테스트하고 튜닝하는 작업입니다. 성능 엔지니어링은 소프트웨어 개발 프로세스 초기에 수행되며 처음부터 성능 문제를 사전에 예방하기 위해 노력합니다.
성능 테스트는 다양한 워크로드에서 시스템이 얼마나 잘 실행되는지 확인하기 위한 것이므로 자동화된 테스트 도구를 사용하지 않고는 이러한 테스트를 효율적으로 실행하기 어렵습니다. 테스트 도구는 기능, 범위, 정교함 및 자동화가 다양합니다. OpenText 테스트 솔루션으로 성능 테스트의 효율성을 한 차원 높일 수 있는 방법을 알아보세요.
부하 및 성능 테스트 간소화
협업 성능 및 부하 테스트
클라우드 기반 성능 및 부하 테스트로 민첩성 유지
병목 현상에 작별 인사