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 |