Skip to main content
QUICK REVIEW

[논문 리뷰] Scripted GUI Testing of Android Apps: A Study on Diffusion, Evolution and Fragility

Riccardo Coppola, Maurizio Morisio|arXiv (Cornell University)|2017. 11. 09.
Advanced Malware Detection Techniques참고 문헌 10인용 수 3
한 줄 요약

이 연구는 여섯 가지 인기 있는 테스팅 프레임워크를 사용하여 오픈소스 안드로이드 앱에서 스크립트 기반 GUI 테스팅의 도입, 진화 및 취약성을 분석한다. 연구 결과, 안드로이드 프로젝트 중 단 8%만이 GUI 테스팅 도구를 사용하고 있으며, 테스트 코드 수정의 60%가 GUI의 취약성 때문임을 확인하였다—이는 자동화된 GUI 테스팅의 광범위한 도입을 저지르는 주요 유지보수 부담을 시사한다.

ABSTRACT

Background. Evidence suggests that mobile applications are not thoroughly tested as their desktop counterparts. In particular GUI testing is generally limited. Like web-based applications, mobile apps suffer from GUI test fragility, i.e. GUI test classes failing due to minor modifications in the GUI, without the application functionalities being altered. Aims. The objective of our study is to examine the diffusion of GUI testing on Android, and the amount of changes required to keep test classes up to date, and in particular the changes due to GUI test fragility. We define metrics to characterize the modifications and evolution of test classes and test methods, and proxies to estimate fragility-induced changes. Method. To perform our experiments, we selected six widely used open-source tools for scripted GUI testing of mobile applications previously described in the literature. We have mined the repositories on GitHub that used those tools, and computed our set of metrics. Results. We found that none of the considered GUI testing frameworks achieved a major diffusion among the open-source Android projects available on GitHub. For projects with GUI tests, we found that test suites have to be modified often, specifically 5\%-10\% of developers' modified LOCs belong to tests, and that a relevant portion (60\% on average) of such modifications are induced by fragility. Conclusions. Fragility of GUI test classes constitute a relevant concern, possibly being an obstacle for developers to adopt automated scripted GUI tests. This first evaluation and measure of fragility of Android scripted GUI testing can constitute a benchmark for developers, and the basis for the definition of a taxonomy of fragility causes, and actionable guidelines to mitigate the issue.

연구 동기 및 목표

  • 스크립트 기반 GUI 테스팅 프레임워크가 오픈소스 안드로이드 프로젝트에 얼마나 널리 퍼져 있는지 평가하기 위해.
  • 시간이 지남에 따라 테스트 세트가 얼마나 자주 수정되고, 그 원인이 무엇인지 측정하기 위해.
  • GUI 테스트의 취약성으로 인한 테스트 변경 비율을 정량화하기 위해.
  • 개발자들에게 기준을 제공하고 자동화된 GUI 테스팅에서 취약성을 완화하기 위한 기반을 마련하기 위해.

제안 방법

  • 저자는 에스프레소, UI 애저메이터, 세렌도이드, 로보티움, 로보렉트릭, 앱피엄을 포함한 여섯 가지 인기 있는 GUI 테스팅 도구를 사용하여 오픈소스 안드로이드 프로젝트의 깃허브 레포지터리를 캐내었다.
  • 레포지터리의 릴리스 수준에서 버전 이력을 분석하여 태그된 릴리스 간 테스트 클래스와 메서드의 변경 사항을 추적하였다.
  • 취약성은 대체 지표를 통해 추정되었으며, 테스트 메서드의 어떤 수정도 GUI 취약성의 징후로 간주하였다.
  • 테스트 세트의 진화를 특성화하기 위해 메트릭을 계산하였으며, 이는 테스트 코드에서 수정된 라인의 비율과 취약성으로 인한 변경 비율을 포함하였다.
  • 테스트 변경 사항이 GUI 수정과 연결되는 데 있어 대체 지표의 신뢰성을 검증하기 위해 정밀도 평가(70%)를 수행하였다.
  • 대표성을 확보하기 위해 최소 한 개 이상의 태그된 릴리스를 가진 1,000개의 프로젝트 샘플을 대상으로 통계 분석을 수행하였다.

실험 결과

연구 질문

  • RQ1오픈소스 안드로이드 프로젝트에서 스크립트 기반 GUI 테스팅 프레임워크의 도입 수준은 어떠한가?
  • RQ2안드로이드 프로젝트의 진화 과정에서 테스트 세트는 얼마나 자주 수정되는가?
  • RQ3테스트 코드 수정의 어느 정도가 GUI 테스트의 취약성 때문인가?
  • RQ4테스트 메서드 수정을 대체 지표로 사용할 경우, GUI 취약성을 추정하는 데 얼마나 신뢰할 수 있는가?

주요 결과

  • 태그된 릴리스를 최소 한 개 이상 사용하는 오픈소스 안드로이드 프로젝트 중 여섯 가지 GUI 테스팅 프레임워크 중 어느 것도 도입한 비율은 단 8%였다.
  • 평균적으로 릴리스당 전체 코드 변경의 7.5%가 테스트 코드였으며, 테스트 코드의 3%가 매 릴리스마다 수정되었다.
  • 약 60%의 테스트 코드 수정이 GUI 테스트의 취약성 때문임을 확인하여, 유지보수 부담이 매우 크다는 것을 시사한다.
  • 테스트 메서드 수정을 대체 지표로 사용할 경우, 70%의 경우에서 취약성을 정확히 식별하였으며, 이는 취약성 추정에 이 지표를 사용하는 데 유의미함을 뒷받침한다.
  • GUI 테스팅을 사용하는 프로젝트에서는 평균적으로 테스트 세트가 전체 프로젝트 코드의 약 11%를 차지하였다.
  • 평균적으로 릴리스 주기마다 전체 테스트 클래스의 1/5가 GUI 취약성으로 인해 수정이 필요하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.