모바일 앱 테스트 초보자 가이드

게시 됨: 2018-03-20

다른 소프트웨어와 마찬가지로 모바일 앱도 출시 전에 철저히 테스트하여 모든 것이 의도한 대로 정확히 작동하는지 확인해야 합니다.

모바일 앱 테스트는 이미 길고 번거로운 과정이지만 새로운 휴대용 모바일 장치, 운영 체제 버전 및 앱 테스트 도구가 매일 도입되면서 모바일 앱 테스터의 작업이 그 어느 때보다 복잡하고 까다로워졌습니다.

모바일 앱 테스트에서 경력을 시작하려는 초보자라면 이 가이드가 이에 대한 모든 것을 배우는 데 도움이 될 것입니다. Mobile App Testing이 실제로 무엇인지 이해하는 것으로 시작하겠습니다!

모바일 앱 테스팅이란?

오늘날과 같이 경쟁이 치열한 글로벌 시장에서 모바일 앱의 성공은 앱이 얻은 총 다운로드 수, 앱에서 얻은 긍정적인 리뷰 및 방금 개발한 모바일 앱인 앱 스토어에서 보유하는 순위에 따라 결정됩니다. 사용자를 유치, 참여 및 유지하는 데 완벽해야 하며 이는 엄격한 모바일 앱 테스트를 통해서만 달성할 수 있습니다.

What is Mobile App Testing

모바일 앱 테스트는 기본적으로 모바일 앱의 전반적인 품질, 기능, 사용성 및 일관성을 개선하고 사용자에게 최대한 흠이 없도록 만들기 위해 모바일 앱에서 버그를 찾고 수정하는 프로세스입니다. 모바일 앱 테스트 도구를 사용하여 수동 또는 자동으로 수행하거나 두 가지를 조합하여 수행하는 모바일 앱 테스트는 올바르게 수행되면 사용자에게 깨끗하고 만족스러운 경험을 보장할 뿐만 아니라 앱을 대중화하고 앱을 대중화하는 데 중요한 역할을 합니다. 거의 시간에 성공. 요컨대, 모바일 앱 테스트는 모든 앱이 완벽하고 성공적이며 고품질이어야 하는 것입니다.

모바일 앱 테스트의 주요 과제

모바일 앱 테스트는 기존 데스크톱 테스트보다 훨씬 더 복잡하므로 테스터와 개발자 모두에게 완전히 새로운 도전 과제를 제시합니다. 다음은 테스터가 모바일 앱의 품질과 성능을 개선하면서 직면하는 주요 과제입니다.

다양한 유형의 모바일 앱:

모바일 앱은 네이티브, 웹 또는 하이브리드가 될 수 있기 때문에 그 자체로 큰 도전입니다. 각 앱 유형은 설치 프로세스와 기능 면에서 서로 다르고 상당히 다르기 때문에 완전히 다른 방식으로 테스트해야 합니다. 각 앱 유형 간의 기본적인 차이점으로 인해 모바일 앱 테스트에 여러 가지 문제가 발생합니다.

다양한 모바일 장치:

모바일 앱 테스터가 직면한 가장 큰 문제 중 하나는 오늘날 시장에서 사용할 수 있는 다양한 모바일 장치입니다. 여기에는 스마트폰, 태블릿, e-리더, 웨어러블 장치 및 가까운 장래에 출시될 기타 모바일 장치가 포함됩니다. 다양한 화면 크기, 해상도, 입력 방법 및 하드웨어 기능을 갖춘 이러한 장치는 모바일 앱 테스터에게 완전히 고유한 일련의 과제를 제시합니다.

OS 다양성:

다른 모바일 장치는 다른 운영 체제를 사용하고 특정 운영 체제의 다른 버전은 주어진 시점에 다른 장치에서 사용됩니다. 예를 들어, Android에는 여전히 8개의 다른 OS 버전이 사용 중입니다. 반면에 Apple 기기의 65%는 iOS 11을 사용하는 반면 iOS 10은 Apple 기기의 28%에 설치되어 있으며 7%는 여전히 이전 버전의 iOS를 사용합니다. 동일한 OS의 서로 다른 버전에서 실행되는 여러 모바일 장치에서 단일 앱을 테스트하는 것은 모바일 앱 테스터에게 고유한 과제입니다.

OS Diversity

수많은 제조업체:

테스터가 처리해야 하는 또 다른 큰 과제는 지속적으로 증가하는 모바일 장치 제조업체입니다. 2015년에 모바일 장치 제조업체는 약 1200개에 불과했으며 2018년 초에는 그 수가 1600개 이상에 이르렀습니다. 의심할 여지 없이 이 숫자는 앞으로 몇 년 동안 증가할 것입니다. 제조업체가 서로를 구별하기 위해 모바일 장치에 적용하는 다양한 하드웨어 및 소프트웨어 변경 사항은 앱 작동 방식에 직접적인 영향을 미치므로 테스트 프로세스가 훨씬 더 복잡하고 까다로워집니다.

