4.1 도구

모바일 디바이스 및 애플리케이션 시장은 빠르게 확대되면서 모바일 애플리케이션 테스트를 위한 도구의 증가도 그 속도를 달려가고 있다.

여러 가지 기능 및 신뢰성을 가진 도구 중 적합한 도구를 선택하기 위해 노력해야 한다.

 

모바일 테스팅에 초점을 맞춘 도구는 다음 사항을 수행할 수 있어야 함

  • 다양한 환경 및 프로토콜에 적용
  • 네이티브 디바이스 시뮬레이션
  • iOS, 안드로이드와 기타의 다른 운영체제에 걸친 테스팅 지원
  • 복수의 사용자 동시 시뮬레이션
  • 디바이스의 다양하게 조합된 위치 지원
  • 다양한 속도와 품질의 네트워크 시뮬레이션 또는 지원
  • 접속이 끊기거나 접속되는 등의 상황을 만들 있는 접속상태를 시뮬레이션 또는 제공

 

✔️ 일반적인 도구들

  • 상용 도구 : 어떤 기업이 이익을 위해 만든 것 (시장의 요구에 뒤쳐지는 경향이 있음)
  • 오픈소스 도구 : 흥미를 가진 개인이나 커뮤니티에 의해 특정한 수요에 대응하기 위해 만들어진 것 특정 문제의 해결에 집중하는 경향이 있고, 상용 도구는 다양한 기능을 다루기 위해 디자인된다.

4.2 환경과 프로토콜

모바일 애플리케이션은 다양한 환경에서 동작할 것으로 기대한다. 테스트 환경을 선택하고 구성할 때 최소한 다음 사항들을 고려해야 한다.

  • 접속성 : 접속 불량, 재접속 역량, 전송 중 데이터 손실 등의 상황에서 애플리케이션이 계속 작동할 수 있는 역량과 더불어 접속 차단도 테스트해야 함
  • 메모리 : 메모리 손상이나 누수가 발생하지 않도록 반드시 모니터링해야 함
  • 성과(성능): 실제 사용 환경에서 발생할 수있는 약한 접속, 타임아웃 에러 등과같은 변수를 주입하고 제어할 수 있는 역량을 포함 실질적인 통신 인터페이스를 제공해야

 

✔️ 데이터 처리 : 모바일 애플리케이션에 의해 사용되는 데이터

  • 백앤드 시스템 (예: 데이터베이스 서버)
  • 디바이스 자체 (예: GPS 위치)
  • 사용자 (어떤 입력을 통해 예: 텍스트, 선택 UI 상호작용)
  • 연결된 다은 디바이스 (예: USB를 통해 연결된 PC)

✔️ 디바이스의 역량과 특징은 매우 다양함, 디바이스의 모든 역량을 다룰 필요는 없지만 디바이스의 사양이 애플리케이션과 어떻게 상호작용하거나 영향을 미치는지 이해하는 것은 중요함

 

✔️ 디바이스의 위치 : 테스터는 실제 디바이스나 시뮬레이션 된 디바이스가 사용 가능한지 고려해야 , 모바일 애플리케이션 테스팅은 흔히 다수의 디바이스에 걸친 테스트를 요구하기 때문에, 이들 디바이스가 사용 가능한지를 테스트 계획 단계에서 결정해야 한다. 


4.3 특정 애플리케이션 기반 환경 고려사항

브라우저 기반 어플리케이션 : 해당 애플리케이션은 디바이스에서 작동되는 일련의 브라우저에서 작동하도록 설계됨

장점 : 내장된 이식성 = 브라우저를 실행할 수 있는 모든 디바이스는 이 애플리케이션을 수 있다

✔️ 모든 웹애플리케이션의 경우와 같이 애플리케이션은 지원되는 브라우저 버전에 대해 테스트되어야한다.

 

네이티브 디바이스 애플리케이션 : 특정 디바이스를 위해 만들어진 애플리케이션의 경우 기능을 제공하기 위해 일반적으로 그 디바이스의 고유 사양과 역량 및 운영체제를 사용함. 이경우 해당 애플리케이션은 일반적으로 다른 환경에 이식할 수 없다. 

 

✔️ 네이티브 디바이스 애플리케이션의경우 시뮬레이터는 디바이스를 위해 특별히 설계되어야 한다. 시뮬레이터가 없는 경우 테스팅은 실제 디바이스에서 진행해야 한다. 테스터는 실제 디바이스가 필요한 부분과 대중적인 일반 시뮬레이터로 테스트 가능한 것 이 무엇인지 이해하기 위해 개발자와 협력해야 한다 이해하기 위해 개발자와 협력해야 한다. 

✔️ 테스터는 개발자와 협력하여 가장 적합한 테스트 플랫폼을 결정해야 한다 (실제 디바이스, 시뮬레이터, 에뮬레이터 )


4.4 실제 디바이스, 시뮬레이터, 에뮬레이터 및 클라우드

 

실제 디바이스 : 실제 사용 환경을 제공하며 테스터로 하여금 시뮬레이터에서는 놓칠 수 있는 모든 디바이스 고유 문제를 발견할 수 있게 해 줌, 시뮬레이터와의 응답 비교용으로 주로 사용됨

