what is endurance testing software testing
소프트웨어 내구성 테스트 소개 :
이 기사에서는 Endurance 소프트웨어 테스트에 대해 자세히 논의하고 살펴볼 것입니다.
처음에는 Endurance 테스트가 정확히 무엇인지 이해 한 다음 이에 대한 모든 세부 정보를 살펴 보겠습니다. 이 기사가 내구성 테스트 개념을 처음 접하는 사람들에게 정말 완벽한 가이드가 될 것이라고 확신합니다.
이 기사는 개념을 완벽하게 이해할 수 있도록 간단한 용어로 예제와 함께 의미, 필요, 기간, 이점, 과제 및 단계를 포함하여 내구성 테스트에 대한 전체 개요를 제공합니다.
학습 내용 :
- 내구성 테스트 란 무엇입니까?
- 왜 내구성 테스트인가?
- 내구성 테스트 기간
- 내구성 테스트의 이점
- 내구성 테스트의 과제
- 예
- 이 테스트를 수행하는 단계
- 내구성 테스트 도구
- 결론
- 추천 도서
내구성 테스트 란 무엇입니까?
Endurance라는 단어는 '지속적이거나 마모를 견딜 수있는 능력'을 의미합니다. 간단히 내구성, 지속력 또는 수명이라고 부를 수 있습니다.
소프트웨어 세계와 관련하여 내구성 테스트 (흡수 테스트 또는 수명 테스트 또는 용량 테스트)는 소프트웨어 시스템이 장기간에 걸쳐 계속되는 막대한 예상 부하에서 견딜 수 있는지 확인하기 위해 수행되는 비 기능 테스트 유형입니다. 시간.
성능 테스트 유형 중 하나이며 부하 테스트의 하위 유형입니다.
왜 내구성 테스트인가?
이 테스트를 수행하는 주요 목적은 잠재적 인 메모리 누수를 식별하는 것입니다. 따라서이 테스트 중에 메모리 사용률을 면밀히 모니터링합니다. 메모리 누수의 개념을 알고 있기를 바랍니다. 그래도이 용어를 처음 접하는 사람들에게 메모리 누수가 실제로 무엇인지 간략하게 설명하겠습니다.
에 메모리 누수 소프트웨어 프로그램에서 폐기 된 메모리를 해제하지 못해 성능이 저하되거나 오류가 발생하는 것입니다.
소프트웨어 엔지니어링 테스트 유형
메모리 누수는 단기적인 영향을 미치지 않을 수 있지만 장기적으로는 시스템 속도를 저하시켜 여유 메모리를 남기지 않아 결국 응용 프로그램이나 시스템 충돌로 이어집니다. 메모리 누수는 일정 시간이 지나야 드러나는 문제입니다.
따라서 이러한 문제를 발견하려면 내구성 테스트가 필요합니다.
그러나 막대한로드로 인해 애플리케이션이 일정 기간 (예 : 1 시간) 동안 잘 작동 할 수 있습니다. 그러나 3-4 시간과 같이 동일한 양의로드에 지속적으로 노출되면 리소스 문제와 디스크 공간 부족으로 인해 애플리케이션이 중단됩니다.
내구성 소프트웨어 테스트가 식별해야하는 또 다른 중요한 문제는 성능 저하입니다. 장기간 사용 후 처리량 또는 응답 시간이 테스트 시작 시점과 동일하거나 개선되었는지 확인해야합니다.
데이터베이스 연결 문제는 Endurance 테스트에서도 식별됩니다. 데이터베이스 연결이 성공적으로 닫히지 않으면 시스템 충돌이 발생할 수 있습니다.
내구성 테스트는 또한 시스템의 특정 모듈을 중단시킬 수있는 시스템 계층 사이에 적절한 연결 폐쇄가 있는지 확인합니다.
요컨대, 내구성 테스트의 목적은 시스템이 장기간 지속적으로 사용하는 방식을 결정하는 것이라고 말할 수 있습니다. Endurance 테스트의 일부로 식별되는 주요 문제는 메모리 누수, 성능 저하, 데이터베이스 연결 문제 등입니다.
내구성 테스트 기간
24 * 7 논스톱 운영 프로젝트 인 경우 이상적으로는 내구성 테스트를 72 시간 동안 실행해야합니다. 그 이유는 애플리케이션이 주말에 무인으로 실행될 수 있어야하기 때문입니다 (주말 지원은 조직에 비용이 많이 들기 때문입니다).
따라서 주말보다 약간 더 긴 기간 동안 상당한 부하에 노출 된 시스템을 테스트해야합니다. 하지만 72 시간 동안 테스트를 실행하는 것은 너무 번거로울 수 있으므로 일반적으로 12 시간 동안 내구 테스트를 실행합니다.
또한, 담금 테스트 기간 동안에는 엄격하고 빠른 규칙이 없습니다. 주로 고객의 참여, 실제 생산 사용 등과 같은 요인에 따라 달라집니다. 때때로 내구성 테스트도 1 년 동안 실행됩니다!
내구성 테스트의 이점
이 테스트에서 얻은 이점은 다음과 같습니다.
- 응용 프로그램의 적합성을 보장합니다.
- 다른 성능 테스트에서 찾을 수없는 버그를 찾아냅니다. 예를 들어 , 볼륨 테스트 또는 스트레스 테스트 중에 메모리 누수 문제를 찾지 못할 수 있습니다.
- 애플리케이션을 강력하게 만듭니다. 막대한 연속로드에서 발생할 수있는 성능 저하 문제를 식별 한 다음 이러한 문제를 수정하면 애플리케이션이 더욱 강력 해집니다.
- 장기적으로로드 상태에서 시스템의 동작에 대해 알려줍니다. 즉, 시간이 지남에 따라 시스템의 지속 가능성을 확인합니다.
- 내구성 테스트 결과 데이터는 고객이 인프라 요구 사항을 검증하거나 향상시키는 데 사용할 수 있습니다.
내구성 테스트의 과제
이 테스트와 관련된 과제는 다음과 같습니다.
- 그것은 매우 시간이 많이 걸리는 일입니다. 따라서 매우 엄격한 일정이있는 프로젝트에서 내구성 테스트를 수행하기가 어렵습니다.
- 수동으로 할 수 없습니다. 자동화 도구와 해당 도구에 대한 지식이있는 전문가가 필요합니다.
- 적용 할 가치가있는 부하를 결정하는 것은 종종 어렵습니다.
- 테스트 환경이 라이브 프로덕션 환경에서 제대로 격리되지 않은 경우 내구성 테스트의 애플리케이션 또는 네트워크 오류로 인해 전체 작동 시스템이 방해를 받고 영구적 인 데이터 손실 / 데이터 손상이 발생할 수 있습니다.
- 고객은 처리되지 않은 예외를 관찰합니다.
예
내구성 테스트가 필요하고 사용할 수있는 예로는 은행 애플리케이션이 있습니다.
은행 휴무일에 애플리케이션은 시스템이 지속적인 예상 부하 또는 많은 수의 트랜잭션에서 오랫동안 지속될 수 있는지 여부를 확인하기 위해 테스트됩니다.
이것은 지구력 테스트의 완벽한 예입니다.
이 테스트를 수행하는 단계
다음은이 테스트를 수행하는 방법입니다.
# 1) 테스트 환경 구축 :
여기에는 내구성 테스트를 수행하는 데 필요한 하드웨어, 소프트웨어, 데이터베이스 (테스트 기간에 따라 크기가 커짐에 따라 크기 포함) 및 OS를 파악하는 것이 포함됩니다.
또한 지구력 테스트를 수행하기위한 팀을 만들고 팀 내에서 역할과 책임을 할당하는 것도 포함됩니다. 테스트 환경은 테스트를 실행하기 전에 준비되어야하며 실제 라이브 시스템과 적절하게 격리되어야합니다.
# 2) 테스트 계획 및 테스트 시나리오 생성 :
테스트 케이스는 설계, 검토 및 마무리되어야합니다. 테스트 실행 전략도이 단계에서 구축되어야합니다.
응용 프로그램의 중단 점을 결정해야하며 내구성 테스트 중에 응용 프로그램에 얼마나 많은 부하를가할지 결정해야합니다.
# 3) 테스트주기 추정 :
여기에는 각 테스트 단계의 기간과 필요한 테스트주기의 분석이 포함됩니다.
# 4) 위험 분석 :
이것은이 테스트에서 매우 중요한 단계입니다. 테스트 사례는 위험 요소에 따라 우선 순위가 지정됩니다.
Endurance 테스트 중에 테스터가 마주 칠 수있는 위험 및 문제는 다음과 같습니다.
- 성능 테스트가 시간과 일관되게 유지됩니까?
- 아직 공제되지 않은 기타 사소한 문제가 있습니까?
- 아직 해결되지 않은 외부 간섭이 있습니까?
# 5) 시험 일정 :
예산, 결과물 및 기간을 결정합니다.
# 6) 테스트 실행 :
이것은 마침내 지구력 테스트를 시작하는 것을 포함합니다.
# 7) 테스트주기 종료 :
테스트 계획 단계에서 설정 한 종료 기준에 따라 테스트주기를 닫습니다. 발견 된 결함, 테스트 기간 등을 기반으로 할 수 있습니다.
내구성 테스트 도구
시장에는 여러 도구가 있습니다.
다음은 가장 인기 있고 유용한 내구성 테스트 도구 중 일부입니다.
결론
이 기사에서 우리는 내구성 테스트가 무엇인지에 대해 배웠습니다. 어떻게해야합니까? 장점과 단점, 사용 가능한 다양한 도구.
몇 가지 핵심 사항은 다음과 같습니다.
- 내구성 테스트 (흡수 테스트 또는 수명 테스트 또는 용량 테스트)는 소프트웨어 시스템이 장기간에 걸쳐 계속되는 엄청난 예상 부하에서 지속될 수 있는지 확인하기 위해 수행되는 비 기능 테스트 유형입니다.
- 부하 테스트의 하위 집합입니다.
- 이 테스트의 일부로 식별되는 주요 문제는 메모리 누수, 성능 저하, 데이터베이스 연결 문제 등입니다.
- 내구성 테스트 기간은 비즈니스, 프로젝트 및 고객 요구 사항에 따라 다릅니다. 5-10 시간 또는 며칠, 한 달 또는 때로는 1 년 동안 지속될 수 있습니다.
- 애플리케이션을 더욱 견고하게 만들고 지속적으로 무거운 부하를 견딜 수 있도록 준비합니다.
- 시간이 많이 걸리므로 Endurance 테스트를 수동으로 수행하는 것은 피해야합니다. 대부분 자동화되어 있습니다.
- 격리 된 테스트 환경을 설정 한 다음 테스트 계획을 만들고 테스트주기 기간을 추정하고 위험을 분석하고 테스트 일정을 준비하고 내구성 테스트를 실행 한 다음 마지막으로 테스트주기를 종료해야합니다.
- Endurance 테스트를위한 훌륭한 도구로는 Apache Jmeter, LoadStorm, LoadRunner, LoadUI, Appvance, OpenSTA, WebLoad 및 IBM Rational Performance Tester가 있습니다.
추가 자료 :
- 2018 년 상위 15 개 성능 테스트 도구 : 부하 테스트 도구 목록
- 성능 테스트에 대한 STH 상세 기사 – 예제 포함
- Apache JMeter를 통해이 테스트를 수행 할 때 알아야 할 4 가지 내구성 테스트 팁
추천 도서
- 최고의 소프트웨어 테스트 도구 2021 (QA 테스트 자동화 도구)
- 소프트웨어 테스팅 QA 어시스턴트 작업
- HP LoadRunner 자습서를 사용한 부하 테스트
- 소프트웨어 테스팅 과정 : 어떤 소프트웨어 테스팅 기관에 가입해야합니까?
- 경력으로 소프트웨어 테스트 선택
- 소프트웨어 테스팅 기술 콘텐츠 작성자 프리랜서 작업
- 몇 가지 흥미로운 소프트웨어 테스트 인터뷰 질문
- 소프트웨어 테스팅 과정 피드백 및 리뷰