android app testing tutorial
Android 앱 테스트 전 기본 지식 수집 :
제목에서 알 수 있듯이이 튜토리얼에서는 Android 테스트 프로세스에 대해 자세히 설명합니다.
그러나 Android 테스트 프로세스의 다양한 세부 사항에 들어가기 전에 몇 가지 질문을 제시하고 싶습니다.
휴대폰을 가지고 계십니까?
자, 그 질문은 얼마나 멍청한가! '우리 모두는 물론입니다. 누구나 휴대 전화를 가지고 있습니다. 휴대 전화는 오늘날 인간 존재의 기본 필수품이되었습니다.
휴대 전화에있는 OS를 말씀해 주시겠습니까?
2014 ~ 16 년 사이에 휴대 전화를 구입했다면 Android에서 휴대 전화를 실행할 가능성은 약 80 ~ 85 %입니다.
학습 내용 :
- Android의 성장
- Android 애플리케이션 소개
- 테스트 프로세스 시작 전 '해야 할 일'목록
- 모바일 앱용 테스트 유형
- Android 앱 테스트의 모범 사례
- Android 테스트 프레임 워크
- 결론
- 추천 도서
Android의 성장
아래 통계는 쉽게 이해할 수있는 방식으로 Android의 성장에 대해 자세히 설명합니다.
- 2009 년에 안드로이드는 초보자였으며 전체 시장의 3.9 %에 불과했습니다.
- 그 당시 주요 기여자는 47 %의 무려 47 % (노키아의 황금기)를 기록한 심비안 OS였습니다.
- 이러한 추세는 수년에 걸쳐 변화하기 시작했으며 Android는 이제 2016 년에 85.2 %에 도달했습니다.
( 이미지 소스 )
- 위 번호는 휴대폰 전용입니다. Android OS는 태블릿 산업에도 큰 영향을 미치고 있습니다. 2011 년 4.4 %의 시장 점유율에서 2015 년 35.7 %까지 사람들이 Android 기반 태블릿 장치에 대한 관심을 발전시키고 있다고 말합니다.
( 이미지 소스 )
- Google Play 스토어에서도 다운로드 수가 급증했습니다. 2010 년부터 2016 년까지 그 숫자는 한 달에 10 억 다운로드에서 한 달에 650 억 다운로드로 증가했습니다.
- 또한 iOS 앱과 비교할 때 안드로이드 앱의 저렴한 가격 (평균 : 0.06 $ / 앱)이 앱 다운로드에 큰 영향을 미칩니다.
왜 내가 그 모든 숫자를 살펴 보았습니까?
Android가 얼마나 방대하게 성장했는지, 앱 개발이 얼마나 까다로워 졌는지,이 OS가 지난 10 년 동안 얼마나 많은 시장을 점령했는지 알기 위해서였습니다.
모든 웹 사이트, Windows 앱 및 Mac 앱에는 이제 Android 형제가 있습니다. 웹 사이트 / 윈도우 앱 개발을 계획하는 즉시 모든 사람이 Android 용 앱을 개발합니다. 고객이 최근 몇 년 동안 컴퓨터 앱이나 웹 사이트보다 모바일 앱을 선호하기 시작했기 때문에 이제 필요하게되었습니다.
일상 활동에서 매우 자주 사용되는 일부 앱은 Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp 등입니다.
Android 시장이 급증한 이유는 다음과 같습니다.
- 개방형 시스템이므로 사용자 정의하기 쉽고 배우기 쉬우 며 앱 개발도 더 쉽습니다.
- Google Play 스토어에 앱을 게시하는 것은 다른 Play 스토어와 비교할 때 매우 쉽습니다.
- Sony, HTC, Samsung, Motorola 등과 같은 Android 휴대폰 시장에는 여러 제조업체가 있습니다.
- Android에는 DualSIM, microSD, 이동식 배터리 등과 같은 수많은 기능이 있으며 이는 추가 이점입니다.
- 안드로이드 폰의 가격은 너무 높지 않고 저렴합니다.
Android 앱의 개발 요구 사항과 함께 Android 테스트에 정통한 테스터에 대한 요구 사항도 증가했습니다.
테스터는 Android 빌드 애플리케이션 테스트를 시작하기 전에 많은 숙제를해야합니다. 가장 먼저 할 일은 OS와 그 역사를 연구하는 것입니다. OS를 모르면 다양한 버전에 대해 앱을 테스트 할 수 없습니다. OS 버전의 기본 기능, UI, GPS, 네트워크 유형 지원, 배터리 수명 등은 앱에 영향을 미치는 중요한 측면 중 일부입니다.
Android를 사용하면 OS뿐만 아니라 연구가 필요한 수많은 기기가 있습니다.
시장에서 수많은 장치를 사용할 수 있으므로 테스트 베드를 마무리하고 동결하기 전에 대상 고객 장치 점유율을 찾아야합니다. DualSIM, 듀얼 카메라, 화면 해상도, 테마 등과 같은 다양한 기능을 제공하는 다양한 장치가 앱에 영향을 미치므로 테스트가 필요합니다.
따라서 QA가 전체 Android 생태계에 대한 포괄적 인 지식을 수집하는 것은 매우 중요합니다.
Android 애플리케이션 소개
Android 앱을 성공적으로 인증하는 데 따르는 다양한 테스트 방법이 있습니다.
일반적인 Android 앱 아키텍처는 아래에 표시된 다이어그램과 유사합니다.
소프트웨어 테스트의 테스트 케이스 유형
위의 그림을 기반으로 앱에는 두 가지 가능성이 있습니다.
1) 웹 애플리케이션 용 모바일 앱 : 고객이 웹 앱을 가지고 있고이를위한 모바일 앱을 만들고 싶을 수 있습니다. Amazon, Jabong, Myntra 등도 똑같은 일을했고, 모바일 앱이 시장에서 붐을 일으키기 시작하자마자이 상업 회사들은 사람들이 곧 웹 앱에서 모바일 앱으로 이동할 것이라는 사실을 깨달았습니다.
2) 별도의 사업체로서의 모바일 앱 : 나는 유사한 물류 앱을 테스트했는데, 비즈니스를 늘리기 위해 드라이버를위한 별도의 앱을 만들어 원활한 배송을 촉진하고 서류 작업을 제거했습니다.
운전자는 배송을 다른 배송 단계와 해당 상태로 이동하기 위해 휴대폰에 앱을 설치했으며 배송 업데이트는 기존 웹 앱에 반영되었습니다.
기타 예 모바일 앱이 별도의 엔티티 인 경우 WhatsApp, S Health와 같은 건강 추적 앱 등이 있습니다.
테스트 프로세스 시작 전 '해야 할 일'목록
일반적인 테스트주기와 달리 모바일 앱의 첫 번째 릴리스에는 앱의 성공적인 제공을 위해 추가 조사와 계획이 필요한 몇 가지 항목이 있습니다.
다음은 실제 테스트가 시작되기 전에 QA가 수행해야하는 몇 가지 중요한 활동입니다.
#1) OS 및 기기 연구 :
앱 요구 사항을 이해하는 것 외에도 다양한 OS 버전과 장치 모델의 영향을 이해해야합니다. OS 및 장치 모델에 대한 테스트 사례 또는 시나리오를 만들어야합니다.
#두) 테스트 베드 :
데스크톱, 웹 및 iOS 앱과 달리 Android 앱의 테스트 베드 생성은 개방형 Android 시스템으로 인해 매우 까다 롭습니다. 대상 고객을 찾기 위해 BA, 개발자 및 제품 소유자와 논의한 후 결정을 내려야합니다.
#삼) 테스트 계획 :
첫 번째 릴리스이므로 승인 된 테스트 베드, 테스트 유형 등의 승인 된 계획이 있어야합니다. 기능이나 비즈니스 규칙을 조사하는 데 별도의 시간이 필요하거나 테스트가 까다로울 경우 계획에서 모든 것을 다루어야합니다.
# 4) 자동화 도구 :
모바일 앱에 필요한 자동화 도구는 데스크톱 또는 웹 앱의 자동화 도구와 매우 다릅니다. 따라서 도구를 배우기 위해 추가 시간과 노력이 필요할 수 있습니다. 이를 위해 필요한 시간과 노력은 제품 소유자 또는 고객의 승인을 받아야합니다.
# 5) 테스트 기술 또는 방법 :
우리가 일반적으로 수행하는 기존 테스트와 달리 모바일 앱에 특화된 테스트는 거의 없습니다. 즉, 필드 테스트, GPS 테스트, 이미지 캡처 테스트 등. 이러한 유형이 테스트되는 방법과 함께 테스트 케이스에 문서화되어야합니다.
모바일 앱용 테스트 유형
Android 애플리케이션을 인증하기 위해 다음 유형의 테스트가 수행됩니다.
1) 기능 테스트 :
테스트는 일반적으로 사용자 인터페이스 시작 테스트 흐름에 의해 수행됩니다. 사용 사례의 흐름뿐만 아니라 다양한 비즈니스 규칙도 테스트됩니다. 테스트는 요구 사항을 인증하여 수행됩니다. 즉, 응용 프로그램이 요구 사항에 따라 작동하는지 여부.
우리가 예 Zomato 앱의.
앱을 실행하면 위치에 따라 음식점 목록이 표시됩니다. 이제 QA로서 레스토랑 목록을 테스트해야합니다.
Java의 배열에서 요소를 제거하는 방법
이것은 기능 테스트이며 여기에서는 다음과 같은 기능을 테스트합니다.
- 레스토랑 카드가 위치와 함께 표시되는지 확인합니다.
- 표시된 레스토랑이 해당 위치의 지정된 범위 (km) 내에 있는지 확인합니다.
- 각 카드의 리뷰 수가 주어진 리뷰와 일치하는지 확인합니다.
- 위치에 대한 새 레스토랑 추가가 목록에 반영되는지 확인하십시오.
- Zomato 등의 필터링 규칙에 따라 음식점이 나열되는지 확인합니다.
2) Android UI 테스트 :
이것은 응용 프로그램의 사용자 중심 테스트입니다. 이 테스트 단계에서는 앱의 다양한 화면에서 텍스트 가시성, 대화 형 메시지, 데이터 정렬, 다양한 화면에 대한 앱의 모양과 느낌, 필드 크기 등과 같은 항목을 테스트합니다.
위의 Zomato 예제와 동일한 UI 테스트는 다음과 같습니다.
- 카드가 모바일 화면 크기에 맞게 올바르게 표시되는지 확인하십시오.
- 레스토랑 이미지가 예상대로 표시되는지 확인합니다.
- 카드 정보, 레스토랑 등급, 요리 유형, 주소 등이 올바르게 정렬되어 있는지 확인하십시오.
- 목록 스크롤에 결함이없고 긴 카드 목록을 스크롤 할 때 카드가 잘못 정렬되어 표시되지 않는지 확인합니다.
3) 호환성 테스트 :
이 테스트는 주로 OS Vs 앱과 Device model Vs 앱의 두 행렬 형태로 수행됩니다. 일반적으로 지원되는 OS (및 때로는 장치) 목록은 제품 소유자 또는 고객이 제공합니다.
이 테스트의 필요성은 다음과 같습니다.
- Android와 같은 OS를 고려하면 패치 릴리스 / EP 수를 무시하고 7 개의 기본 버전이 발견됩니다.
- 현재 전 세계에서 작동하는 Android 기기 유형을 짐작할 수 있습니까? 1000? 2000 년? 잘못된! 정답은 24000입니다. 전 세계에 존재하고 활성화 된 고유 한 Android 기기에는 24000 가지 유형이 있습니다.
- 이와 같은 변형을 통해 호환성 테스트는 Android 앱을 인증하는 데 중요한 역할을합니다.
- OS 및 장치 유형을 검증 할뿐만 아니라 호환성 테스트에 해당하는 몇 가지 다른 기능도 검증해야합니다. 기능은 다음과 같습니다.
- 화면 크기
- 화면 해상도
- 네트워크 연결
4) 인터페이스 테스트 :
즉, 통합 테스트라고도합니다. 이 테스트는 앱의 모든 모듈이 완전히 개발되고 개별적으로 테스트되고 모든 버그가 수정 된 후에 수행됩니다.
인터페이스 테스트에는 앱의 완전한 종단 간 테스트,지도, 소셜 앱 등과 같은 다른 앱과의 상호 작용, 텍스트 입력을위한 마이크 사용, 바코드 스캔 또는 사진 촬영을위한 카메라 사용 등과 같은 테스트가 포함됩니다.
다시 Zomato를 고려하면 통합 테스트는 다음과 같습니다.
- 사용자가 식당 테이블을 예약 할 수 있는지 확인합니다.
- 사용자가 메뉴를보고 온라인으로 음식을 주문할 수 있는지 확인합니다.
- 사용자가 음식을 주문하는 동안 PayTM 쿠폰을 사용할 수 있는지 확인합니다.
- 사용자가 Google지도에서 식당의 위치를 볼 수 있는지 확인합니다.
- 사용자가 전화 다이얼러를 열고 식당 등에 전화를 걸 수 있는지 확인합니다.
5) 네트워크 테스트 :
네트워크 테스트의 주요 기능은 다음과 같습니다.
- 앱은 프로세스를 수행하기 위해 중간 서비스와 대화해야합니다.
- 이 테스트 중에 서비스에 대한 요청 / 응답은 다양한 조건에 대해 테스트됩니다.
- 이 테스트는 주로 동기화 후 데이터 새로 고침 또는 로그인 후 데이터로드 등 활동이 수행되는 응답 시간을 확인하기 위해 수행됩니다.
- 이것은 강력한 Wi-Fi 연결과 모바일 데이터 네트워크 모두에서 수행됩니다.
- 이것은 사내 테스트입니다.
6) 성능 테스트 :
특정 조건에서 응용 프로그램의 성능을 확인합니다.
이러한 조건은 다음과 같습니다.
- 장치의 메모리가 부족합니다.
- 배터리 수준이 매우 낮습니다.
- 네트워크 수신 불량 / 불량.
성능은 기본적으로 두 끝, 응용 프로그램 끝, 응용 프로그램 서버 끝에서 테스트됩니다.
7) 설치 테스트 :
Android 기기에는 사전 설치된 애플리케이션과 사용자가 나중에 설치하는 애플리케이션의 두 가지 유형이 있습니다.
위의 두 가지 모두에 대해 설치 테스트를 수행해야합니다. 이는 오류, 부분 설치 등으로 끝나지 않고 응용 프로그램의 원활한 설치를 보장하기위한 것입니다.
업그레이드 및 제거 테스트는 설치 테스트의 일부로 수행됩니다.
8) 보안 테스트 :
개인 정보 보호와 보안은 앱의 두 가지 주요 요구 사항입니다. 그러나 은행, 의료 분야에서는 이것이 주요 요구 사항이됩니다.
암호화 및 암호 해독 메커니즘에 대한 데이터 흐름 테스트는이 단계에서 테스트됩니다. 저장된 데이터에 대한 액세스도이 단계에서 테스트됩니다.
9) 현장 테스트 :
현장 테스트는 사내가 아닌 모바일 데이터 네트워크에 대해 특별히 수행되며 일반 사용자로 앱을 사용하여 수행합니다. 이 테스트는 전체 앱이 개발, 테스트 및 회귀 된 후에 '만'수행됩니다 (버그 및 테스트 사례의 경우).
기본적으로 휴대폰에 2G 또는 3G 연결이있을 때 앱의 동작을 확인하기 위해 수행됩니다. 필드 테스트는 느린 네트워크 연결에서 앱이 충돌하는지 또는 정보를로드하는 데 너무 오래 걸리는지 확인합니다.
우리 기사에서 현장 테스트에 대해 자세히 읽을 수 있습니다. “모바일 애플리케이션을위한 필드 테스트의 중요성과 필요성”
10) 인터럽트 테스트 :
이러한 유형의 테스트를 오프라인 시나리오 확인이라고도합니다. 중간에 통신이 끊기는 조건을 오프라인 조건이라고합니다.
네트워크 중단을 테스트 할 수있는 몇 가지 조건은 다음과 같습니다.
- 데이터 전송 프로세스 중 데이터 케이블 제거.
- 거래 게시 단계 중 네트워크 중단.
- 중단 후 네트워크 복구.
- 트랜잭션 단계에있을 때 배터리 제거 또는 전원 켜기 / 끄기.
Android 앱 테스트의 모범 사례
모바일 앱 테스트를위한 전략을 세울 때 고려해야 할 몇 가지 요소가 있습니다.
그들은:
1) 장치 선택 :
- 이것은 안드로이드 애플리케이션 테스트 프로세스를 시작하기 전에 가장 중요한 단계 중 하나입니다.
- 테스트 프로세스를 위해 고려해야 할 장치를 결정하십시오.
- 선택은 대상 고객의 수를 최대화하기 위해 수행됩니다.
- OS 버전, 화면 해상도 및 폼 팩터 (태블릿 또는 스마트 폰)와 같은 요소는 선택 단계에서 중요한 역할을합니다.
- 필요한 경우 에뮬레이터의 도움도 고려할 수 있습니다.
- 그러나 에뮬레이터는 물리적 장치 테스트 프로세스를 대체해서는 안됩니다.
- 장치 에뮬레이터는 비용 효율적이며 초기 개발 단계에서 유용합니다.
- 그러나 실제 시나리오를 테스트하려면 물리적 장치가 필수입니다. 에뮬레이터와 물리적 장치 모두 최적화 된 결과를 위해 균형 잡힌 방식으로 사용됩니다.
2) 애플리케이션 베타 테스트 :
- 베타 테스트는 실제 사용자, 실제 장치, 실제 네트워크 및 넓은 지역에 설치된 응용 프로그램으로 테스트하는 데 매우 효과적입니다.
- 이를 통해 네트워크 밀도, 네트워크 변동 (Wi-Fi, 4G, 3G 및 2G) 및 애플리케이션에 미치는 영향을 명확하게 파악할 수 있습니다.
- 실제 세계에서의 베타 테스트는 그러한 종류 중 하나이며 통제 된 환경에서 복제 할 수 없습니다.
3) 연결성 :
- 일반적으로 Android 애플리케이션은 다양한 요구 사항에 따라 인터넷에 연결됩니다.
- 다른 장치의 연결은 전략을 세우는 데 중요한 역할을합니다.
- 대부분 연결은 테스트하는 동안 네트워크 속도, 대기 시간 및 제한된 연결을 조절하는 데 도움이되는 시뮬레이션 소프트웨어에 의해 제어됩니다.
- 실시간 결과 / 데이터에 대해서는 항상 실제 네트워크 연결에서 테스트하는 것이 좋습니다.
4) 수동 또는 자동 테스트 :
- 자동화 테스트는 첫 번째 실행에 충분한 시간이 걸리지 만 테스트를 반복해야 할 때 유용합니다. 이는 또한 다양한 개발 단계에서 전체 테스트 시간을 단축합니다.
- Android 자동화는 애플리케이션 개발 단계에서 회귀 테스트 반복이 높을 때 수동 테스트와 동봉되어야하며, 서로 다른 OS 버전에서 동일한 애플리케이션에 대해 호환성 테스트, 이전 버전과의 호환성 체크 포인트 등을 수행해야합니다.
Android 테스트 프레임 워크
사용 가능한 몇 가지 Android 테스트 프레임 워크가 있습니다.
이 튜토리얼에서는 가장 일반적으로 사용되는 3 가지 유형의 프레임 워크에 대해 설명합니다.
- Robotium 테스트 프레임 워크
- Robo-electric 테스트 프레임 워크
- Appium 테스트 프레임 워크
1) Robotium 테스트 프레임 워크 :
- 이 프레임 워크는 Android 애플리케이션을위한 정교하고 강력한 블랙 박스 테스트 케이스를 작성하는 데 사용됩니다.
- 네이티브 및 하이브리드 클라이언트를 모두 지원합니다.
- 이 프레임 워크를 사용하여 기능, 시스템 테스트 케이스 및 사용자 승인 테스트 케이스를 작성할 수 있습니다.
- Robotium은 Android 1.6 이상을 지원하며 대화 상자, 메뉴, 활동 등도 지원합니다.
- 이 프레임 워크는 여러 Android 활동을 자동으로 처리합니다.
- Android 애플리케이션의 다양한 그래픽 구성 요소와 상호 작용하기위한 몇 가지 메서드가 Robotium의 일부로 제공됩니다. 그들 중 일부는 다음과 같습니다.
- goBack ();
- getButton ();
- isRadioButtonChecked ();
- searchText ( '사용자');
- 버튼을 클릭 ( '로그 아웃');
2) 로봇 전기 테스트 프레임 워크 :
- 이 프레임 워크는 JUnit4 프레임 워크를 기반으로하는 JVM에서 Android 애플리케이션을 테스트하는 데 도움이됩니다.
- Android API를 사용합니다.
- 이것은 테스트 케이스를 작성하고 JVM에서 실행하는 데 도움이됩니다.
- 이 아래에서 모든 클래스는 그림자 개체라고하는 것으로 대체됩니다.
- 메서드가 구현 될 때마다 Robo-electric은 내부적으로 섀도우 개체에 호출을 보냅니다.
- 구현에 따라 메서드가 shadow 객체에 의해 구현되면 값이 반환됩니다. 그렇지 않으면 NULL이 반환됩니다.
- 섀도우 객체와 JVM으로 인해 실행이 더 빨라집니다.
3) 테스트 프레임 워크 시대;
- 이 프레임 워크는 Android 장치 용 네이티브, 하이브리드 및 모바일 웹 앱에서 작동합니다.
- Appium은 유틸리티를 무료로 사용할 수 있습니다.
- 단일 API는 Android 및 iOS 플랫폼 모두에서 작동합니다. 이것은 크로스 플랫폼 테스트를 지원하는 프레임 워크 중 하나입니다.
- Selenium 웹 드라이버를 사용하여 Android 애플리케이션과 상호 작용합니다.
- Appium은 Java, C #, Python, PHP, Ruby 등과 같은 많은 프로그래밍 언어를 사용하여 스크립트 작성을 지원합니다.
결론
Android 애플리케이션 자동화는 필요에 따라 수동으로 통합 할 수 있습니다. 그러나 Androind Automation 테스트가 전략에 추가되면 올바른 도구를 선택하는 것이 큰 작업입니다. 다중 플랫폼 지원, 테스트 워크 플로, 도구 가격, 서비스 / 지원 등과 같은 자동화 도구 요소를 선택하는 동안 고려해야합니다.
Android 애플리케이션 테스트에는 몇 가지 문제가 있습니다. Android 테스트 프로세스를 실제로 구현하기 전에 고려해야 할 여러 요소가 있지만 일단 완료되면 매우 흥미로운 작업이됩니다.
자세한 내용은 다음 자습서를 참조하십시오. 모바일 테스트 과제 및 솔루션.