연결 문제:

다양한 모바일 네트워크(2G/3G/4G LTE/4G VoLTE 및 현재 5G), Wi-Fi, Bluetooth, 적외선 등과 같은 다양한 연결 옵션을 효과적으로 처리하는 것은 산성 테스트에 불과합니다. 모든 종류의 연결 모드에 대해 응용 프로그램은 모바일 네트워크의 변경, 로밍, 약한 네트워크 신호, 네트워크 적용 범위 없음, 느린 연결 속도 등과 같은 다양한 네트워크 조건에서 원활하게 실행되어야 합니다. 그러나 이 문제는 큰 문제로 간주되지 않습니다. 하나는 오프라인 앱용입니다.

지속적인 테스트:

치열한 경쟁이 치열한 오늘날의 시장에서 살아남기 위해서는 모바일 앱이 새로운 기능과 개선 사항으로 자주 업데이트되어야 합니다. 이 요구 사항을 충족하기 위해 많은 개발자는 모바일 앱의 지속적인 통합 및 배포로 이어지는 기존 Waterfall 접근 방식보다 Agile 방법론을 사용하는 것을 선호합니다. 결과적으로 모든 개선 사항이 올바르게 수행되었는지 확인하려면 앱에 대한 지속적인 테스트가 필요합니다. 이것은 또한 모바일 앱 테스터에게 매우 어려운 연습입니다!

Continuous Testing

테스트 방법 선택:

테스터가 극복해야 하는 또 다른 장애물은 올바른 모바일 앱 테스트 도구를 사용하여 적절한 모바일 앱 테스트 접근 방식을 선택하는 것입니다. 모바일 앱 테스트에 주로 두 가지 접근 방식(수동 및 자동)이 사용되는 반면, 시장은 다양한 자동화된 모바일 앱 테스트 도구로 가득 차 있어 올바른 테스트 도구를 선택하는 것이 매우 혼란스럽고 지루한 작업입니다. 하나는 미리 계획된 테스트 전략이 있습니다.

다양한 유형의 모바일 앱 테스트

다른 소프트웨어와 마찬가지로 모바일 앱도 최고의 품질, 사용성 및 보안을 보장하기 위해 엄격한 테스트를 거쳐야 합니다. 이를 달성하기 위해 모바일 앱 개발 중에 여러 유형의 테스트 방법이 사용됩니다. 그들이 무엇이며 어떻게 다른지 살펴 보겠습니다.

기능적 UI 테스트:

가장 기본적인 테스트 유형인 기능 테스트는 앱이 사전 정의된 사용자 요구 사항에 따라 완벽하게 작동하는지 확인합니다. 이러한 테스트는 일반적으로 애플리케이션의 사용자 인터페이스 및 호출 흐름이 제대로 작동하는지 확인하기 위해 수행됩니다. 그러나 기능 테스트를 수동으로 수행하는 경우 여러 모바일 관련 문제로 인해 매우 집약적이고 복잡하며 시간 소모적인 작업으로 판명되는 경우가 많습니다.

사용성 테스트:

사용성은 모바일 애플리케이션의 상업적 성공을 결정하는 데 중요한 역할을 하기 때문에 사용성 테스트는 주로 사용자 경험의 세 가지 주요 영역인 효율성, 효과 및 사용자 만족도에 중점을 둡니다. 이러한 테스트는 모든 장치에서 사용자 경험의 일관성을 보장하고 모바일 앱이 최종 사용자에게 사용하기 쉬운지 여부를 확인하기 위해 수행됩니다.

Usability Testing

호환성 테스트:

앱이 다양한 모바일 장치, 화면 크기, 브라우저, 해상도, OS 플랫폼 및 버전에서 제대로 렌더링되는지 확인하기 위해 호환성 테스트가 수행됩니다. 예를 들어 스마트폰에서는 제대로 작동하는 모바일 앱이 태블릿에서는 완전히 다른 방식으로 작동할 수 있습니다. 따라서 호환성 테스트는 다양한 모바일 장치 및 플랫폼에서 응용 프로그램의 기능을 평가합니다.

메모리 누수 테스트:

저수준 리소스 테스트라고도 하는 메모리 누수 테스트는 앱이 사용 중인 모바일 장치의 내장 메모리를 얼마나 효율적으로 활용하고 있는지 확인하는 것을 말합니다. 여기에는 주로 전체 메모리 사용량 테스트, 일정 기간 후 임시 파일 자동 삭제, 로컬 데이터베이스의 증가하는 문제가 포함됩니다. 모바일 장치는 데스크톱 장치에 비해 메모리 측면에서 매우 제한적이므로 메모리 누수 테스트는 모바일 응용 프로그램의 적절한 기능을 보장하기 위해 매우 중요합니다.

