소프트웨어 테스팅의 안정성 테스트
⚡ 스마트 요약
안정성 테스트는 애플리케이션이 고정된 부하 조건뿐만 아니라 변화하는 환경 속에서도 안정적으로 작동하는지 확인하는 테스트입니다. 이를 통해 짧은 기능 실행 테스트에서는 발견할 수 없는 충돌, 리소스 고갈, 성능 저하 등의 문제를 찾아낼 수 있습니다.

안정성 테스트란 무엇인가요?
안정성 테스트 장기간에 걸쳐 지속적으로 기능하는 소프트웨어 응용 프로그램의 효율성과 능력을 측정하기 위해 수행되는 비기능적 소프트웨어 테스트 유형입니다. 안정성 테스트의 목적은 전체 사용 범위를 실행하여 어느 시점에서든 소프트웨어 응용 프로그램이 충돌하거나 정상적인 사용에 실패하는지 확인하는 것입니다.
안정성 테스트는 개발된 제품의 효율성을 정상적인 운영 용량을 넘어 종종 중단점까지 확인하기 위해 수행됩니다. 정상적인 상황에서 시스템 동작을 확인하는 것보다는 오류 처리, 소프트웨어 안정성, 견고성 및 과부하 시 제품의 확장성에 더 큰 중요성이 있습니다.
안정성 테스트는 안정성 문제를 평가합니다. 이 테스트는 주로 소프트웨어 구성 요소에 최대의 스트레스를 가하는 것을 목적으로 합니다. 비기능적 기술입니다.

