소프트웨어 테스팅에서 스트레스 테스트란 무엇입니까?
스트레스 테스트
스트레스 테스트 소프트웨어 애플리케이션의 안정성과 신뢰성을 검증하는 소프트웨어 테스트 유형입니다. 스트레스 테스트의 목표는 매우 무거운 부하 조건에서 소프트웨어의 견고성과 오류 처리 기능을 측정하고 소프트웨어가 크런치 상황에서 충돌하지 않는지 확인하는 것입니다. 심지어 정상적인 작동 지점을 넘어서 테스트하고 극한 조건에서 소프트웨어가 어떻게 작동하는지 평가합니다.
소프트웨어 엔지니어링에서는 스트레스 테스트라고도 합니다. 내구성 테스트. 스트레스 테스트에서 AUT는 견딜 수 있는 능력을 알기 위해 짧은 시간 동안 스트레스를 받습니다. 가장 눈에 띄는 용도 스트레스 테스트는 시스템이나 소프트웨어 또는 하드웨어가 손상되는 한계를 결정하는 것입니다.. 또한 시스템이 극한 상황에서 효과적인 오류 관리를 입증하는지 여부도 확인합니다.
테스트 중인 애플리케이션은 웹사이트에서 5GB 데이터를 복사해 메모장에 붙여 넣으면 스트레스를 받습니다. 메모장이 스트레스를 받고 있으며 '응답 없음' 오류 메시지가 나타납니다.
스트레스 테스트의 필요성
스트레스 테스트의 사용법을 알아볼 수 있는 실시간 예시를 다음과 같이 살펴보겠습니다.
- 축제 기간 동안 온라인 쇼핑 사이트에서는 트래픽이 급증하거나 할인 행사를 발표할 수 있습니다.
- 블로그가 주요 신문에 언급되면 트래픽이 갑자기 급증합니다.
이러한 비정상적인 트래픽 급증을 수용하려면 스트레스 테스트를 수행하는 것이 필수적입니다. 이러한 갑작스러운 트래픽을 수용하지 못하면 수익과 평판이 손실될 수 있습니다.
스트레스 테스트는 다음과 같은 이유로도 매우 가치가 있습니다.
- 비정상적인 조건에서 시스템이 작동하는지 확인합니다.
- 시스템에 스트레스가 있을 때 적절한 오류 메시지를 표시합니다.
- 극한 상황에서 시스템 장애가 발생하면 막대한 수익 손실이 발생할 수 있습니다.
- 스트레스 테스트를 실행하여 극한 상황에 대비하는 것이 좋습니다.
스트레스 테스트의 목표
스트레스 테스트의 목표는 오류 후 시스템의 동작을 분석하는 것입니다. 스트레스 테스트가 성공하려면 시스템이 극한 상황에 있을 때 적절한 오류 메시지를 표시해야 합니다.
스트레스 테스트를 수행하기 위해 때로는 스트레스 테스트 중에 손실될 수 있는 대규모 데이터 세트가 사용될 수 있습니다. 테스터는 스트레스 테스트를 수행하는 동안 이러한 보안 관련 데이터를 잃어서는 안 됩니다.
스트레스 테스트의 주요 목적은 장애 발생 후 시스템이 복구되는지 확인하는 것입니다. 복구 가능성.
부하 테스트와 스트레스 테스트
부하 테스트 | 스트레스 테스트 |
---|---|
부하 테스트 일반적인 작업 부하 조건에서 시스템 동작을 테스트하는 것이며 실제 작업 부하를 가지고 테스트하거나 시뮬레이션하는 것입니다. | 스트레스 테스트는 극한 상황에서 시스템 동작을 테스트하는 것으로 시스템이 고장날 때까지 수행됩니다. |
부하 테스트로 인해 시스템이 중단되지 않음 | 스트레스 테스팅은 압도적인 데이터나 자원을 이용해 테스트해 시스템을 무너뜨리려고 한다. |
스트레스 테스트의 유형
스트레스 테스트의 유형은 다음과 같습니다. 각 유형에 대한 설명은 다음과 같습니다.
분산 스트레스 테스트:
분산 클라이언트-서버 시스템에서는 서버의 모든 클라이언트에 대해 테스트가 수행됩니다. 스트레스 서버의 역할은 일련의 스트레스 테스트를 모든 스트레스 클라이언트에 배포하고 클라이언트 상태를 추적하는 것입니다. 클라이언트가 서버에 접속하면 서버는 클라이언트 이름을 추가하고 테스트용 데이터 전송을 시작합니다.
그 사이에 클라이언트 컴퓨터는 서버와 연결되어 있다는 신호나 하트비트를 보냅니다. 서버가 클라이언트 시스템으로부터 신호를 받지 못하는 경우 디버깅을 위해 추가 조사가 필요합니다. 그림에서 서버는 2개의 클라이언트(Client1 및 Client2)와 연결할 수 있지만 클라이언트 3 및 4로부터 신호를 보내거나 받을 수 없습니다.
야간 달리기는 이러한 스트레스 테스트 시나리오를 실행하는 가장 좋은 옵션입니다. 대규모 서버 팜에는 조사해야 할 스트레스 오류가 발생한 컴퓨터를 확인하기 위한 보다 효율적인 방법이 필요합니다.
애플리케이션 스트레스 테스트:
이 테스트는 애플리케이션의 데이터 잠금 및 차단, 네트워크 문제 및 성능 병목 현상과 관련된 결함을 찾는 데 중점을 둡니다.
거래 스트레스 테스트:
둘 이상의 애플리케이션 간의 하나 이상의 트랜잭션에 대해 스트레스 테스트를 수행합니다. 시스템을 미세 조정하고 최적화하는 데 사용됩니다.
전신 스트레스 테스트:
이는 동일한 서버에서 실행되는 여러 시스템에 걸쳐 테스트할 수 있는 통합 스트레스 테스트입니다. 한 응용 프로그램 데이터가 다른 응용 프로그램을 차단하는 결함을 찾는 데 사용됩니다.
탐색적 스트레스 테스트:
이는 실제 시나리오에서 발생할 가능성이 없는 비정상적인 매개변수나 조건으로 시스템을 테스트하는 데 사용되는 스트레스 테스트 유형 중 하나입니다. 다음과 같은 예상치 못한 시나리오에서 결함을 찾는 데 사용됩니다.
- 동시에 많은 수의 사용자가 로그인
- 모든 컴퓨터에서 동시에 바이러스 검사기가 시작된 경우
- 웹 사이트에서 데이터베이스에 접근할 때 데이터베이스가 오프라인 상태가 된 경우
- 대량의 데이터가 동시에 데이터베이스에 삽입되는 경우
스트레스 테스트를 수행하는 방법은 무엇입니까?
스트레스 테스트 프로세스는 5가지 주요 단계로 수행할 수 있습니다.
1단계) 스트레스 테스트 계획: 여기에서는 시스템 데이터를 수집하고, 시스템을 분석하고, 스트레스 테스트 목표를 정의합니다.
2단계) 자동화 스크립트 생성: 이 단계에서는 스트레스 테스트 자동화 스크립트를 만들고 스트레스 시나리오에 대한 테스트 데이터를 생성합니다.
3단계) 스크립트 실행: 이 단계에서는 스트레스 테스트 자동화 스크립트를 실행하고 스트레스 결과를 저장합니다.
4단계) 결과 분석: 이 단계에서는 스트레스 테스트 결과를 분석하고 병목 현상을 식별합니다.
5단계) 조정 및 최적화: 이 단계에서는 시스템을 미세 조정하고, 구성을 변경하고, 원하는 벤치마크를 충족하는 목표로 코드를 최적화합니다.
마지막으로 전체 주기를 다시 실행하여 조정을 통해 원하는 결과가 생성되었는지 확인합니다. 예를 들어 성능 목표를 달성하기 위해 스트레스 테스트 프로세스를 3~4주기로 수행해야 하는 것은 드문 일이 아닙니다.
스트레스 테스트에 권장되는 도구
LoadRunner
HP의 LoadRunner는 널리 사용되는 부하 테스트 도구입니다. Loadrunner에 의해 형성된 부하 테스트 결과는 벤치마크로 간주됩니다.
제이미터
Jmeter는 오픈소스 테스트 도구입니다. 순수 Java 스트레스 신청과 성능 시험. Jmeter는 부하, 기능, 스트레스 등과 같은 테스트 유형을 다루도록 설계되었습니다. 작동하려면 JDK 5 이상이 필요합니다.
스트레스 테스터
이 도구는 웹 애플리케이션 성능에 대한 광범위한 분석을 제공하고 결과를 그래픽 형식으로 제공하며 사용이 매우 쉽습니다. 높은 수준의 스크립팅이 필요하지 않으며 좋은 투자 수익을 제공합니다.
Neo 하중
이는 웹을 테스트하고 테스트하기 위해 시장에서 사용 가능한 인기 있는 도구입니다. 모바일 응용 프로그램. 이 도구는 부하가 걸린 애플리케이션 성능을 평가하고 응답 시간을 분석하기 위해 수천 명의 사용자를 시뮬레이션할 수 있습니다. 또한 성능, 부하 및 스트레스 테스트 등 클라우드 통합을 지원합니다. 사용하기 쉽고 비용 효율적이며 우수한 확장성을 제공합니다.
스트레스 테스트 측정항목
측정항목은 시스템 성능을 평가하는 데 도움이 되며 일반적으로 스트레스 테스트가 끝날 때 연구됩니다. 일반적으로 사용되는 측정항목은 다음과 같습니다.
확장성 및 성능 측정
- 초당 페이지 수: 요청된 페이지 수/초를 측정합니다.
- 처리량: 기본 지표 – 응답 데이터 크기/초
- 라운드: 테스트 시나리오가 계획된 횟수 대 클라이언트가 실행된 횟수
애플리케이션 응답
- 히트 시간: 이미지 또는 페이지를 검색하는 데 걸리는 평균 시간
- 첫 번째 바이트까지의 시간: 데이터 또는 정보의 첫 번째 바이트를 반환하는 데 걸리는 시간
- 페이지 시간: 페이지의 모든 정보를 검색하는 데 시간이 걸립니다.
실패
- 실패한 연결: 클라이언트가 거부한 실패한 연결 수(약함) Signal)
- 실패한 라운드: 실패한 라운드 수
- 실패한 적중: 시스템에서 실패한 시도 횟수(깨진 링크 또는 보이지 않는 이미지)
결론
스트레스 테스트의 목적은 극한 상황에서 시스템을 확인하는 것입니다. 메모리, 프로세서, 네트워크 등과 같은 시스템 리소스를 모니터링하고 시스템이 다시 정상 상태로 복구될 수 있는지 확인합니다. 시스템이 스트레스를 받는 동안 적절한 오류 메시지를 표시하는지 확인합니다.
스트레스 테스트의 예
- 전자상거래 웹사이트에서 축제 세일을 발표했습니다.
- 일부 주요 행사 당시의 뉴스 웹사이트
- 교육위원회 결과 웹사이트
- 소셜 네트워킹 사이트나 블로그, 앱 등