volume testing tutorial
볼륨 테스트 개요 :
아래 그림은 어떤 식 으로든 우리 앱과 관련이 있습니까? 예, 이것은 서버, 데이터베이스, 웹 서비스 등에 과부하가 걸릴 때 정확히 발생합니다.
우리 모두는 기능 및 비 기능 테스트를 알고 있어야하지만 비 기능 테스트가 기능 테스트만큼 중요하다는 사실을 염두에두고 계십니까? 짧은 기간의 릴리스에서는 때때로이 비 기능적 테스트를 무시하는 경향이 있지만 이상적으로는 안됩니다.
Xbox One 용 최고의 vr 헤드셋
제품 소유자가이 요구 사항을 제공했는지 여부는 중요하지 않습니다. 이 테스트는 소규모 릴리스에 대해서도 전체 테스트 프로세스의 일부로 간주해야합니다.
볼륨 테스트에 대한이 자습서는 더 나은 방법으로 이해할 수 있도록 의미, 필요성, 중요성, 체크리스트 및 일부 도구에 대한 전체 개요를 제공합니다.
학습 내용 :
- 볼륨 테스트 란 무엇입니까?
- 이 테스트는 언제 필요합니까?
- 볼륨 테스트를 목표로해야하는 이유는 무엇입니까?
- 이 테스트를위한 체크리스트는 무엇입니까?
- 볼륨 테스트 대 부하 테스트
- 이 테스트를 수행하는 방법?
- 볼륨 테스트 도구
- 결론
- 추천 도서
볼륨 테스트 란 무엇입니까?
볼륨 테스트는 비 기능 테스트 유형입니다. 이 테스트는 데이터베이스에서 처리하는 데이터 볼륨을 확인하기 위해 수행됩니다. 플러드 테스트라고도하는 볼륨 테스트는 데이터베이스의 방대한 데이터에 대해 소프트웨어 또는 앱의 성능을 확인하기 위해 수행되는 비 기능 테스트입니다.
데이터베이스는 많은 양의 데이터를 추가하여 임계점까지 확장 한 다음 시스템의 응답을 테스트합니다.
이것은 이론 부분이었습니다. 이해하는 데 도움이되는 몇 가지 실용적인 예를 들어 설명하겠습니다. '언제' 볼륨 테스트의 일부입니다.
이 테스트는 언제 필요합니까?
이상적으로는 모든 소프트웨어 또는 앱에서 데이터 볼륨을 테스트해야하지만 데이터가 무겁지 않은 경우이 테스트를 피하는 경향이 있습니다. 그러나 데이터가 매일 MB 또는 GB 단위로 처리되는 경우에는 확실히 볼륨 테스트를 수행해야합니다.
다음은 '언제'부분을 설명하는 8 년 간의 경험을 바탕으로 한 몇 가지 예입니다.
예 1 :
내 벤처 중 하나는 웹 앱과 모바일 앱으로 구성된 큰 시스템이었습니다. 그러나 웹 앱 자체에는 3 개의 다른 팀이 처리하는 3 개의 모듈이 있습니다.
때때로, 심지어 우리와도 함께 테스트를 위해 데이터를 '함께'추가하면 데이터베이스 속도가 느려졌습니다. 귀찮은 일이었고 방대한 양의 데이터로 인해 작업이 방해를 받고 작업을 쉽게하기 위해 DB를 자주 정리해야했습니다.
'라이브'시스템이 처리하는 데이터는 약 1GB 였으므로 모바일 앱과 비교할 때 웹 앱은 데이터 양에 대해 매우 자주 테스트되었습니다. 웹 앱 QA 팀에는 야간에 실행되고이 테스트를 수행하는 자체 자동화 스크립트가 있습니다.
예 2 :
내 벤처의 또 다른 예는 웹 앱뿐 아니라 SharePoint 앱, 심지어 설치 프로그램도있는 생태계였습니다. 이 모든 시스템은 데이터 전송을 위해 동일한 데이터베이스와 통신했습니다. 해당 시스템에서 처리하는 데이터도 매우 방대했으며 어떤 이유로 든 DB가 느려지면 설치 프로그램도 작동을 멈 춥니 다.
따라서 정기적으로 볼륨 테스트를 수행하고 모든 문제에 대해 DB 성능을 미세하게 관찰했습니다.
비슷하게, 우리는 걸릴 수 있습니다예대량의 데이터 거래를 처리하고 따라서 볼륨 테스트가 필요한 쇼핑, 티켓 예약, 금융 거래 등에 매일 사용하는 몇 안되는 앱.
반대로, 이상적인 볼륨 테스트는 자체 한계와 과제가 있기 때문에 항상 달성 할 수있는 것은 아닙니다.
제한과 과제는 다음과 같습니다.
- 정확한 메모리 조각화를 만드는 것은 어렵습니다.
- 동적 키 생성은 까다 롭습니다.
- 이상적인 실제 환경, 즉 라이브 서버의 복제본을 만드는 것은 까다로울 수 있습니다.
- 자동화 도구, 네트워크 등도 테스트 결과에 영향을줍니다.
이제 우리는 언제 이러한 유형의 테스트를 수행해야합니다. 우리도 이해합시다 '왜' 우리는이 테스트를 수행하는 목적 또는 목적에서와 같이이 테스트를 수행해야합니다.
볼륨 테스트를 목표로해야하는 이유는 무엇입니까?
볼륨 테스트는 시스템이 실제 환경에 얼마나 적합한 지 이해하는 데 도움이되며 나중에 유지 관리 목적으로 사용될 비용을 절약하는데도 도움이됩니다.
다음은이 테스트를 수행하는 몇 가지 가능한 이유입니다.
- 가장 기본적인 요구 사항은 증가 된 데이터에 대한 시스템 성능을 분석하는 것입니다. 엄청난 양의 데이터를 생성하면 응답 시간, 데이터 손실 등의 측면에서 시스템 성능을 이해하는 데 도움이됩니다.
- 방대한 데이터와 임계점에서 발생할 문제를 식별합니다.
- 지속 가능 또는 임계점을 넘어서 시스템 동작, 즉 DB 충돌이 응답하지 않거나 시간 초과되는 경우.
- DB 과부하에 대한 솔루션을 구현하고 검증합니다.
- 시스템이 실패하고 예방 조치가 필요한 DB의 극단적 인 지점 (수정할 수 없음)을 찾습니다.
- DB 서버가 2 대 이상인 경우 DB 통신 문제, 즉 장애 발생 가능성이 가장 높은 서버 등을 파악합니다.
이제 우리는이 테스트를 수행하는 중요성과 이유를 알고 있습니다.
또는 여기서 공유하고 싶은 경험은 모바일 앱의 경우 한 번에 한 사람 만 앱을 사용하고 모바일 앱이 간단하게 설계 되었기 때문에 볼륨 테스트가 필요하지 않을 수 있다는 것입니다. .
따라서 많은 데이터가 포함 된 매우 복잡한 앱이 없으면 볼륨 테스트를 건너 뛸 수 있습니다.
시스템이나 앱에 대해 무엇을 확인해야하는지 알고 나면 다음으로 할 일은 앱에서 정의 할 체크리스트를 만드는 것입니다. '뭐' 테스트가 필요합니다.
이 테스트를위한 체크리스트는 무엇입니까?
앱 또는 시스템의 체크리스트를 만드는 몇 가지 예를 살펴보기 전에 먼저 볼륨 테스트를위한 체크리스트 또는 테스트를 시작하기 전에 접근 방식을 만드는 동안 염두에 두어야 할 몇 가지 사항을 이해하겠습니다.
기억해야 할 사항 :
- 개발자는 시스템에 대해 많이 알고 있으며 입력 및 병목 현상을 제공 할 수 있으므로 테스트 계획에 대한 루프를 유지하십시오.
- 테스트를 전략화하기 전에 서버 구성, RAM, 프로세서 등과 같은 물리적 측면을 이해하십시오.
- 시스템의 복잡성을 전체적으로 설명 할 수 있도록 DB, 절차, DB 스크립트 등의 복잡성을 최대한 이해합니다.
- 정보학 (예 : 그래프, 데이터 시트 등)을 준비합니다. 가능한 경우 정상적인 데이터 양과 시스템 상태에 대해 가능하면 DB에 스트레스를주기 전에 정상적인 데이터로드에 대해 성능이 양호한 지 확인하는 데 도움이됩니다. 이것은 또한 스트레스 부분으로 이동하기 전에 볼륨 테스트를 위해 수정이 필요한 문제가 없는지 확인하는 데 도움이됩니다.
다음은 체크리스트에 추가하거나 사용할 수있는 몇 가지 예입니다.
- 데이터 저장 방법의 정확성을 확인하십시오.
- 시스템에 필요한 메모리 리소스가 있는지 확인하십시오.
- 지정된 한도를 초과하는 데이터 볼륨의 위험이 있는지 확인합니다.
- 데이터 볼륨에 대한 시스템의 반응을 확인하고 관찰합니다.
- 볼륨 테스트 중에 데이터가 손실되는지 확인하십시오.
- 데이터를 덮어 쓰는 경우 사전 정보로 덮어 쓰는지 확인합니다.
- 많은 속성 (검색 가능)과 같이 정상 범위를 초과하는 영역을 식별하십시오. 조회 테이블, 많은 위치 매핑 등
- 앞서 언급했듯이 먼저 정상 볼륨에 대한 결과를 가져 와서 기준을 만든 다음 스트레스를 받으면서 진행하십시오.
다른 예제, 테스트 사례 및 도구로 이동하기 전에 먼저이 테스트가 부하 테스트와 어떻게 다른지 이해하겠습니다.
볼륨 테스트 대 부하 테스트
다음은 볼륨 테스트와 부하 테스트의 주요 차이점 중 일부입니다.
S. 아니. | 볼륨 테스트 | 부하 테스트 |
---|---|---|
1 | 볼륨 테스트는 DB에있는 대용량 데이터에 대한 데이터베이스 성능을 확인하기 위해 수행됩니다. | 부하 테스트는 리소스에 대한 사용자 부하를 변경하고 리소스의 성능을 확인하여 수행됩니다. |
두 | 이 테스트의 주요 초점은 '데이터'입니다. | 이 테스트의 주요 초점은 '사용자'입니다. |
삼 | 데이터베이스는 최대 한계까지 강조됩니다. | 서버는 최대 한계까지 스트레스를받습니다. |
4 | 간단한 예는 거대한 크기의 파일을 만드는 것입니다. | 간단한 예는 많은 수의 파일을 만드는 것입니다. |
이 테스트를 수행하는 방법?
이 테스트는 수동으로 또는 도구를 사용하여 수행 할 수 있습니다. 일반적으로 도구를 사용하면 시간과 노력이 절약되지만 볼륨 테스트의 경우 내 경험에 따라 도구를 사용하면 수동 테스트에 비해 더 정확한 결과를 얻을 수 있습니다.
테스트 케이스 실행을 시작하기 전에 다음을 확인하십시오.
- 팀은이 테스트를위한 테스트 계획에 동의했습니다.
- 프로젝트의 다른 팀은 데이터베이스 변경 사항과 작업에 미치는 영향에 대해 잘 알고 있습니다.
- 테스트 베드는 지정된 구성으로 설정됩니다.
- 테스트 기준이 준비되었습니다.
- 테스트를위한 특정 데이터 볼륨 (데이터 스크립트 또는 절차 등)이 준비되었습니다. 데이터 생성 페이지에서 데이터 생성 도구에 대해 읽을 수 있습니다.
실행에 사용할 수있는 몇 가지 샘플 테스트 사례를 살펴 보겠습니다.
볼륨 테스트를 위해 선택한 모든 데이터 볼륨에 대해이를 확인하십시오.
- 데이터 추가가 성공적으로 수행 될 수 있는지, 앱 또는 웹 사이트에 반영되는지 확인합니다.
- 데이터 삭제가 성공적으로 수행 될 수 있는지, 앱 또는 웹 사이트에 반영되는지 확인하십시오.
- 데이터 업데이트가 성공적으로 수행 될 수 있는지, 그리고 그것이 앱이나 웹 사이트에 반영되는지 확인하십시오.
- 데이터 손실이없고 모든 정보가 앱 또는 웹 사이트에 예상대로 표시되는지 확인합니다.
- 높은 데이터 볼륨으로 인해 앱 또는 웹 페이지가 시간 초과되지 않았는지 확인하십시오.
- 높은 데이터 볼륨으로 인해 충돌 오류가 표시되지 않는지 확인하십시오.
- 데이터를 덮어 쓰지 않았고 적절한 경고가 표시되는지 확인합니다.
- 웹 사이트 또는 앱의 다른 모듈이 높은 데이터 볼륨으로 인해 충돌하거나 시간 초과되지 않는지 확인합니다.
- DB의 응답 시간이 허용 범위 내에 있는지 확인하십시오.
볼륨 테스트 도구
앞서 논의했듯이 자동화 테스트는 시간을 절약하고 수동 테스트와 비교할 때 정확한 결과를 제공합니다. 볼륨 테스트에 도구를 사용할 때의 또 다른 이점은 밤에 테스트를 실행할 수 있고 다른 팀이나 팀 구성원의 작업이 DB의 데이터 볼륨에 영향을받지 않는다는 것입니다.
아침에 테스트 일정을 잡으면 결과가 준비됩니다.
다음은 몇 가지 오픈 소스 볼륨 테스트 도구 목록입니다.
# 1) DbFit :
L1 레벨에 대한 데스크탑 지원 인터뷰 질문 및 답변
이것은 테스트 주도 개발을 지원하는 오픈 소스 도구입니다.
DbFit 테스트 프레임 워크는 Fitness를 기반으로 작성되며 테스트는 테이블을 사용하여 작성되며 Java IDE 또는 CI 도구를 사용하여 실행할 수 있습니다.
# 2) HammerDb :
HammerDb 또한 자동화되고 다중 스레드가 가능하며 런타임 스크립팅도 허용하는 오픈 소스 도구입니다. SQL, Oracle, MYSQL 등과 함께 작동 할 수 있습니다.
# 3) JdbcSlim :
JdbcSlim 명령은 Slim Fitness에 쉽게 통합 할 수 있으며 JDBC 드라이버가있는 모든 데이터베이스를 지원합니다. 구성, 테스트 데이터 및 SQL 쿼리를 별도로 유지하는 데 중점을 둡니다.
# 4) NoSQLMap :
이 공격을 자동으로 주입하고 DB 구성을 중단하여 위협을 분석하도록 설계된 오픈 소스 Python 도구입니다. MongoDB에서만 작동합니다.
# 5) Ruby-PLSQL 사양:
PLSQL은 Oracle이 오픈 소스 도구로 제공되므로 Ruby를 사용하여 단위 테스트 할 수 있습니다. 이 기본적으로 두 개의 라이브러리를 사용합니다. Ruby-PLSQL 및 Rspec.
결론
볼륨 테스트는 데이터베이스 성능을 분석하기 위해 수행되는 비 기능적 테스트입니다. 일부 도구를 사용하여 수동으로 수행 할 수 있습니다.
이 테스트를 처음 접하는 QA라면 도구를 사용하거나 일부 테스트 사례를 먼저 실행하는 것이 좋습니다. 이렇게하면 테스트에 들어가기 전에 볼륨 테스트의 개념을 이해하는 데 도움이됩니다.
이 테스트는 매우 까다 롭고 자체적 인 문제가 있으므로 수행하기 전에 개념, 테스트 베드 생성 및 DB 언어에 대한 철저한 지식을 갖는 것이 매우 중요합니다.
이 튜토리얼이이 주제에 대한 지식의 양을 늘렸기를 바랍니다. :)