소프트웨어 테스팅

초보자를 위한 확장성 테스트

2021년 10월 30일

확장성 테스트는 비기능 테스트 사용자 요청의 수를 늘리거나 줄일 때 시스템의 성능이나 네트워크를 측정하는 방법입니다. 이 테스트의 목적은 시스템이 데이터 볼륨, 사용자 트래픽, 트랜잭션 수 빈도 등의 예상 증가를 처리할 수 있는지 확인하는 것입니다. 시스템이 증가하는 요구 사항을 충족할 수 있는지 테스트합니다.

시스템에 배포되거나 과도한 부하에서 테스트될 때 애플리케이션의 동작에 초점을 맞추기 때문에 성능 테스트라고도 합니다. 확장성 테스트는 애플리케이션이 확장을 중지하는 방법을 측정하고 그 이유를 식별하는 데 사용됩니다.

예시: 확장성 테스트에서 최대 부하를 10,000명의 사용자로 결정한 다음 시스템을 확장할 수 있다고 가정합니다. 이 경우 개발자는 10,000명의 사용자 제한에 도달한 후 응답 시간을 줄이거나 증가하는 사용자 데이터를 수용하기 위해 RAM 크기를 늘려야 합니다.

목차

확장성 테스트를 위한 전제 조건

    부하분산능력-부하 테스트 도구가 부하를 생성하고 중앙 지점에서 관리하기 위해 여러 대의 기계가 필요한지 확인하십시오.운영 체제-어떤 운영 체제에서 실행 중인 부하 생성 에이전트와 부하 테스트 마스터를 확인합니다.프로세서-어떤 종류의 CPU가 필요한지 가상 사용자 에이전트 및 부하 테스트 마스터 확인메모리-가상 사용자 에이전트와 부하 테스트 마스터를 위한 메모리 양을 확인하십시오.

확장성 테스트 시작 단계

  1. 확장성 테스트를 실행하기 위해 반복 가능한 프로세스를 정의합니다.
  2. 이제 확장성 기준을 결정하십시오.
  3. 이제 테스트를 실행하는 데 필요한 소프트웨어 도구의 후보 목록을 작성하십시오.
  4. 환경을 설정하고 테스트를 수행하는 데 필요한 하드웨어를 구성합니다.
  5. 테스트 및 확장성 테스트를 계획합니다.
  6. 시각적 스크립트를 만들고 확인합니다.
  7. 부하 테스트 시나리오를 만들고 시연합니다.
  8. 테스트를 실행합니다.
  9. 결과를 평가합니다.
  10. 필수 보고서를 생성합니다.

확장성 향상을 위한 팁

  1. 트랜잭션을 제한하여 데이터베이스를 오프로드합니다. 그러나 모든 것을 앱 레이어에 로드하여 너무 지나치지 마십시오. 다른 성능 문제에 직면할 수 있습니다.
  2. 한 번에 하나의 변수를 변경합니다. 이는 시간이 많이 걸리지만 한 번에 너무 많이 변경하면 애플리케이션의 성능이 저하될 수 있습니다.
  3. 테스트가 현재 테스트에 영향을 미치지 않도록 테스트를 실행하기 전에 모든 것을 재설정하십시오. 전체 소프트웨어 시스템을 다시 시작하는 것이 좋지만 하드웨어는 계속 실행해도 됩니다.
  4. 캐시는 리소스 부담을 줄이는 데 크게 도움이 됩니다. 더 빠른 성능을 위해 원본 서버의 로드 중 일부를 제거하고 CDN의 서버에 배치하는 데 도움이 되도록 CDN을 구현하는 것을 고려하십시오.
  5. 데이터베이스에 데이터를 영구적으로 저장할 필요가 없습니다. 비즈니스 또는 애플리케이션을 개선하는 데 도움이 되는 필요한 데이터만 저장합니다.
  6. 프로세스를 단계로 나누고 최소한의 작업자가 실행할 대기열로 분리하면 성능을 높일 수 있습니다.
  7. 테스트 프로세스를 자동화합니다. 이러한 방식으로 근무 시간을 근무 시간 외 시간에 수행되는 테스트를 분석하는 데 보낼 수 있습니다. 자동화는 테스트와 재테스트가 동일한 설정으로 일관되게 수행되도록 합니다.
  8. 리소스에 대한 액세스를 제한합니다. 동일한 계산을 수행하는 동일한 도움말에 대한 다양한 요청이 있는 경우 시작하기 전에 각각 완료하도록 하십시오. 그렇지 않으면 프로세스가 느려집니다.
  9. 네트워크 통신은 메모리 내 통신보다 시간이 더 많이 걸리므로 애플리케이션과 네트워크 간의 대화가 제한됩니다.

장점

  • 네트워크 사용량, 응답 시간, CPU 사용량 등의 측면에서 테스트 중인 웹 응용 프로그램의 단점을 결정하는 데 도움이 됩니다.
  • 부하가 걸리는 최종 사용자 경험을 결정합니다. 문제를 수정하고 애플리케이션의 확장성을 높이기 위해 사전에 올바른 조치를 취해야 합니다.
  • 애플리케이션의 열악한 성능으로 인해 돈과 영업권을 잃을 위험을 줄이려면 프로덕션 환경에 출시하기 전에 확장성 테스트를 수행하는 것이 중요합니다.
  • 확장성 테스트는 유용한 도구 활용 추적에 도움이 됩니다.
  • 테스트 단계에서 응용 프로그램의 여러 성능 문제의 정확한 원인을 찾아 프로덕션 환경에서 감지할 경우 시간과 비용을 절약합니다.