성능 시험:

성능 테스트의 기본 목표는 애플리케이션이 네트워크 범위 불량, 모바일 네트워크에서 Wi-Fi로 연결 전환, 앱 외부에서 공유, 사용 가능한 배터리 또는 메모리 부족, 애플리케이션과 같은 다양한 모바일 장치 문제를 처리할 수 있는지 확인하는 것입니다. 속도, 많은 사용자의 앱 동시 사용 및 기타 유사한 조건. 즉, 모바일 앱, 네트워크 및 서버 성능을 확인하기 위해 성능 테스트를 수행합니다.

중단/작동 테스트:

통화 또는 SMS, 팝업 알림, 전원 케이블 삽입 또는 제거, 배터리 제거, 네트워크 중단 및 복구, 배터리 부족 경고 등과 같이 모바일 장치에서 발생하는 여러 이벤트로 인해 앱이 작동하는 동안 중단될 수 있습니다. 중단 테스트 모바일 앱이 이벤트가 발생할 때마다 자체적으로 닫히고 나중에 자동으로 다시 시작하여 이러한 모든 중단을 견딜 수 있는지 확인하기 위해 수행됩니다.

설치 테스트:

설치 테스트는 사용자가 어려움을 겪지 않고도 적절한 시간 내에 응용 프로그램을 설치, 제거 또는 업데이트할 수 있는지 확인합니다. 이 테스트 단계에서 모바일 앱 테스터는 이 세 가지 프로세스 중에 발생할 수 있는 충돌을 처리할 뿐만 아니라 제거 프로세스가 완료되면 모든 앱 데이터가 장치 저장소에서 완전히 제거되도록 합니다.

보안 테스트:

여기에는 취약점 스캔, 로그 보기, 침투 테스트, 전쟁 전화 걸기, 바이러스 감지, 암호 크래킹 등과 같은 다양한 기술을 사용하여 앱 내에서 사용자의 보안 및 데이터 개인 정보가 위험에 처하지 않았는지 확인하는 것이 포함됩니다. 보안 테스트는 모바일 앱의 기밀성, 신뢰성 및 무결성을 향상시키는 것입니다.

Security Testing

현지화 테스트:

현지화 테스트는 다양한 지리적 지역 및 시간대에서 모바일 앱의 사용성, 기능 및 접근성을 보장합니다. 이러한 유형의 테스트는 특히 앱을 여러 언어로 번역하거나 다른 국가에 출시할 계획일 때 수행됩니다. 현지화 테스트는 앱 QA 테스트의 마지막 단계로 간주됩니다.

회귀 테스트:

이러한 유형의 테스트에는 이전에 수행한 성공적인 테스트를 다시 실행하여 앱 코드에 적용된 변경 사항으로 인해 이전 또는 새로운 버그가 다시 발생하지 않았는지 확인하는 작업이 포함됩니다. 회귀 테스트는 네 가지 수준의 테스트(단위, 통합, 시스템 및 승인) 중에 반복해서 수행할 수 있으므로 자동화된 테스트에 이상적인 후보입니다.

Regression Testing

성공적인 모바일 앱 테스트 전략을 위한 유용한 팁

모바일 앱 테스트에서 정말로 이기고 싶다면 명확하고 강력한 테스트 전략을 개발하는 것이 간과해서는 안 되는 부분입니다. 적절한 모바일 앱 테스트 전략 계획은 위에서 언급한 모바일 앱 테스트 문제를 쉽게 극복하는 데 도움이 될 뿐만 아니라 앱 거부라는 우울한 시나리오에서 구해줍니다. 다음은 효율적이고 효과적인 방식으로 모바일 앱을 테스트하기 위해 따라야 하는 모범 사례입니다.

자동 테스트와 수동 테스트:

위에서 이미 언급했듯이 모바일 앱 테스트는 수동으로 수행하거나 Appium, SeeTest, Selenium 및 Ranorex와 같은 자동화된 모바일 앱 테스트 도구를 사용하여 수행할 수 있습니다. 하나 또는 두 가지 접근 방식이 모바일 앱의 다양한 라이프사이클 단계에서 사용되기 때문에 상황에 따라 둘 중 하나를 선택하는 데 전문가가 되어야 합니다. 자동화된 모바일 앱 테스트는 다양한 개발 단계에서 성공적인 회귀 테스트의 핵심이므로 다음과 같은 시나리오에서만 수행해야 합니다.

  • 가장 빈번한 테스트 케이스가 있습니다.
  • 테스트 케이스에는 예측 가능한 결과가 있습니다.
  • 테스트 케이스는 자동화하기 쉽습니다.
  • 테스트 케이스는 시간이 많이 걸리거나 수동으로 수행하는 것이 불가능합니다.
  • 애플리케이션이 지속적으로 증가하고 있습니다.
  • 모바일 앱 개발 수명 주기가 매우 깁니다.

