Performance Testing Guidance for Web Applications #3
성능 테스트의 리스크
성능 테스트의 주요 리스트는 다음과 같다.
- 속도 관련 위험
- 확장성 관련 위험
- 안정성 관련 위험
주요 리스크별 완화 전략
속도 관련 위험 완화 전략
- 실적 요구 사항과 목표가 다른 사람이 아닌 사용자의 요구와 욕구를 나타내는 지 확인하십시오.
- 속도 측정을 이전 버전 및 경쟁 응용 프로그램과 비교하십시오.
- 정상 및 예상 피크 시간에 실제 워크로드를 복제하는로드 테스트를 설계하십시오.
- 실제 생산 과정에서 비즈니스 운영에 사용되는 것과 유사한 데이터 유형, 배포 및 볼륨 (예 : 제품 수, 보류 상태의 주문, 사용자 기반 크기)으로 성능 테스트를 수행하십시오. 로드 테스트 실행 전에 데이터베이스 및 파일 서버에 데이터를 누적하거나 데이터 볼륨을 추가로 만들 수 있습니다.
- 성능 테스트 결과를 사용하면 이해 관계자가 정보에 입각 한 아키텍처 및 비즈니스 의사 결정을 내릴 수 있습니다.
- 사용자가 예상되는 최고 부하를 받고있는 동안 시스템에 대한 사용자 만족도에 대한 대표적인 피드백을 요청합니다.
- 성능 테스트에 시간이 중요한 트랜잭션을 포함하십시오.
- 주기적 시스템 프로세스가 실행되는 동안 (예 : 바이러스 정의 업데이트 다운로드 또는 매주 백업 중) 적어도 일부 성능 테스트가 수행되는지 확인하십시오.
- 다양한 조건, 부하 수준 및 시나리오 혼합에서 속도를 측정합니다. (사용자는 일관된 속도를 중요시합니다.)
- 성능 테스트 중에 모든 올바른 데이터가 표시되고 저장되었는지 확인하십시오. 예를 들어, 사용자가 정보를 업데이트하지만 트랜잭션이 데이터베이스 쓰기를 완료하지 않았기 때문에 확인 화면에 이전 정보가 계속 표시됩니다.
확장성 관련 위험 완화 전략
- 다양한 부하에서 측정 된 속도를 비교하십시오. (최종 사용자는 얼마나 많은 다른 사람들이 응용 프로그램을 동시에 사용하고 있는지 알지 못하거나 걱정하지 않습니다.)
- 정상 및 예상 피크 시간에 실제 워크로드를 복제하는로드 테스트를 설계하십시오.
- 실제 생산 과정에서 비즈니스 운영에 사용되는 것과 유사한 데이터 유형, 배포 및 볼륨 (예 : 제품 수, 보류 상태의 주문, 사용자 기반 크기)으로 성능 테스트를 수행하십시오. 로드 테스트 실행 전에 데이터베이스 및 파일 서버에 데이터를 누적하거나 데이터 볼륨을 추가로 만들 수 있습니다.
- 성능 테스트 결과를 사용하면 이해 관계자가 정보에 입각 한 아키텍처 및 비즈니스 의사 결정을 내릴 수 있습니다.
- 실제 요구 사항에 매핑되는 의미있는 성능 테스트를 수행하십시오.
- 확장 성 한계를 찾으면 부하를 점차적으로 줄이고 재검사하여 응용 프로그램이 대책을 적용 할 수있는 충분한 시간 내에 한계에 도달했다는 신뢰할 수있는 지표가 될 수있는 메트릭을 식별하도록 도와줍니다.
- 특정 사용자 요청에 응답하여 생성 된 데이터베이스 항목을 확인하거나 반환 된 내용의 유효성을 검사하여 다양한로드에서 응용 프로그램의 기능적 정확성을 검증합니다.
- 기대되는 최대로드를 초과하는 성능 테스트를 수행하고 성능 테스트 도중 또는 후에 대표적인 사용자 및 이해 관계자가 수동으로 응용 프로그램에 액세스하도록함으로써 동작을 관찰합니다.
안정성 관련 위험 완화 전략
- 현실적인 지구력 테스트를 위해 시간을 투자하십시오.
- 주요 시나리오로 스트레스 테스트를 수행하십시오. 주요 성능 지표 (네트워크, 디스크, 프로세서, 메모리) 및 손실 된 주문 수, 사용자 로그인 실패 등과 같은 비즈니스 지표로 작업하십시오.
- 실제 생산 환경 (예 : 제품 수, 보류 상태의 주문, 사용자 기반 크기)에서와 유사한 비즈니스 운영을 복제하는 데이터 피드로 스트레스 테스트를 수행합니다. 스트레스 테스트를 실행하기 전에 데이터베이스 및 파일 서버에 데이터를 축적하거나 데이터 볼륨을 추가로 생성 할 수 있습니다. 이렇게하면 데이터베이스 또는 응용 프로그램 교착 상태 및 기타 스트레스 장애 패턴과 같은 치명적인 오류를 복제 할 수 있습니다.
- 테스트 중에 서버를 오프라인으로 가져와 나머지 시스템의 기능, 성능 및 데이터 무결성 동작을 관찰합니다.
- 시스템 재부팅 직전과 직후에 동일한 테스트를 실행합니다. 결과를 비교하십시오. 서비스 또는 프로세스를 재활용하는 데 동일한 접근 방식을 사용할 수 있습니다.
- 성능 테스트 시나리오 (예 : 부적절한 자격 증명을 사용하여 로그온하려는 사용자)에 오류 또는 예외 사례를 포함시킵니다.
- 성능 테스트 중에 시스템에 패치를 적용하십시오.
- 성능 테스트 중에 백업 및 / 또는 바이러스 정의 업데이트를 강제 실행합니다.
성능 테스트 리스크 요약
거의 모든 응용 프로그램 및 비즈니스 관련 위험은 사용자 만족도 및 응용 프로그램의 비즈니스 목표 달성 능력을 포함하여 성능 테스트를 통해 해결할 수 있습니다.
일반적으로 성능 테스트에서 다루는 위험은 속도, 확장 성 및 안정성 측면에서 분류됩니다. 속도는 일반적으로 최종 사용자의 우려 사항이며 확장 성은 비즈니스 관심사이며 안정성은 기술 또는 유지 관리 문제입니다.
프로젝트 관련 위험 및 성능 테스트를 사용할 수있는 관련 완화 전략을 식별하는 것은 거의 보편적으로 가치 있고 시간을 절약하는 방법으로 간주됩니다.