모바일 기기 사용이 확산되면서 모바일 앱 개발자들에게는 테스팅이 골치 아픈 문제로 떠올랐다. 사용자가 어떤 운영체제, 브라우저, 기기 조합을 사용할 지 모르는 상태에서 매끄러운 앱 사용 경험을 만들어 내기란 쉽지 않다. 특히 시험해 볼 수 있는 기기 수가 제한적이라면 더욱 그렇다.
게다가 앱에 대한 수요가 증가하면서 테스팅이 더욱 중요해지고 있다. “점점 더 복잡한 애플리케이션들이 출시되면서, 이제 테스팅은 개발 사이클에서 없어서는 안 될 필수 단계가 되었다”고 모바일 앱 테스팅 툴 업체 센차(Sencha)의 제품 매니저 수부 바스카란은 말했다.
이런 필요로 인해 앱에 존재하는 버그를 찾고 실제 앱 구동 상태를 미리 시험해 볼 수 있는 다양한 툴과 서비스가 등장했다. 특히 수천 가지 기기 및 소프트웨어 조합에 액세스가 가능한 클라우드 기반 툴들이 인상적이다. 모바일 앱 개발자들의 테스팅을 더욱 쉽게 해 줄 8가지 주요 테스팅 툴을 소개한다.
앱피움(Appium)
앱피움(Appium)은 앱 UI 기능 테스트를 주 목적으로 하는 오픈소스 모바일 테스트 자동화 프레임워크다. 네이티브, 하이브리드, 웹 앱 테스트에 적용할 수 있으며, 네이티브 앱과 관련해서는 SDK 추가자 재작성 과정 없이도 테스트를 지원한다. 테스트 작성은 자바(Java), 오브젝트-C(Object-C), 자바스크립트(Javascript) 등 어떤 웹드라이버(WebDriver) 호환 언어를 이용하는 개발 툴을 통해서도 가능하다.
소스 랩스(Sauce Labs) 등의 몇몇 업체는 클라우드 환경에서의 앱피움 테스팅을 지원하고 있다. 앱피움은 플랫폼 특화적 자동화 테크놀로지 상단에 안정적이고 호환성 높은 레이어를 제공한다.
앱피움의 코어는 노드.js(Node.js)로 작성됐지만, 드라이버용 코드 일부의 경우에는 불가피하게 자바(안드로이드)나 여타 언어로 작성된 경우도 있다. 앱피움의 핵심 개발자 중 한 명인 조나단 립스는 앱피움에 대해 “단일 API를 통해 테스트를 원하는 플랫폼을 위한 최신, 최상의 자동화 테크놀로지에 접근할 수 있도록 지원하는, 일종의 ‘다국적 번역기’다.”라고 소개한다. 소스 랩스는 지난해 앱피움을 JS 재단(JS Foundation)에 기부했다.
비트바 테스트드로이드(Bitbar Testdroid)
“모바일 테스팅 및 모니터링을 위한 데브옵스”를 자처하는 비트바(Bitbar)의 테스트드로이드(Testdroid)는 퍼블릭 및 프라이빗 클라우드 서비스로도, 그리고 온사이트 테스팅 서비스로도 이용이 가능하다. ‘비트바 퍼블릭 클라우드(테스트드로이드 클라우드)’는 수천 가지 안드로이드 및 iOS 기기로 구성된 클라우드 기반 모바일 기기 팜을 형성해 자동 및 수동 모바일 앱 테스팅을 지원한다.
“우리 고객들의 대다수가 테스트 스크립트 및 인프라스트럭처는 직접 자신의 것을 이용해도 디바이스는 우리 것을 액세스한다. 테스트드로이드가 SaaS 테스트 환경으로 작용하는 방식이다”라고 비트바의 수요 창출 담당자 빌-베이코 헬피는 설명했다.
한편 온-프레미스 솔루션인 테스트드로이드 엔터프라이즈(TestDroid Enterprise)는 모바일 앱 및 관련 서비스의 기능, 퍼포먼스, 스트레스, 안정성 및 회귀성 테스트를 자동화한다. ‘테스트드로이드 프라이빗 클라우드(Testdroid Private Cloud)’는 기기 테스팅에 필요한 클라우드 기반 기기 및 IaaS를 제공한다. 테스트드로이드는 분산된 팀을 지원할 뿐만 아니라 기기에의 지속적 액세스를 보장하기 위한 모니터링도 함께 수행할 수 있다. 헬피는 특히 거래 지불 앱에서 백-엔드 통합 및 앱 기능을 테스팅 하기 위해 테스트드로이드를 많이 찾는다고 전했다.
버그시(Bugsee)
버그시(Bugsee)는 시스템 상대에 대한 모니터링, 기록 기능을 제공하고 발생한 버그, 충돌 기록과 버그 정보를 개발사 측의 버그 추적기로 전송하는 기능을 갖춘 클라우드 기반 툴이다.
개발사 측은 버그시를 ‘모바일 앱을 위한 블랙박스, 혹은 운항 추적기’라 설명한다. 내장된 버그시의 SDK를 통한 iOS, 안드로이드 앱의 디버깅 기능도 매력적인 부분이다. 앱은 코도바(Cordova) 및 리액트 네이티브(React Native)를 통해 개발됐으며, 관련 지원 역시 제공된다.
올 1월 공식 런칭한 버그시는 라이브 앱 내 UI를 영상으로 캡쳐 해 개발자들에게 가시적으로 제공함으로써 버그 추적 과정을 추측에 의존해 진행하는 일이 없도록 해준다.
버그시는 초기 개발 및 베타 테스팅, 라이브 배치 과정 전반에 적용될 수 있는 솔루션이라고 CEO인 알렉스 피시먼은 소개했다. 개발자들은 문제에 대한 보고서를 확보할 수 있다. 더불어 지라(Jira) 등 외부 툴들과의 통합 기능 역시 버그시의 강점이다.
버그시에 대한 고객들의 만족도는 상당한 수준이다. 헬로 월드 엔지니어링(Hello World Engineering)의 설립자 겸 CEO 제레미 허프는 “특히 영상 캡쳐 기능이 만족도가 높다. 초기 제작 단계에서 단순히 사용자들의 설명에만 의존하는 대신 영상을 검토함으로써 보다 효율적인 문제 대응이 가능해졌다”라고 이야기했다.
크로스브라우저 테스팅(CrossBrowserTesting)
스마트베어(Smartbear) 소속의 크로스브라우저테스팅(CrossBrowserTesting)은 클라우드 내 기기 실험실에 대한 접근권을 제공함으로써 개발자들을 버추얼 머신, 기기 실험실, 교차-브라우저 테스팅으로부터 해방시켜주는 서비스다. 크로스브라우저테스팅의 마케팅 디렉터 다니엘 지오다노는 “우리의 솔루션은 클라우드 기반의 브라우저 테스팅 서비스며, 네이티브 애플리케이션에 대한 지원은 제공하지 않고 있다”라고 설명했다.
이를 이용해 개발자들은 1,500개 이상의 모바일 기기 및 데스크탑 브라우저에 접근하고, 다양한 브라우저 상에서의 웹 페이지 경험과 기능을 비교할 수 있다. 테스팅 세션은 고해상 영상이나 스냅샷으로 저장돼 개발팀의 다른 인원들과 공유가 가능하다.
크로스브라우저테스팅의 원격 기기 기능을 이용하면 셀레니움(Selenium) 이나 앱피움 등 여타 테스트를 구동하는 것도 가능하다. 방화벽 내부에서 테스트를 원하는 사용자들의 경우에는 크롬 확장 프로그램이나 노드.js 터널을 통해 작업을 진행할 수 있다.
소스 랩(Sauce Labs)
클라우드 기반 테스팅 툴 소스 랩(Sauce Labs)은 iOS와 안드로이드 기기 및 웹 앱을 위한 테스팅 서비스다. 이를 통해 사용자는 시뮬레이터, 에뮬레이터 및 실제 기기에 액세스 할 수 있다. 테스트 역시 네이티브, 하이브리드 및 모바일 웹 테스트까지 모두 가능하다.
소스 랩은 또한 800가지가 넘는 플랫폼, OS, 브라우저 조합을 지원한다. 사설 리얼-디바이스 클라우드에서의 테스팅도 가능하다. “우리의 목표는 실제 유저의 경험을 그대로 시뮬레이션 하는 것이다. 때문에 실제로 사용자가 하는 것처럼 모든 단계를 클릭하고, 필요한 정보를 입력하는 방식으로 테스트를 진행해 결과를 확인한다”고 소스 랩의 부대표 루보스 파로벡은 말했다. 앱피움 및 셀레니움 프레임워크에서 병행go 테스트를 진행할 수 있다.
소스 랩의 테스트오브젝트(TestObject) 모바일 앱 기기 테스팅 플랫폼을 사용하는 로그먼 (LogMeln)의 파라미슈와란 멀리는 자사의 경우 앱피움 및 에스프레소(Espresso)를 이용해 테스트를 진행할 때 내부 테스팅 프레임워크 외에도 ‘테스트오브젝트’의 도움을 받고 있다고 전했다.
그는 “각 세션마다 테스트 리포트가 생성되며 여기에는 크래쉬 로그, 디바이스 로그, 테스트 케이스 비디오, 스텝 로그 등이 포함되어 버그를 빨리 찾을 수 있게 도와준다”라고 말했다. 테스트오브젝트를 사용하면 특히 단일 테스트에서 여러 가지 기기를 테스팅 하는 것이 훨씬 쉬워진다고 그는 덧붙였다.
센차(Sencha)
센차 테스트(Sencha Test)는 센차의 모바일 및 데스크탑 웹 앱 개발용 플랫폼 센차 Ext JS에서 제작된 애플리케이션들의 기능 테스트를 지원하는 솔루션이다. 센차에서는 하나의 테스트 스크립트를 모바일, 데스크탑 브라우저 전반에서 활용할 수 있다.
센차 테스트는 프록시 매커니즘을 이용해 고유 URL을 수집하고 이를 실제 기기 상의 모바일 브라우저에서 활용한다. 테스트는 자스민(Jasmine) 테스팅 프레임워크를 통해 자바스크립트로 작성 가능하다.
센차의 바스카란은 “테스트 중인 애플리케이션이 모바일 브라우저에서 개시되면, 해당 구동 기기에 대한 접근권이 센차 테스트 테스트 구동기에 표시된다. 모바일 기기는 여타 가용 로컬 데스크톱 브라우저 및 에뮬레이터가 구동하는 원격 모바일 브라우저들과 같이 선택이 가능하다”라고 설명했다.
센차는 최근 센차 테스트의 2.0 버전을 배포한 상태이며, 향후 데브옵스 실행을 제공하기 위한 ALM 툴과의 통합 기능을 추가할 계획을 세우고 있다. 이들 툴은 현재 젠킨스(Jenkins), 팀시티(TeamCity) 등 지속적 통합 툴과의 통합을 지원하고 있으며, 결함 추적 툴들과의 통합 역시 계획하고 있다.
테스트페어리(TestFairy)
테스트페어리(TestFairy)는 모바일 앱을 위한 베타 테스팅 플랫폼으로 CPU, 메모리, 네트워크 특성 등을 포함한 각 테스트 비디오를 제공한다. 테스트페어리는 모바일 라이프사이클 관리에 중점을 둔 플랫폼으로 테스트 과정에서 앱에 발생하는 모든 일을 사용자가 투명하고 정확하게 알 수 있도록 하고자 한다고 CEO이자 공동창립자 예어 바-온은 말했다.
그는 “우리 소프트웨어 플랫폼은 특히 기업의 도그푸딩(dogfooding) 테스트에 매우 효과적이다”라고 말했다. 지라(Jira), 버그질라(Bugzilla), 깃허브(GitHub) 등의 버그 트래커와도 상호 호환 가능하다.
테스트페어리는 또한 단일 개시 신호와 같은 기업 보안 기능을 제공해 외부인을 제외한 직원들만 안전하게 회사 앱을 다운로드 할 수 있도록 하고 있다. 테스트페어리는 프라이빗 클라우드 및 모든 아마존 웹 서비스 로케이션에서 설치할 수 있으며 온-프레미스 디플로이먼트를 지원한다.
우버테스터즈(Ubertesters)
우버테스터즈(Ubertesters)는 개발 수명주기 관리 및 버그 테스팅 및 트래킹 기능을 제공하는 SaaS 솔루션이다. 우버테스트를 이용해 사용자들은 모바일 베타 테스팅, 테스트 세션에 대한 영상 녹화 또는 스크린샷 촬영을 시행할 수 있다.
CEO 랜 라슐린은 “우리는 QA 시장에서 지라와 같은 역할을 하는 솔루션을 목표로 한다. 우리는 고객들이 개발한 빌드를 iOS와 안드로이드 모두에 배포할 수 있도록 지원하며, 더불어 버그 리포팅에 대한 지원 역시 제공한다. 기업들은 내부 베타 테스터, QA 팀 관리 과정에 우버테스터즈 플랫폼을 이용할 수 있다”라고 말했다.
그는 “또 크라우드 테스팅 서비스 기능을 제공해 외부 QA 엔지니어 자원을 활용할 수 있다는 점 역시 이 솔루션의 매력이다. 크라우드 테스팅을 통해 보다 많은 인원이 테스팅 과정에 참여하게 되면 기업에겐 기존의 전통적인 내부 테스팅 과정과 비교해 상당한 비용 절감, 인도 시간 감소 효과가 전달된다”라고 강조했다.
우버테스터즈는 사용성, 기능성, 로컬라이제이션에 대한 테스트를 지원하며, 추후 보안 테스트에 대한 추가 역시 계획되어 있다. 우버테스터즈는 네이티브, 크로스-플랫폼 개발을 지원하며, 후자의 경우에는 자마린(Xamarin) 및 폰갭(PhoneGap)을 통해 구현된다. dl-ciokorea@foundryco.com