소프트웨어 테스팅에서 내구성 테스트란 무엇입니까? (예제 포함)
내구성 테스트
내구성 테스트 소프트웨어를 지속적으로 사용하는 동안 소프트웨어 응용 프로그램의 동작을 평가하기 위해 상당한 시간에 걸쳐 높은 부하로 소프트웨어를 테스트하는 비기능적 유형의 소프트웨어 테스트입니다. 내구성 테스트의 주요 목적은 애플리케이션이 응답 시간을 저하시키지 않고 확장된 부하를 처리할 수 있을 만큼 충분히 능력이 있는지 확인하는 것입니다.
이러한 유형의 테스트는 성능 실행 주기의 마지막 단계에서 수행됩니다. 내구성 테스트는 긴 과정이며 때로는 최대 XNUMX년까지 지속되기도 합니다. 여기에는 인터넷 트래픽이나 사용자 작업과 같은 외부 부하 적용이 포함될 수 있습니다. 이것이 내구성 테스트와 다른 점입니다. 부하 테스트일반적으로 몇 시간 정도면 끝납니다.
내구성은 용량을 의미합니다. 즉, 내구성 테스트를 용량 테스트라고 부를 수 있습니다.
내구성 테스트의 목표
- 내구성 테스트의 주요 목표는 메모리 누수를 확인하는 것입니다.
- 지속적인 사용 시 시스템이 어떻게 작동하는지 확인합니다.
- 오랜 기간이 지난 후에도 시스템 응답 시간이 테스트 시작과 동일하거나 더 좋게 유지되도록 합니다.
- 특정 시스템이 성능 목표를 지원하고 충족할 사용자 및/또는 트랜잭션 수를 결정합니다.
- 향후 로드를 관리하려면 향후 사용을 지원하는 데 얼마나 많은 추가 리소스(프로세서 용량, 디스크 용량, 메모리 사용량, 네트워크 대역폭 등)가 필요한지 이해해야 합니다.
- 내구성 테스트는 일반적으로 시스템에 과부하를 주거나 특정 시스템 리소스를 줄이고 결과를 평가하는 방식으로 수행됩니다.
- 이는 상대적으로 "정상적인" 사용 기간으로 간주되는 기간 이후에 결함이나 메모리 누수가 발생하지 않도록 하기 위해 수행됩니다.
내구성 테스트에서 모니터링할 사항
지구력 테스트에서는 다음 사항을 테스트합니다.- 테스트 메모리 누수– 시스템이나 OS의 충돌을 일으킬 수 있는 애플리케이션에 메모리 누수가 있는지 확인하기 위해 검사가 수행됩니다.
- 시스템 계층 간 연결 폐쇄 테스트 – 시스템 계층 간의 연결이 성공적으로 닫히지 않으면 시스템의 일부 또는 전체 모듈이 정지될 수 있습니다.
- 테스트 데이터베이스 연결이 성공적으로 닫혔습니다.– 데이터베이스 연결이 성공적으로 닫히지 않으면 시스템 충돌이 발생할 수 있습니다.
- 테스트 응답 시간 – 시스템을 장기간 사용하면 애플리케이션의 효율성이 떨어지므로 시스템의 응답 시간을 테스트합니다.
내구성 테스트 수행 방법
다음은 내구성 테스트에 대한 기본 테스트 접근 방식입니다.- 테스트 환경 – 내구성 테스트, 팀 내 역할 및 책임 할당 등에 필요한 하드웨어, 소프트웨어, 운영 체제를 식별합니다. 테스트 실행 전에 환경이 준비되어야 합니다. 또한 일반적인 데이터베이스 프로덕션 크기와 연간 성장을 추정해야 합니다. 이는 1년, 2년 또는 5년 후에 애플리케이션이 어떻게 반응할지 테스트해야 하기 때문에 필요합니다.
- 테스트 계획, 시나리오 작성 – 테스트의 성격(수동, 자동화 또는 둘의 조합)을 기반으로 테스트 케이스 디자인, 검토, 실행을 계획해야 합니다. 시스템에 스트레스를 주는 테스트, 중단점 테스트 등도 테스트 계획의 일부가 되어야 합니다. 시스템에 스트레스를 주는 테스트는 애플리케이션의 중단점을 결정합니다.
- 테스트 추정 - 테스트 단계를 완료하는 데 걸리는 시간을 추정해 보세요. 관련된 테스터 수와 필요한 테스트 주기 수를 기준으로 분석해야 합니다.
- 위험도 분석 - 위험을 분석하고 예방을 위한 적절한 조치를 취합니다. 위험 요소에 따라 테스트 사례의 우선 순위를 지정하고 내구성 테스트 중에 테스터가 단계적으로 수행할 수 있는 위험 및 문제를 아래에서 식별합니다.
- 시간이 지나도 성능이 일관되게 유지됩니까?
- 아직 발견되지 않은 다른 사소한 문제가 있습니까?
- 해결되지 않은 외부 간섭이 있습니까?
- 테스트 일정 – 예산, 기간 내 결과물을 결정합니다. 처럼 내구성 테스트 지속적으로 시스템/애플리케이션에 거대하지만 자연스러운 트랜잭션 로드 배열을 적용합니다.
내구성 테스트 예시
DaVinci에는 스트레스 테스트 테스트된 시스템을 한계까지 끌어올리고, 내구성 테스트 애플리케이션을 한계까지 끌어올리다 시간이 지남에. 예를 들어, 가장 복잡한 문제(메모리 누수, 데이터베이스 서버 활용, 무응답 시스템)는 소프트웨어가 장시간 실행될 때 발생합니다. 내구성 테스트를 건너뛰면 배포 전에 이러한 결함을 감지할 가능성이 매우 낮습니다.내구성 테스트 도구
- 웹로드
- 로드 완료
- Apache JMeter
- LoadRunner
- Appvance
- 로드UI
- 오픈스타
- Rational Performance Tester
내구성 테스트의 장점
- 이는 부하가 걸린 시스템이 작업 부하를 처리할 수 있는 방법을 결정하는 데 도움이 됩니다.
- 고객이 인프라 요구 사항을 검증하거나 향상하는 데 사용할 수 있는 정확한 데이터를 제공합니다.
- 시스템이 장기간 높은 수준에서 실행된 후 발생할 수 있는 성능 문제를 식별합니다.
- 일반적인 문제는 소규모 대상 성능 테스트에서 식별됩니다. 즉, 매우 짧은 시간 내에 막대한 로드가 있는 경우에도 애플리케이션을 계속 사용할 수 있도록 보장합니다.
- 내구성 테스트는 장기간 실행 후 성능 저하가 있는지 확인하는 데에도 사용됩니다.
내구성 테스트의 단점
- 얼마나 많은 스트레스를 적용할 가치가 있는지 정의하는 것은 종종 어렵습니다.
- 내구성 테스트는 다음과 같은 경우 심각한 중단을 초래할 수 있는 애플리케이션 및/또는 네트워크 오류를 일으킬 수 있습니다. 테스트 환경 고립되어 있지 않습니다.
- 시스템에 과도한 스트레스를 가하면 영구적인 데이터 손실이나 손상이 발생할 수 있습니다.
- 스트레스가 제거된 후에도 리소스 활용도는 매우 높게 유지됩니다.
- 일부 응용 프로그램 구성 요소가 응답하지 않습니다.
- 처리되지 않은 예외는 최종 사용자가 관찰합니다.
요약
- In 소프트웨어 공학, 내구성 테스트는 부하 테스트의 하위 집합입니다.
- 내구성 테스트는 긴 과정이며 때로는 최대 XNUMX년까지 지속됩니다.
- 확인을 위해 점검이 이루어집니다.
- 테스트 메모리 누수
- 테스트 응답 시간
- 데이터베이스 연결 등 테스트