stability testing software testing
안정성 테스트는 성능 테스트의 일부입니다. 이 튜토리얼은 예를 들어 안정성 테스트의 목적, 중요성 및 필요성을 설명합니다.
안정성 테스트는 '비 기능'테스트입니다. 여기서 팀은 사이트의 기능과 기본 기능을 테스트하지 않습니다. 그러나 '견고성', '오류 처리', '신뢰성'및 제품 안정성과 같은 소프트웨어 제품의 기능을 테스트합니다.
시장에서 신제품을 구매하는 사람을 생각해 봅시다 ( 예를 들어, 핸드폰). 구매자는 제품이 고장없이 오랫동안 균등하게 작동하기를 기대합니다. 마찬가지로 웹 사이트 및 모바일 앱 사용자는 해당 웹 사이트 또는 모바일 앱이 높은 안정성과 안정성으로 작동 할 것으로 기대합니다.
이제 전자 상거래 포털에서 상품을 구매하려는 사용자의 경우를 살펴 보겠습니다. 많은 사용자가 동시에 동일한 포털을 사용하는 경우 웹 사이트의 성능 저하 가능성이 높습니다. 사용자는 세션 중에 응답 시간이 느려지거나 메모리 누수가 발생할 수도 있습니다.
이러한 문제는 개발자와 이해 관계자 모두에게 위협이됩니다. 최종 사용자에게 도달하기 전에 이러한 문제를 찾아 개발 팀에보고하는 것은 테스트 팀의 책임입니다. 이러한 유형의 테스트는 성능 테스트를 받게됩니다. 안정성 테스트는 성능 테스트의 일부입니다.
학습 내용 :
안정성 테스트 개요
앞서 언급했듯이 안정성 테스트는 '비 기능'테스트로도 정의됩니다. 여기서 테스트 팀은 견고성, 오류 처리, 신뢰성 및 제품 안정성을 확인합니다.
이 테스트는 '내구성 테스트'또는 '흡수 테스트'라고도합니다. '극한 부하 테스트'라고도합니다.
이 유형의 테스트에서 테스터는 많은 활성 사용자가 동시에 웹 사이트를 사용할 때 온라인 포털이 어떻게 반응하는지 확인합니다. 테스터는 또한 이러한 환경에서 시스템 응답을 확인해야합니다.
대부분의 경우 웹 사이트는 서버를 다시 시작할 기회없이 몇 주 (심지어 몇 달) 동안 계속 실행되어야합니다. 이러한 웹 사이트의 활성 사용자 (현재 웹 사이트를 사용하는 사용자)는 엄청날 수 있으며 각 사용자는 원활한 성능을 기대합니다.
테스터의 역할은 개발자에게 신뢰를 제공하고 최종 사용자가 높은 트래픽에서도 실패 또는 메모리 누출없이 시스템을 들여 쓰기 된 상태로 사용할 수 있도록하는 것입니다. 이를 위해 애플리케이션은 최대 부하 (애플리케이션의 중단 점까지)를 받고 이러한 조건에서 시스템 동작을 확인합니다.
이 테스트는 일반적으로 소프트웨어 출시 전에 수행됩니다. 테스터는 애플리케이션이 웹 사이트에 예상되는로드를 처리 할 수 있는지 확인해야합니다. 때로는 과부하로 인해 시스템이 충돌하거나 느려지거나 예기치 않은 동작이 나타날 수도 있습니다.
소프트웨어 안정성은 위에서 언급 한 스트레스 조건에서 시스템의 원활한 성능에 크게 좌우됩니다. 따라서 안정성 테스트는 매우 중요한 역할을합니다.
안정성 테스트의 목적
목표는 다음과 같습니다.
- 시스템의 내구성을 찾기 위해.
- 응용 프로그램의 안정성을 찾아 개발자의 신뢰도를 높입니다.
- 스트레스가 많은 환경에서 시스템의 결함을 찾습니다.
- 제품의 전반적인 평가 및 효과.
- 시스템이 큰 프로그램을 처리 할 수 있는지 확인합니다.
- 응용 프로그램의 응답 시간을 테스트합니다.
- 데이터베이스 연결을 확인합니다.
안정성 테스트에 대한 사실
몇 가지 유용한 사실이 아래에 나열되어 있습니다.
- 안정성 테스트에는 적절한 테스트 환경이 필요합니다.
- 더 나은 결과를 얻으려면 안정성 테스트에 잘 계획되고 구조화 된 접근 방식이 필요합니다.
- 시간이 많이 걸리는 프로세스입니다. 테스트 프로세스에 소요되는 시간은 고객의 요구 사항, 제품 유형 및 회사 정책에 따라 달라질 수 있습니다.
- 이러한 형태의 테스트에서는 시스템 격리가 중요합니다. 응용 프로그램의 안정성 테스트를 수행하는 동안 데이터가 영구적으로 손실되거나 손상 될 가능성이 있습니다.
- 내구성 테스트는 응용 프로그램 구성 요소의 오류를 일으킬 수 있으므로 최종 사용자는 처리되지 않은 예외를 관찰 할 수 있습니다.
소프트웨어 시스템의 안정성과 신뢰성의 차이점
소프트웨어 응용 프로그램의 안정성과 안정성에는 상당한 차이가 있습니다. 이것은 예를 통해 설명 할 수 있습니다.
예:
사용자가 휴대 전화에 새 앱을 설치하고 실행했다고 가정 해 보겠습니다. 설치된 애플리케이션이 3 분 사용 후 충돌하는 경우 확실히 사용자를 성가 시게 할 것입니다. 그러나 사용자가 앱을 다시 시작한 후 손실없이 데이터를 복원 할 수 있다면 응용 프로그램의 안정성이 저하되지 않습니다. 이러한 응용 프로그램은 신뢰할 수있는 것으로 간주 할 수 있지만 안정적인 것으로 간주 할 수 없습니다.
Excel의 테스트 요약 보고서 템플릿
반면에 애플리케이션 데이터가 제대로 저장되지 않는 시나리오를 생각해보십시오. 여기서 애플리케이션은 잘 작동하고 충돌하지 않습니다 (예 : 3 분마다). 이러한 애플리케이션은 신뢰할 수있는 것으로 간주 될 수도 있고 그렇지 않을 수도 있지만 '안정적인'것으로 간주 될 수 있습니다.
신뢰성과 안정성은 동전의 양면과 같습니다. 따라서 비즈니스 관점에서 제품의 안정성과 안정성이 모두 중요하다는 사실을 기억하십시오.
안정성 테스트의 예 :
사용자가 새 휴대 전화를 구입할 때 고의로 또는 무의식적으로 안정성 테스트를 수행하는 것은 일반적인 접근 방식입니다. 사용자는 장치 메모리에 많은 이미지, 사진, 비디오, 문서 등을 저장하고 너무 많은 데이터가 장치의 성능에 영향을 미치는지 확인합니다. 이것은 안정성 테스트의 특정 예입니다.
방대한 데이터가 저장되어 있기 때문에 때때로 장치가 중단 될 수 있으며, 사용자는 장치가 성능을 회복하기 위해 일부 데이터를 삭제하거나 임시 파일을 지워야합니다. 이 테스트 후 사용자는 시스템 용량에 대한 명확한 아이디어를 갖게됩니다.
또 다른 실시간 예는 온라인 구매 포털입니다. '판매 / 축제'시즌 동안 많은 사람들이 이러한 유형의 웹 포털에서 상품을 구매합니다. 웹 사이트의 성능은 사용자의 기대를 충족해야합니다.
따라서 테스터는 해당 기간 동안 이러한 사이트에서 발생할 수있는 예상되는 '러시'를 염두에두고 사이트를 테스트해야합니다.
인터넷 연결의 안정성 테스트
여기서 테스트 사례는 인터넷 연결이 얼마나 안정적인지 확인하는 것입니다. 인터넷을 통해 연결을 설정하고 웹 페이지를 요청하는 동안 패킷 손실로 인해 사용자는 웹 페이지를 볼 때 일관성없는 대기 시간을 겪어야합니다.
때때로 패킷 손실은 목적지에 도달하지 못할 때 발생합니다. Skype 화상 통화를 사용하거나 인터넷을 통해 게임을하거나 무작위로 인터넷 연결이 끊기는 동안 많은 사람들이 비슷한 문제를 겪었을 수있는 것은 패킷 손실 때문입니다.
인터넷 연결 테스트를위한 전제 조건 :
- 인터넷 안정성을 테스트하려면 방화벽이 비활성화 된 웹 브라우저가 있어야합니다.
- 웹 주소 ( 예를 들어, https://www.google.com/ ) 실패 할 것 같지 않습니다.
- Google 스프레드 시트 또는 Microsoft Excel을 사용하여 결과를 기록하십시오. 결과는 사용자가 이해하기 쉽고 읽기 쉽습니다.
- 인터넷 연결, 장치를 다시 확인하고 연결을 다시 확인하십시오. 그런 다음 아래에 언급 된 테스트를 수행합니다.
인터넷 연결 테스트에 사용되는 방법 :
연결을 테스트하는 가장 좋은 방법은 SpeedTest . (더 읽기 전에 사이트를 방문하십시오). SpeedTest.net에는 서버 선택에 대한 조항이 있습니다. 가까운 서버를 선택하고 실행하십시오.
그 후 사이트는 사전 정의 된 알고리즘을 기반으로 몇 가지 계산을 수행하고 즉시 인터넷 연결 품질을 결정하는 보고서를 표시합니다. 보고서에는 패킷 손실 비율이 포함됩니다. ‘0 %’여야합니다.
‘0 %’패킷 손실은 연결의 높은 안정성을 결정합니다. '0'보다 큰 숫자는 연결이 불안정 함을 나타냅니다.
두 번째 방법은 'cmd'프롬프트를 사용하여 'ping'명령을 입력하는 것입니다 (아래 그림 참조). 여기에서 명령 프롬프트를 사용하여 인터넷의 안정성과 대기 시간도 실시간으로 테스트 할 수 있습니다.
그림에서 'Ping 통계'섹션을 확인하십시오.
여기,
보낸 패킷 수 = 4
수신 된 패킷 수 = 4
손실 된 패킷 수 = 0
결과는 연결이 매우 안정적임을 보여줍니다.
사용 된 프로세스 :
1 단계: 테스터는 위에서 설명한 두 가지 방법 중 하나를 선택합니다.
2 단계: 테스터는 프로세스를 실행하고 인터넷 연결에 대한 응답으로 얻은 필요한 정보를 스프레드 시트에 기록합니다.
3 단계 : 그들은 일주일에 3-4 번 과정을 반복 할 것입니다.
(안정성 테스트는 일정 기간 동안 수행되기 때문에 테스터는 적어도 일주일에 두 번 이상 프로세스를 예약해야합니다.)
4 단계 : 결과는 스프레드 시트에 기록됩니다.
테스터는 프로세스 실행 날짜를 기록해야합니다. 각 날짜에 얻은 결과를 비교하여 현재 네트워크의 안정성에 대한 아이디어를 얻으십시오.
노트 : 중단 점 시스템에 추가 부하가 주어지면 시스템이 붕괴되는 시스템의 상태입니다. 시스템의 용량을 정의합니다.
사양 문서는 팀 리더가 테스터에게 제공하는 문서이며 시스템의 예상 부하에 대한 세부 정보를 포함합니다. 안정성 테스트에서 테스터는 사양 문서에 제공된 지침에 따라 시스템 중단 점을 확인합니다.
테스트 팀은 사양 문서에 지정된 중단 점 위 / 아래의 부하로 애플리케이션을 테스트하여 시스템을 확인합니다. 이것은 부하 테스트의 경우와 다릅니다.
eps 파일을 어떻게 열 수 있습니까?
안정성 테스트에서는 예상되는 부하 만 테스트에 사용하지만 부하 테스트에서는 예상치 못한 부하가 애플리케이션에 주어지고 테스터는 애플리케이션의 용량을 확인합니다.
안정성 테스트를 기반으로 한 소프트웨어 테스트 수명주기
의 다른 단계 소프트웨어 테스트 수명주기 아래에 등록되어 있습니다.
컴퓨터의 운영 체제 이름
- 요구 사항 분석
- 테스트 계획
- 테스트 케이스 개발
- 테스트 환경 설정
- 테스트 케이스 실행
- 테스트 마감
위의 모든 단계를 자세히 이해합시다.
# 1) 요구 사항 분석
이 단계에서 테스트 팀은 응용 프로그램에서 수행 할 여러 유형의 테스트를 결정합니다. 순전히 클라이언트 요구 사항과 응용 프로그램 유형에 따라 다릅니다. 예를 들어, 테스터는 은행 애플리케이션을 테스트하고 있으며이 경우 가장 우선 순위가 높은 테스트는 보안 테스트입니다. 테스터가 부동산 애플리케이션을 테스트하는 경우 기능 테스트에 우선 순위를 부여합니다.
# 2) 테스트 계획
이 단계에서는 테스트 범위에 대해 설명합니다. 테스터는 자동화의 필요성에 대해 논의합니다. 안정성 테스트의 경우 테스트 프로세스가 지루하고 일정 기간 동안 여러 번 반복되어야하므로 자동화가 좋은 선택이 될 것입니다. ‘LoadStrom’은 자동화를 사용하여 안정성 테스트를 수행 할 수있는 좋은 도구입니다.
이 단계에서는 클라이언트와 테스트를위한 예산 및 시간 제한에 대해 논의합니다. 테스트는 시간이 많이 걸리므로 예산과 시간 제한이 테스트 계획을 충족해야합니다.
# 3) 테스트 케이스 개발
애플리케이션 테스트를위한 테스트 케이스는이 단계에서 생성됩니다.
# 4) 테스트 환경
테스트 환경은 안정성 테스트를위한 필수 요소입니다. 프로덕션 환경을 복제 한 적절한 테스트 환경이 필요합니다. 테스트 중에 사이트가 충돌하거나 데이터가 손실 될 수 있으므로 원래 환경은 사용하지 않아야합니다.
# 5) 테스트 실행
이 단계에서는 테스트 케이스가 실행되고 테스트 결과가 확인됩니다. 이것은 시간이 많이 걸리는 단계입니다. 이 단계에서 테스터가 직면하는 일반적인 문제는 메모리 누수, 데이터 연결 문제, 느린 응답 시간 등입니다.
# 6) 테스트 종료
이 단계에서는 모든 팀 구성원이 프로젝트에 사용 된 종료 기준을 충족하고 논의합니다. 종료 기준은 발견 된 결함 수 및 테스트에 사용 된 시간과 같은 요인에 따라 다릅니다.
안정성 테스트에 사용되는 도구
다음 도구가 사용됩니다.
- LoadRunner
- OpenSTA
- LoadUI
- WebLOAD
- LoadComplete
- Appvance
- LoadUI
- 합리적인 성능 테스터
내구성 테스트를 위해 Apache JMeter를 사용하는 방법은 무엇입니까?
Apache JMeter 내구성 테스트를위한 좋은 도구입니다. 테스트를 시작하기 전에 테스터는 비즈니스 목표에 대해 잘 알고 있어야합니다. 그 후 테스터는 테스트 스크립트를 만듭니다. 그런 다음 JMeter에서 스레드 그룹 설정을 구성합니다.
JMeter를 사용하여 내구성 테스트를 수행하는 동안 다음 요소를 지정해야합니다.
- 스레드 수 : 사이트의 예상 사용자 수를 나타냅니다.
- 램프 업 기간 : 이는 각 스레드가 완료하는 데 걸린 시간을 나타냅니다. 스레드가 5 개인 경우 램프 업 기간은 50 초입니다.
- 루프 수 : 프로세스가 반복되는 횟수를 나타냅니다. 내구성 테스트의 경우 영구로 설정됩니다.
- 스케줄러 : 이 테스트에서는 스케줄러 기능을 사용합니다. 요구 사항에 따라 스케줄러 구성을 지정해야합니다.
결론
많은 응용 프로그램이 부적절하게 설계되어 사용 후 장치 메모리를 해제하지 않습니다. 이것은 점차적으로 기억 상실로 이어질 것입니다. 안정성 테스트를 통해 문제를 극복 할 수 있습니다. 따라서 안정성 테스트는 매우 중요합니다. 비 기능 테스트입니다. 응용 프로그램의 특성에만 관련됩니다. 여기서 테스트는 시스템의 동작에 관한 것이 아닙니다.
안정성 테스트의 중요성과 필요성을 이해 하셨기를 바랍니다.
추천 도서
- 소프트웨어 테스팅 QA 어시스턴트 작업
- 소프트웨어 테스팅 과정 : 어떤 소프트웨어 테스팅 기관에 가입해야합니까?
- 소프트웨어 테스팅 기술 콘텐츠 작성자 프리랜서 작업
- 경력으로 소프트웨어 테스트 선택
- 초보자 테스터를위한 소프트웨어 테스트 조언
- 소프트웨어 테스팅 과정 피드백 및 리뷰
- 소프트웨어 테스터에서 동기 부여를 유지하는 방법은 무엇입니까?
- 소프트웨어 테스팅에서 몽키 테스팅이란 무엇입니까?