✔️ 단점 : 확보하기 어려울 있음(비용 문제등) 

 

 

 

[시뮬레이터]

  • 디바이스의 일부 측면을 모의 실행하는 프로그램.  하드웨어 자체를 모방하지는 않으며 디바이스의 모든 응답 및 활동을 모의 실행하지 않을 수 있다.

 시뮬레이터의 신뢰성 검증

  • 시뮬레이터가 입력에 대해 정확한 응답을 제공하는지 확인하는 것이 중요함. 실제 디바이스와 시뮬레이터에 동일한 입력을 제공하고 산출되는 결과가 동일한지 검증 (만일 다르게 나온다면 해당 시뮬레이터는 신뢰할 수 없음)

 성과 및 부하 테스팅을 위한 시뮬레이터 사용 

  • 통상적으로 시뮬레이터는 부하 생성과 성과 평가에 사용됨. 하드웨어이기보다는 SW이기 때문에 추가적인 비용 없이 많은 수의 시뮬레이터가 만들어지고 실행될 수 있다.

[에뮬레이터] 

  • S/W, 하드웨어 및 운영체제를 포함하는 디바이스 자체의 기능성을 제공하기 위해 사용됨. 카메라나 특수 화면 제어와 같은 다양한 디바이스 구성요소를 사용하는 특정 애플리케이션을 위해 필요함
  • 실제 디바이스의 내부를 모른 채 에뮬레이터가 올바르게 작동하는지 테스트 하기는 어려움
  • 에뮬레이터를 사용하려면 테스터는 그것이 믿을 수 있는 출처를 가진 것 인지, 철저히 테스트된 것인지를 확인해야 함.  

[클라우드] 

  • 클라우드 호스티드 어플라이언스 : 다양한 유형의 디바이스에 대한 접근이 가능함. 기능 테스트뿐만 아닌 성능 및 사용성 테스트에 사용될 수 있음 
  • 클라우드 호스티드 에이전트 : 여러 유형의 내트워크에서 수많은 모바일 디바이스 사용자가 애플리케이션을 때 백엔드에서 무슨 일이 일어나는지 확인할 수 있게 됨
  • 클라우드 네트워크 시뮬레이터 : 클라우드에서 테스트를 수행할 때 네트워크 시뮬레이터는 다양한 네트워크 구성, 속도 및 에러 조건을 모의 실행하는 데 수 있다. 다양한 네트워크 유형들로  실제와 흡사한 테스트 환경을 구축할 수 있다.
  • 클라우드 프로토콜 시뮬레이터: 디바이스는 서로 다른 프로토콜을 통신할 수 있음 그렇기 때문에 프로토콜을 모의 실행하기 위해 사용됨

✔️ 테스팅을 위한 모든 클라우드 설루션은 클라우드 환경의 신뢰성, 환경의 현실성과 접근성을 고려해야 함

      특히 보안에 신경을 많이 써야


4.5 성과(성능) 테스트 도구와 지원

서버와 디바이스 사이에 오가는 다음과 같은 정보

  • 트랜잭션 데이터
  • GPS 정보
  • 이미지 

 양과 빈도

  • 접속/끊김 패턴
  • 활동량 폭발

 사용 패턴

  • 일/주 동안의 시간에 따른 변동
  • 개인용 대 업무용 기기 사용
  • 피크 사용 시간 ( 일별, 분기별)

4.6 테스트 자동화

모바일 애플리케이션 테스트 자동화 프로젝트는 다음 사항을 고려해야 한다.

  • 실제 사용 패턴에 기반을 두고 테스트 
  • 사용자와 디바이스 간의 상호작용을 이해하고 그것을 테스트 
  • 디바이스와 서버 사이의 상호작용을 이해하고 그것을 테스트 
  • 데이터 주도 또는 키워드 주도 접근법을 적용하여 테스트 자동화 스크립트에서 데이터를 분리
  • 실제 기기 제어 기능
  • 유지보수를 위한 개발
  • 테스트 케이스의 버전을 관리하고 이전 버전의 테스트 자동화를 활용해 유지보수 및 릴리즈 프로세스 검증

✔️ 테스트 자동화 코드를 설계할 때부터 유지보수를 고려해야 함, 모바일 애플리케이션은 매우 빠르게 변화하기 때문에 유지보수성은 전통          적 애플리케이션에 대해서보다 모바일 어플리케이션 테스트 자동화에 있어서 더 높은 우선순위를 가진다.

 

✔️ 실제 디바이스에서의 테스트 자동화는 어렵다. 시뮬레이터 또는 에뮬레이터에서의 자동화가 일반적인 접근 방식임

 

 

 

 

 

 

 

 

반응형

'📖 공부' 카테고리의 다른 글

API 이해하기  (0) 2022.08.05
KSTQB_Mobile Tester 5장  (0) 2022.07.29
KSTQB_Mobile Tester 3장  (0) 2022.07.25
KSTQB_Mobile Tester 2장  (0) 2022.07.22
KSTQB_Mobile Tester 1장  (0) 2022.07.20
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기