안정성 테스트는 로드(Load) 또는 로드(Load)라고도 합니다. 지구력 테스트.
테스트 중인 시스템이 안정성 테스트를 거치지 않은 경우의 위험
많은 수의 사용자가 도입되는 테스트 중인 애플리케이션과 다시 시작하지 않고 몇 달 동안 실행해야 하는 애플리케이션의 경우 다음과 같은 여러 가지 문제가 발생할 수 있습니다.
발생할 수 있는 오류에 직면할 수 있으며,
- 시스템이 느려진다
- 시스템에 기능 문제가 발생했습니다.
- 시스템이 유선 동작을 보여줍니다
- 시스템이 완전히 충돌합니다
소프트웨어 공학에서는 안정성 테스트 일반적으로 대규모 사용자(가상)로 시스템을 시험하고 성능 매개변수를 측정하여 시스템이 예상 부하를 지원할 수 있는지 확인하는 작업이 포함됩니다.
안정성 테스트를 수행하는 이유
이러한 종류의 테스트는 사용자가 실제 상황에서 시스템이 작동하는 방식을 이해하는 데 도움이 됩니다.
따라서 안정성 테스트를 통해 다음을 확인할 수 있습니다.
- 테스트 중인 시스템의 안정성에 대한 확신을 제공하십시오.
- 시스템이 대규모 프로그램을 처리할 수 있는지 확인하십시오.
- 시스템의 효율성을 모니터링하십시오.
- 스트레스 상황에서 시스템 안정성을 테스트합니다.
이는 테스트 중인 소프트웨어 제품이 출시되기 전에 제한 사항을 결정하거나 제품이 출시되기 전이나 생산 단계에서 추가 개선이 필요한 영역을 결정하는 데 사용되므로 제품 개발에서 중요한 역할을 합니다.
안정성 테스트 기술의 매우 일반적인 예는 다음과 같습니다.
Online S홉ping Portals: 안정성 테스트는 다음과 같은 경우 웹사이트가 어떻게 작동하는지 확인합니다.
- 피크타임에 입력되는 데이터의 양이 많음
- 특정 특정 시간의 조회수
- 동시에 페이지 로드 문제
- 시스템 동작
- 시스템의 반응성 등이 영향을 받습니다. 안정성 테스트
다른 예시
A CPU 테스트는 널리 사용되는 안정성 테스트 형식입니다. 성능 시험 기술. 이 테스트는 프로세서 안정성을 확인하고 프로세서의 작업 부하가 증가함에 따라 성능도 모니터링합니다.
안정성 테스트 방법
- 테스트 범위와 목적을 결정하려면 부하 테스트 실행 중에 응용 프로그램 서버가 충돌하지 않는지 확인해야 합니다.
- 비즈니스 문제를 확인하려면 최종 사용자 관점에 따라 시스템 성능과 로드를 확인하십시오.
- 테스트 계획 작성과 같은 다양한 책임과 역할을 할당하려면, 테스트 케이스 설계, 테스트 케이스 검토, 테스트 실행 등
- 지정된 시간 내에 테스트 결과물을 보장하려면
- 적절한지 확인하기 위해 부하 테스트 이를 위해 도구와 경험 팀이 존재합니다.
- 위험과 비용을 측정하려면 테스트가 필요합니다. 이에 따라 CPU 사용률 및 메모리 측면에서 각 실행 비용이 결정됩니다.
- 결정 결함 trac왕과 보고, 그리고 그들의 적절한 지도ping 요구 사항을 충족합니다.
CPU 성능 안정성 테스트를 위한 테스트 케이스
- 시스템의 상한을 확인합니다.
- 시스템이 충돌하거나 복구되는 방법.
- 요청당 완료된 총 트랜잭션 수입니다.
- 거래 응답이 꾸준하게 유지되는지 아니면 시간이 지남에 따라 증가하는지 여부입니다.
- 과부하 상태에서 시스템이 작동하는 방식.
- 부하가 심한 경우의 응답 및 동작입니다.
안정성 테스트를 위한 테스트 보고서
테스트 실행 중에 여러 가지 통계가 수집되어 측정되며, 이러한 숫자를 분석하여 보고서를 생성하고 발생 가능한 성능 문제를 식별합니다.
테스트 중에 수집된 통계의 예는 다음과 같습니다.
- 트랜잭션 응답 시간: 테스트 중 트랜잭션을 수행하는 데 소요되는 평균 시간입니다. 이 통계는 서버의 성능이 시스템에 대해 정의된 허용 가능한 최소 및 최대 트랜잭션 성능 기간 내에 있는지 여부를 평가합니다. 이 정보는 웹 서버의 요청을 처리하고 응용 프로그램 서버로 전송되는 데 걸리는 시간을 평가합니다. 대부분의 경우 데이터베이스 서버에 요청합니다.
- 초당 조회수: 사용자가 서버에서 수행한 조회 수입니다. 이러한 통계는 적중 수와 관련하여 사용자가 생성하는 로드 수를 결정하는 데 도움이 됩니다.
- 처리량 : 테스트 중 웹 서버의 처리량(바이트 단위)입니다. 처리량은 사용자가 특정 시간에 서버로부터 받은 데이터의 양을 의미합니다. 이 통계는 사용자가 생성하는 로드 양을 평가하는 데 도움이 됩니다.
- 초당 트랜잭션: 이는 테스트 중에 수행된 완료된 트랜잭션(성공 및 실패 모두)의 총 개수입니다. 이 통계는 시스템의 실제 트랜잭션 부하를 확인하는 데 도움이 됩니다.
- CPU : 테스트 중에 소비된 CPU 사용률입니다.
- 메모리 : 테스트 중 메모리 사용량.
- 디스크: 테스트 중에 소비된 디스크 공간의 활용.
안정성 테스트 기본 사항
안정성 테스트 안정성, 신뢰성 및 가용성과 같은 소프트웨어의 일부 품질 속성을 확인하기 위해 수행되는 기술인 성능 테스트에 속합니다.
이 테스트는 특정 작업 부하에서 시스템이나 하위 시스템의 성능을 확인하는 데 사용됩니다.
성능 테스트에는 다양한 유형이 있으며 안정성 테스트도 그중 하나입니다.
- 스트레스 테스트: 시스템 용량을 넘어 시스템의 견고성을 확인하는 테스트 형태입니다.
- 스파이크 테스트: 시스템의 부하를 순간적으로 증가시켜 시스템의 동작을 확인하는데 사용됩니다. 목표는 시스템에 성능 문제가 발생하거나 통과하는 지점을 확인하는 것입니다.
- 확장성 테스트: 시스템의 기능을 확인하는 데 사용됩니다. 시스템이 증가하는 요구, 크기의 변화 및 양의 변화에 얼마나 효과적으로 대처할 것인가.
- 볼륨 테스트 : 테스트 중인 소프트웨어에 엄청난 양의 데이터를 적용하고 그에 따라 시스템의 동작을 확인하고 검증하는 비기능 테스트 기술입니다.
- 부하 또는 안정성 테스트: (이미 위에서 논의했습니다)
안정성 테스트 도구
성능 테스트를 위한 일부 도구는 다음과 같습니다.
- 웹로드
- LoadRunner
- 아파치 JMeter
- Neo하중
- 클라우드테스트
- 로드스톰
- 로드UI
- WAPT
- 부하 영향
- 로드스터
- HTTPERF
- 오픈스타
이 테스트가 성능 테스트 제품군에 어떻게 부합하는가
성능 테스트는 포괄적인 용어입니다. 아래에 설명된 변형들은 적용되는 하중의 형태와 유지 시간만 다를 뿐이므로 서로 혼동되는 경우가 많습니다.
| 테스트 유형 | 부하 패턴 | 질문에 대한 답변 |
|---|---|---|
| 부하 테스트 | 예상 최대 부하, 단시간 | 시스템이 일반적인 최대 트래픽 상황에서 목표를 달성합니까? |
| 스트레스 테스트 | 용량을 초과하여 증가하다가 결국 고장이 발생합니다. | 어디에서 문제가 발생하며, 깔끔하게 실패하는가? |
| 스파이크 테스트 | 갑작스러운 극심한 급증 후 감소 | 교통량 급증에도 살아남아 회복할 수 있을까요? |
| 내구성 테스트 | 정상 하중이 여러 시간 동안 유지됩니다. | 시간이 지남에 따라 성능이 저하됩니까? |
| 침수 테스트 | 장기간에 걸친 지속적인 부하 | 메모리 누수나 리소스 고갈 문제가 있습니까? |
| 안정성 테스트 | 다양한 조건에서 부하 변화 | 시스템 환경이 변화하더라도 신뢰성은 유지됩니까? |
| 볼륨 테스트 | 일반 사용자, 매우 큰 데이터 용량 | 데이터베이스 규모가 커짐에 따라 제대로 작동하나요? |
내구성 시험과 침수 시험은 흔히 동의어로 취급됩니다. 일반적으로 두 테스트는 모두 장시간 동안 지속적인 부하를 견뎌낸다는 공통점을 가지고 있습니다. 팀에서 두 테스트를 구분하는 경우, 내구력 테스트는 응답 시간이 증가하는지 여부에 중점을 두는 반면, 부하 지속 테스트는 메모리, 파일 핸들, 연결 풀과 같은 리소스 사용량에 중점을 둡니다. 일반적으로 두 테스트 중 하나만 실행해도 두 가지 모두에 대한 증거를 얻을 수 있습니다.
테스트 중 수집해야 할 주요 지표
성능 테스트는 실행 중에 기록한 내용이 얼마나 정확한지에 따라 결과가 달라집니다. 서버 측과 클라이언트 측에서 다음 여섯 가지 항목을 캡처한 다음, 직감에 의존하기보다는 기준선과 비교하세요.
| 메트릭 | 그것이 당신에게 말하는 것 | 경고 표시 |
|---|---|---|
| 평균 응답 시간 | 일반적인 사용자 경험 | 실행 전반에 걸친 상승 편차 |
| 95번째 백분위수 응답 시간 | 가장 느린 사용자의 경험 | 평균을 훨씬 웃도는 수치, 즉 일관성이 부족하다는 의미입니다. |
| 맞춤형 설비 | 초당 처리되는 요청 수 | 하중이 일정하게 유지되는 동안 낙하 |
| 오류율 | 실패 또는 시간 초과된 요청 비율 | 합의된 기준치를 초과하는 모든 상승 |
| CPU 및 메모리 사용량 | 서버 리소스 여유 공간 | 올라가지만 결코 돌아오지 않는 기억 |
| 데이터베이스 연결 및 스레드 | 수영장 탈진 | 공개 없이 꾸준히 증가하는 수치 |
평균과 백분위수를 함께 읽으세요. 평균 800ms, 95번째 백분위수 900ms는 시스템이 안정적임을 나타냅니다. 하지만 동일한 평균값에서 9초라는 것은 20명 중 1명이 불편한 시간을 보내고 있으며, 평균값이 이를 숨기고 있다는 의미입니다.
값뿐만 아니라 모양도 살펴보세요. 장시간 실행되는 테스트에서 리소스 그래프가 평평하면 통과이고, 상승하면 누수로 간주됩니다. 테스트 종료 시점에 절대값이 허용 범위 내에 있더라도 마찬가지입니다.
