자격증/Mobile Tester2020. 4. 24. 08:00

Certified Tester Foundation Level  Mobile Tester Syllabus

 

1. 모바일 테스팅 

 

1.1모바일 어플리케이션이란?

모바일 어플리케이션은 일반적으로 두 가지 유형으로 구분된다. 하나는 모바일 디바이스에서만 
작동하도록 개발된 네이티브 모바일 어플리케이션이고 다른 하나는 모바일 디바이스의 웹 브라우 
저를 통해 사용이 가능하도록 개발된 어플리케이션이다. 일반적으로 사용자는 두 유형의 차이를 
느끼지 못하지만, 일부 브라우저 기반 어플리케이션은 사용되는 디바이스에 최적화됨에 따라 보 
다 풍부한(적어도 좀 더 읽기 편한) 사용자 경험을 제공한다. 개발자와 테스터 관점에서는 두 가 
지 어플리케이션 중 어느 것을 택하느냐에 따라 목적, 극복해야 할 과제, 성공의 기준 등이 구별 
된다. 본 실라버스는 모바일 디바이스용으로 개발된 어플리케이션에 초점을 맞추고 있고, 필요한 
경우 원래 다른 용도로 개발됐지만 모바일 디바이스에서 사용되는 어플리케이션에 대해 언급할 
것이다.
모바일 디바이스란 모바일 폰(피처 폰/스마트폰, 태블릿/넷북, 또 e-리더와 같이 특별 용도를 위 
해 개발된 디바이스, 택배 기사가 배달 상황을 기록하고 고객이 서명하고 이미지를 저장해서 배 
달 상황을 문서화하는 디바이스 등을 포함한 모든 핸드-헬드(손으로 들고 다니는: Hand-held) 디 
바이스를 총칭한다. 또한, 스마트 워치나 안경과 같은 웨어러블 디바이스도 모바일 디바이스에 포 
함된다. 이런 웨어러블 디바이스 중에는 특정 어플리케이션과의 연동 기능, 시간을 알려주거나 시 
력을 개선해주는 등의 추가 기능을 갖춘 경우도 있다. 본 실라버스에서 논의하는 모바일 어플리 
케이션 테스팅의 개념 중 일부는 웨어러블 디바이스에 적용할 수 있지만, 웨어러블 디바이스가 
이 실라버스의 주 대상은 아니다.
이같이 새로운 용도가 개발되고 그 새로운 용도를 지원하기 위한 디바이스가 새롭게 개발됨에 따 
라 모바일 디바이스의 영역은 지속해서 확장되고 있다.

 

1.2모바일 사용자의 기대
일상생활에서 모바일 어플리케이션의 중요성은 점점 높아지고 있다. 사용자는 디바이스나 SW를 
어떤 식으로 사용하든 100%의 가용성을 기대한다. 사용자는 또 어떤 어플리케이션이든 다운로드 
후 사용법에 대한 설명이나 훈련 없이 바로 사용할 수 있는 사용성을 기대하며, 자기의 디바이스 
가 수행하고 있는 다른 기능이나 네트워크의 품질과 용량에 상관없이 즉각적인 응답시간을 기대 
한다.
이렇듯 사용자는 느린 SW와 사용하기 어려운 SW에 더 이상 관대하지 않다. 모든 모바일 어플리 
케이션 출시에 사용성과 성능 테스팅은 필수요소가 되었다. 이것은 그런 요소가 딱히 중요해서라 
기보단 사용자의 기대 때문이라 할 수 있다. 어플리케이션이 조금 느리거나 사용하기 어렵더라도 
사용자가 어느 정도 이해하고 포용하면서 사용해왔던 전통적인 SW의 경우와 사뭇 다르다. 특히 
과거에는 기업용 SW의 경우 느리고 불편하더라도 그것을 사용하는 것 외에는 대안이 없었던 경 
우가 많았다. 지금은 특정 모바일 어플리케이션이 너무 느리거나 매력이 없을 경우, 사용자는 그 
것을 대체할 어플리케이션을 바로 찾을 가능성이 높아졌다. 기업의 모바일 어플리케이션이 충분 
히 빠르지 않거나 재미가 없으면 해당 기업은 결국 고객을 잃게 될 것이다. 이렇게 경쟁이 치열 
한 모바일 어플리케이션 시장에서 좋은 테스팅과 높은 품질의 중요성은 높아지고 있다.

 

 

1.3 테스터의 과제
모바일 사용자는 어느 곳에나 있으며 누구나 모바일 사용자가 될 수 있다. SW 역사에서 사용자 
커뮤니티가 이토록 광범위하고 다양했던 적은 없었다. 모바일 디바이스가 사용되는 경우는 단순 
히 재미를 위해서부터 사업에 심각한 영향을 주는 영역까지 모두 포괄한다. 사용자는 끊김 없는 
연결성과 정보에 대한 즉각적인 접근을 기대한다. 사물 인터넷의 출현으로 사용자는 더욱더 많은 
기기에 접근하게 되어 사용자가 가지는 어플리케이션과 디바이스의 일관성 있는 경험 제공에 대 
한 기대 역시 증가하였다. 사물 인터넷은 냉장고와 같이 딱히 모바일하지 않거나 드론과 
같이 딱히 핸드-헬드하지 않은 디바이스도 포함한다. 이 실라버스에서는 사물 인터넷을 다루지는 
않지만, 사물 인터넷 디바이스에 대한 사람들의 경험이 그들이 가지게 되는 모바일 디바이스에 
대한 기대에 영향을 미친다는 점을 기억해야 할 것이다.
모바일 디바이스의 종류는 점점 다양해지고 있다. 종류는 점점 많아지고 성능은 점점 좋아지는 
모든 모바일 디바이스에서 SW는 그냥 동작하는 것이 아니라 제대로 동작해야 하며, 초보자와 전 
문가 모두를 만족시켜야 한다.


1.3.1 지속적인 출시
테스팅의 가장 큰 어려움 중 하나는 빈번한 출시 주기이다. 모바일 시장은 경쟁이 매우 치열하기 
때문에 기업은 새로운 디자인과 성능을 가진 제품을 가장먼저 시장에 출시하기 위해 경쟁한다.
이러한 목표를 달성하기 위해 개발환경 및 도구지원이 급격히 증가하게 되었고, 그 결과 과거 어 
느 때보다 시장 진입장벽은 훨씬 낮아진 상황이다. 이러한 지원에는 무료 개발키트(SDK), 무료이 
거나 아주 저렴한 교육, 무료 배포채널 지원 등이 있으며, 이를 통해 많은 개발자가 어플리케이션 
을 빠르게 개발하고 신속하게 배포할 수 있게 되었다. 테스팅은 기능, 사용성 그리고 성능에 대한 
사용자의 기대를 충족시키면서 출시 일을 맞춰야 한다는 어려움이 있다.


1.3.2 이식성, 호환성
사용자는 하나의 어플리케이션이 다양한 디바이스를 지원하길 기대하며 또한, 지원되는 디바이스 
들이 서로 연계되어 작동하기를 기대한다. 대부분의 사용자는 이런 기대를 가지고 있다는 사실을 
인지하지 못한다. 사용자는 데이터를 여러 디바이스 간에 쉽게 그리고 자동으로 전송할 수 있기 
를 기대하는 한편, 모든 디바이스에서 동일한 어플리케이션을 사용할 수 있길 원하지만 개발 대 
상과 개발 방법에 따라 어플리케이션이 가지는 이식성은 크게 달라진다.

 

일반적인 어플리케이션 유형은 아래와 같다:
• 전통적인 브라우저 기반 어플리케이션 - 이 어플리케이션은 PC 브라우저에서 작동하도록 
개발되었다. 모바일 디바이스에서 접속 시 적절한 사용성을 제공할지 또 제대로 기능을 
수행할지는 불투명하다(예, 화면 크기 조정)


• 모바일 웹 사이트 - 어플리케이션은 서버에서 호스팅 되지만, 호환 가능한 여러 모바일 
디바이스에서 접속하도록 개발되었다. 이식 성이 중요하다


• 모바일 웹 어플리케이션 - 다양한 디바이스에서 사용할 수 있게 어플리케이션이 개발되고 
대부분의 소스코드는 웹 사이트에 위치하게 된다. 모바일 웹 어플리케이션이 실행되기 
위해서는 반드시 웹 서버와 연결된 상태여야 한다. 웹 사이트에서 사용되는 
어플리케이션과 동일한 경우도 있지만, 대부분의 경우 모바일 디바이스에서는
모바일용으로 개발된 별도의 어플리케이션이 사용된다


• 네이티브 모바일 어플리케이션 - 네이티브 모바일 어플리케이션이란 특정 디바이스 군을 
위해 개발된 어플리케이션을 지칭한다. 이런 어플리케이션은 디바이스에 설치되고 
디바이스의 인터페이스를 통해 그 디바이스와 직접 소통한다. 코딩 작업은 일반적으로 이 
디바이스용으로 특별히 제작된 도구를 이용하여 이루어진다. 네이티브 모바일 
어플리케이션을 테스트하기 위해서는 대상 디바이스 또는 그 디바이스 전용 시뮬레이터와 
SW 가 필요하다


• 하이브리드 어플리케이션 - 특정 디바이스 대상 도구를 사용해서 코딩하는 대신에 대상 
플랫폼의 특징을 다루기 위해 라이브러리나 프레임워크를 사용한다. 디바이스의 기능은 
플러그인을 통해 접근하는데 이런 플러그인은 디바이스 군에 따라 다를 수도 있다.
하이브리드 어플리케이션은 네이 티브 모바일 어플리케이션보다 높은 이식성을 가지면서 

디바이스가 가지는 장점을 활용할 수 있도록 설계된다. 많은 경우 하이브리드 
어플리케이션은 어느 정도의 웹 접근성을 요구하며 또한 디바이스/브라우저 호환성 
문제에 직면할 수 있다
테스터는 테스팅에 활용할 이식성 요구사항을 파악하기 위해 계획된 대상 디바이스를 이해하는 
것이 중요하다.

 

1.4 필요한 기술
모바일 어플리케이션을 검증하기 위해 기능 테스팅은 반드시 필요하다. 테스터는 요구사항 분석,
테스트 설계, 테스트 구현, 테스트 실행, 결과 기록 및 보고 등과 같이 수동 기능 테스팅에 필요 
한 기술을 가지고 있어야 한다.
모든 환경에서 필요한 기본적인 테스팅 기술 외에, 모바일 어플리케이션 테스팅을 위해서는 보안 
성, 사용성, 성능, 이식성/호환성, 신뢰성과 등과 같은 품질 특성에 대한 우수한 테스팅 역량이 필 
요하다. ISTQB Foundation Level에서 다루고 있는 테스팅 기법 외에 모바일 테스팅에 적용할 수 
있는 새로운 테스팅 기법 또한 존재한다.

 

1.5 장비 요구사항
어플리케이션의 예상되는 사용방법에 따라 대표 디바이스들을 선정하고 그 디바이스들을 대상으 
로 테스팅을 할 필요가 있다. 대표 디바이스란 같은 클래스에 속한 디바이스의 대표적인 성질을 
가지고 있는 디바이스를 말한다. 예: 어떤 어플리케이션을 실행할 때 모든 iOS 디바이스가 동일하 
게 동작하는 것으로 판명될 경우 하나의 대표 디바이스만을 테스트해도 충분하다고 볼 수 있다.
한 디바이스에서의 테스트 결과가 다른 iOS 디바이스에 동일한 테스트를 실행했을 때의 결과와 
같을 것이다. 이런 대표 디바이스의 선정은 디바이스 수준에서 동등 분할을 적용한 것으로 볼 수 
있다.
대부분의 디바이스는 iOS의 경우와는 다르게 이렇게까지 넓은 범주에 속하지 않기 때문에 어플리 
케이션의 호환성을 테스트하기 위해서는 샘플 세트가 활용되는 경우가 많다. 그 결과 대부분의 
경우 많은 수의 디바이스 구매, 시뮬레이터 사용, 디바이스로 가득 찬 테스트 랩 임대 또 
는 대체 가능한 테스팅 전략 채택 등이 필요하게 된다.
모바일 테스팅 프로젝트에 참여하는 테스터가 장비 요구사항을 명확히 이해하는 것은 매우 중요 
하다. 이는 예산 및 일정을 결정하여 효과적으로 계획을 수립하기 위해 아주 중요하며 또한 다양 
한 디바이스에 테스트 케이스를 적절히 할당하기 위해 필요하다. 디바이스 위치(농촌, 도시), 날씨 
(맑음, 흐림), 사용 위치(실내, 실외), 네트워크(WiFi, 이동 통신) 등은 테스팅 전략, 테스터 및 장소 
선택에 중요한 요소다.

 

1.6 수명주기 모델
빠른 개발과 배포에 대한 요구가 커짐에 따라 SW 개발 수명주기 모델은 애자일과 같은 점진적 
반복 모델로 옮겨지고 있다. 래피드 프로토타이핑(Rapid prototyping)은 빠른 개발과 피드백을 통 
해 신규 제품을 성공적으로 출시하는 데 일조했다. 그리고 출시된 기존 제품들이 수시로 업데이 
트되면서 "일단 출시 후, 사용자가 테스트하게 하자"는 경향이 생겼다. 그 결과 불완전한 수정 사 
항이 배포되고 사용자의 만족도가 낮아지는 경우가 다수 발생하고 있다.
우리는 테스터로서 제품 출시 일정에 지장을 주지 않으면서 동시에 치명적인 실패의 위험을 줄이 
는 데 도움이 되도록 테스트해야 한다. 모바일 어플리케이션 산업에서 시간은 항상 부족하며 모 
든 것을 테스트할 수 없으므로 리스크 기반 테스팅 전략은 아주 중요하다. 제품 용도와 중요도를 
고려해 리스크 수준을 결정하고 그 수준에 상응하는 테스트 강도를 정한다. 예를 들면, 스마트폰
의 매우 다양한 용도 중 안전이 최우선(Safety-critical) 사항일 경우도 있을 것이다.
기능이 유사한 경우라도 실제 사용 방법에 따라 중요성을 결정해야 하기 때문에 비슷한 어플리케 
이션을 하나의 그룹으로 묶어서 리스크 분석을 하는 것 보다 각각 어플리케이션의 리스크 요소에
대해 개별적으로 평가하는 것이 중요하다. 예를 들면, 이미지 뷰어 어플리케이션의 해상도를 생각
해 보자. 개인이 휴가 때 찍은 사진을 보는 경우와는 달리 의사가 원격진료로 피부이상을 분석해 
암 여부를 판정하는 경우라면 해상도가 안전에 결정적인 사항이 될 수 있다. 적절한 리스크 분석 
이 이루어진 다음에야 리스크를 완화시켜 출시될 제품이 적정 신뢰수준을 달성하는지에 대한 테 
스팅이 실시될 수 있다.
대부분의 모바일 어플리케이션은 OTA(Over-The-Air)로 업데이트될 수 있으므로, 업데이트 전송은 
비교적 쉽고 빠르게 이루어질 수 있으며 강제적 업데이트도 가능할 수 있다. 특정 대상(예: PC)에 
연결해서 업데이트해야 하는 모바일 디바이스라면 심각한 결함이 발견된 경우 신속하게 업데이트 
하기 어려울 것이다. 따라서 업데이트 용이성 또한 제품 출시 리스크를 결정하는 하나의 요소가 
될 수 있다. 또한 이는 유지보수 테스팅에 얼마나 많은 노력이 투입될지를 결정하는 요소로 사용 
될 수도 있다.
많은 제품이 점증적 개발 모델로 개발되고 있다. 제한적인 기능만을 가진 초기 버전의 어플리케 
이션이 우선 개발되고 배포된다. 그리고 새로운 기능은 개발 상황과 시장의 요구에 따라 추가된 
다. 이런 점증적 개발 방법을 적용하면 품질을 포기하지 않고 제품을 우선 빠르게 배포함과 동시 
에 추가 기능은 내부적으로 시간을 가지고 개발하고 테스팅할 수 있게 된다.
모바일 어플리케이션은 신속하게 출시돼야 하므로 순차적 수명주기 모델(예: V 모델, 폭포수 모델)
이 사용되는 경우는 흔하지 않다. 테스팅은 문서화 작업을 최소로 하면서 진행된다. 하지만 안전 
최우선(safety-critical) 어플리케이션과 법적 규제 대상이 되는 어플리케이션에는 여전히 순차적

개발 모델을 적용하는 경향이 있다.

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터