Automated vs. Manual Testing

반대로 수동 앱 테스트 접근 방식은 사람의 입력, 분석 또는 평가를 기반으로 하며 앱에 새로운 기능이 포함되어 있거나 한 번 또는 두 번만 테스트해야 하는 경우에 사용해야 합니다.

에뮬레이터 대 물리적 장치:

두 가지 접근 방식과 마찬가지로 모바일 앱을 테스트하는 데에는 가상 장치 에뮬레이터 또는 실제 물리적 장치의 두 가지 주요 방법이 있습니다. 장치 에뮬레이터의 사용은 기본 기능을 테스트하기 위한 앱 개발의 초기 단계에서 매우 유용한 것으로 입증되지만 베타 테스트와 같은 테스트의 후반 단계에서는 실제 모바일 장치만큼 효율적으로 작동하지 않습니다. 모바일 장치 에뮬레이터에는 세 가지 유형이 있습니다.

  • 장치 에뮬레이터 : 장치 제조업체에서 제공합니다.
  • 브라우저 에뮬레이터 : 브라우저에서 모바일 장치에 대한 렌더링을 시뮬레이션합니다.
  • 운영 체제 에뮬레이터 : 운영 체제 자체에서 제공합니다.

Emulators vs. Physical Devices

최고의 테스트 결과를 빠르고 효율적으로 얻으려면 먼저 에뮬레이터에서 모바일 앱을 테스트하여 최대한 많은 버그를 감지하고 수정하세요. 테스트가 만족스러운 수준에 도달하면 실제 모바일 장치에서 보다 실제적인 시나리오를 위해 앱을 테스트할 수 있습니다.

적합한 모바일 장치 모델 선택:

실제 테스트 환경을 만들 때 테스터가 가장 먼저 생각하는 것은 모바일 앱을 테스트하는 데 사용할 장치 또는 장치 모델을 결정하는 것입니다. 선택하는 기기에 따라 수십억 개의 다른 유사한 기기에서 앱이 작동하는 방식이 결정되기 때문에 이는 때때로 정말 어려운 결정이 될 수 있습니다. 따라서 대상 장치를 선택하는 동안 아래 세 가지 주요 요소를 고려해야 합니다.

  • OS 버전
  • 화면 크기 및 해상도
  • 폼 팩터

Selection of Right Mobile Device Models

필요한 경우 장치 모델을 선택할 때 내부 메모리, 연결 옵션 등과 같은 여러 다른 요소를 고려하는 것을 망설이지 마십시오.

클라우드 테스트 고려:

테스트 노력을 완전히 새로운 수준으로 끌어올리기 위해 클라우드 컴퓨팅 기반 모바일 앱 테스트를 시도할 수도 있습니다. 웹 기반 모바일 앱 테스트 환경을 제공하는 클라우드 테스트를 통해 모바일 앱을 빠르고 효율적으로 배포, 테스트 및 관리할 수 있습니다. 전체 프로젝트 비용과 시간을 줄이는 것 외에도 클라우드 기반 애플리케이션 테스트는 다음과 같은 몇 가지 다른 이점도 제공합니다.

  • 확장성이 뛰어나고 완전히 동기화되고 사전 구성된 테스트 환경
  • 다른 고급 테스트 도구, 리소스 또는 구성에 투자할 필요가 없습니다.
  • 실수로 생성되거나 불안정한 테스트 환경으로 인한 결함 가능성 감소
  • 테스터가 시간이 많이 걸리고 종종 프로젝트 지연으로 이어지는 온프레미스 테스트 환경을 설정하지 않아도 됩니다.
  • 사내 환경에서는 거의 불가능한 복잡하고 동적이고 이기종 애플리케이션에 대한 테스트를 지원합니다.
  • 실시간 테스트 결과
  • 자동 백업 및 복구

Consider Cloud Testing

베타 테스트 구성:

베타 테스트는 실제 장치를 사용하는 실제 최종 사용자의 도움을 받아 모바일 앱의 기능과 유용성을 분석하는 훌륭하고 효과적인 방법입니다. 이 단계는 실제로 앱이 실제 기기와 네트워크에서 얼마나 잘 작동하는지 확인하고 출시 전에 모든 버그가 수정되었는지 확인하기 위해 수행됩니다. iOS용 앱을 테스트하는 경우 무료 TestFlight 도구의 기능을 활용하여 베타 테스트를 관리할 수 있습니다.

Organize Beta Testing

마찬가지로 Google Play Console을 사용하여 다양한 Google 그룹 또는 Google+ 커뮤니티를 통한 베타 테스트를 위해 신뢰할 수 있는 사용자 및 테스터에게 Android 앱을 배포할 수도 있습니다.