단점

  • 확장성 테스트를 위한 도구와 성능 테스트를 위한 지정된 테스트 팀을 사용하면 예산 초과가 발생할 수 있습니다.
  • 제대로 작동하는 테스트는 잘못된 테스트로 인해 테스트 단계에서 실패하고 테스트 스크립트는 변경하는 데 시간 낭비로 이어집니다.
  • 기능적 오류는 확장성 테스트에서 식별할 수 없습니다.
  • 테스트 창은 비즈니스 프로세스를 방해하지 않도록 매우 좁기 때문에 결함이 발견되지 않은 상태로 유지됩니다.
  • 확장성 테스트의 각 속성을 테스트하는 데 소요되는 시간은 때때로 높으며 프로젝트 기한 준수를 지연시킬 수 있습니다.
  • 테스트 환경은 프로덕션 환경과 동일하지 않으며 다양한 문제가 발생할 수 있습니다.

확장성 테스트 속성

    처리량

단위 시간당 처리되는 여러 요청으로 정의됩니다. 그러나 다른 응용 프로그램의 경우 처리량의 정의가 다를 수 있으며 다르게 테스트됩니다.

    메모리 사용량

메모리 사용량은 또한 응용 프로그램에 대한 최상의 메모리 소비 결과를 얻기 위해 테스트됩니다. 메모리 사용을 줄이기 위해 프로그래머는 중복 루프 사용을 줄이고 데이터베이스에 대한 적중을 줄이며 클라이언트 측에서만 전체 유효성 검사를 처리하는 등의 좋은 프로그래밍 방법을 따라야 합니다. 따라서 개발자는 이러한 상황을 처리하기 위해 항상 추가 데이터베이스를 유지해야 합니다.

    CPU 사용량

응용 프로그램에서 작업을 수행하는 데 사용되는 CPU를 확인하기 위해 테스트됩니다. CPU 사용량은 MegaHertz로 측정됩니다. 처리량을 늘리고 CPU 사용량을 줄이려면 프로그래밍 언어로 작성된 모든 응용 프로그램의 코드를 적절하게 최적화해야 합니다.

    네트워크 사용량

애플리케이션에서 작업을 수행하는 데 사용되는 대역폭이 테스트됩니다. 네트워크 사용량은 네트워크를 통해 초당 수신 또는 전송된 바이트, 세그먼트, 패킷으로 측정됩니다. 완벽한 응용 프로그램이 최상의 결과를 얻으려면 네트워크 사용량을 최소화해야 합니다.

    응답 시간

응답 시간 응답과 애플리케이션 서버의 사용자 요청 사이의 시간입니다. 사용자당 요청 수를 늘리거나 사용자 수를 늘려 애플리케이션이 늦게 응답하기 시작하는 시점을 확인함으로써 다양한 부하에서 테스트됩니다.

확장성 테스트 계획

마지막으로 실험을 구성하기 전에 철저한 조사 일정을 만드십시오. 평가가 애플리케이션 사양을 준수하는지 확인하는 필수 단계입니다.

    스크립트 단계:사람이 수행할 정확한 작업을 결정하기 위해 테스트 스크립트에서 철저한 단계를 수행해야 합니다.런타임 데이터:프로그램과 통신하는 데 사용되는 모든 런타임 데이터는 테스트 일정에 따라 결정될 수 있습니다.데이터 기반 테스트:스크립트에 런타임 시 다른 데이터가 필요한 경우 이 데이터가 필요한 모든 필드를 알아야 합니다.

최고의 확장성 테스트 도구

사이버 플러드

CyberFlood는 앱 인식 네트워킹 장치와 솔루션의 성능, 확장성 및 보안을 테스트하기 위해 실제 애플리케이션 트래픽과 공격을 생성하는 강력하고 사용하기 쉬운 테스트 솔루션입니다. 애플리케이션 트래픽 정책을 테스트하고 시행합니다. 기준 성능과 용량. 확인 네트워크 보안 .

특징

  • 시뮬레이션이 아닌 에뮬레이션.
  • 광범위한 기능.
  • 암호화.

가격

가격은 판매자에게 문의해야 합니다.

하중 영향

Load Impact는 시스템의 스트레스 내구성을 나타내는 일련의 성능 테스트를 수행하여 웹사이트, 모바일 애플리케이션 및 API를 생성하는 클라우드 기반 테스트 시스템입니다.

특징

  • 추가 IP를 추가할 수 있습니다.
  • API 테스트.
  • 자동화된 고급 스크립팅.
  • 브라우저 에뮬레이션.
  • 모바일 테스트

가격

    기초적인-월 기준-월 9고급의-월 9을위한-월 99

자주 묻는 질문

확장성 테스트란 무엇입니까?

확장성 테스팅은 사용자 요청의 수를 늘리거나 줄일 때 시스템의 성능이나 네트워크를 측정하는 비기능 테스트 방법입니다. 이 테스트의 목적은 시스템이 데이터 볼륨, 사용자 트래픽, 트랜잭션 수 빈도 등의 예상 증가를 처리할 수 있는지 확인하는 것입니다. 시스템이 증가하는 요구 사항을 충족할 수 있는지 테스트합니다.

확장성 테스트가 필요한 이유는 무엇입니까?

확장성 테스트는 증가하는 워크로드에 따라 애플리케이션이 확장되는 방식을 결정하는 데 도움이 됩니다.
웹 응용 프로그램에 대한 사용자 제한을 결정합니다.
로드 시 클라이언트 측 성능 저하 및 최종 사용자 경험을 결정합니다.
서버 측 견고성과 성능 저하를 결정합니다.