Skip to main content
QUICK REVIEW

[논문 리뷰] From Manual Android Tests to Automated and Platform Independent Test Scripts

Mattia Fazzini, Eduardo Noronha de Andrade Freitas|arXiv (Cornell University)|2016. 08. 11.
Software Testing and Debugging Techniques참고 문헌 27인용 수 3
한 줄 요약

이 논문은 BARISTA를 제시하며, 사용자 상호작용을 기록하고 직관적인 인터페이스를 통해 예상 결과(오라클)를 시각적으로 지정함으로써, 애자일한 인터페이스를 통해 Android 앱에 대한 플랫폼 독립적이고 자동화된 테스트 스크립트를 작성할 수 있도록 도와준다. 이 기법은 앱을 수정하지 않고도 Android의 접근성 프레임워크를 활용하여 액션과 오라클을 캡처하며, 모든 기기와 OS 버전에서 신뢰성 있게 실행 가능한 Espresso 호환 테스트 스크립트를 생성한다. 이는 기존 도구에 비해 이식성과 내구성 면에서 뛰어나다.

ABSTRACT

Because Mobile apps are extremely popular and often mission critical nowadays, companies invest a great deal of resources in testing the apps they provide to their customers. Testing is particularly important for Android apps, which must run on a multitude of devices and operating system versions. Unfortunately, as we confirmed in many interviews with quality assurance professionals, app testing is today a very human intensive, and therefore tedious and error prone, activity. To address this problem, and better support testing of Android apps, we propose a new technique that allows testers to easily create platform independent test scripts for an app and automatically run the generated test scripts on multiple devices and operating system versions. The technique does so without modifying the app under test or the runtime system, by (1) intercepting the interactions of the tester with the app and (2) providing the tester with an intuitive way to specify expected results that it then encode as test oracles. We implemented our technique in a tool named Barista and used the tool to evaluate the practical usefulness and applicability of our approach. Our results show that Barista can faithfully encode user defined test cases as test scripts with built-in oracles, generates test scripts that can run on multiple platforms, and can outperform a state-of-the-art tool with similar functionality. Barista and our experimental infrastructure are publicly available.

연구 동기 및 목표

  • 다양한 기기와 OS 버전에서 분할된 환경에서 수동 Android 앱 테스팅의 높은 인적 자원 투입과 오류 발생 가능성을 해결하기 위해.
  • 테스트 자동화에서 전문 프로그래밍 기술의 필요성을 줄이기 위해 비개발자가 상호작용을 통해 테스트 스크립트를 작성할 수 있도록 하기 위해.
  • 특정 UI 레이아웃이나 기기 설정에 의존하지 않는, 내구성 있고 재사용 가능한 테스트 케이스를 만들 수 있도록 지원하기 위해.
  • 재인코딩 없이도 여러 플랫폼에서 생성된 테스트 스크립트를 자동으로 실행할 수 있도록 하기 위해.
  • Espresso와 같은 표준 프레임워크를 사용하여 플랫폼에 구애받지 않는 테스트 스크립트를 생성함으로써 테스트의 이식성과 유지보수성을 향상시키기 위해.

제안 방법

  • Android의 접근성 프레임워크를 통해 앱과의 사용자 상호작용을 기록하여 터치, 입력 및 탐색 이벤트를 캡처하기 위해.
  • 테스터가 UI 요소를 선택하고 예상 상태를 정의함으로써 예상 결과(오라클)를 지정할 수 있도록 시각적 인터페이스 제공하기 위해.
  • Espresso 테스팅 프레임워크 형식을 사용하여 기록된 액션과 지정된 오라클을 플랫폼 독립적 테스트 스크립트로 인코딩하기 위해.
  • 기록된 실행 트레이스를 다양한 기기나 에뮬레이터에서 호환 가능한 Android 버전에서 실행 가능한 구조화된 테스트 코드로 변환하기 위해.
  • 접근성 식별자와 UI 계층 정보를 사용하여 테스트 스크립트가 논리적 구조에 영향을 주지 않는 경미한 UI 변경에도 내구성이 있도록 보장하기 위해.
  • 앱이나 런타임 시스템을 수정하지 않고도 접근성 API를 활용하여 상호작용를 가로채고 로깅하기 위해.

실험 결과

연구 질문

  • RQ1비프로그래머가 상호작용 기록과 시각적 오라클 지정을 통해 신뢰성 있고 플랫폼 독립적인 Android 앱 테스트 스크립트를 생성할 수 있는가?
  • RQ2BARISTA가 생성한 테스트 스크립트의 이식성은 다양한 기기와 OS 버전에서 기존의 기록/재생 도구와 비교해 어떻게 되는가?
  • RQ3BARISTA가 경미한 UI 변경에도 유효한 상태를 유지하는 내구성 있는 오라클을 얼마나 잘 지원하는가?
  • RQ4Espresso나 UIAutomator와 같은 최첨단 도구와 비교해 BARISTA의 테스트 실행 및 스크립트 생성 성능은 어떠한가?
  • RQ5BARISTA가 생성한 테스트 스크립트는 앱 업데이트 후에도 회귀 테스트에 효과적으로 재사용될 수 있는가?

주요 결과

  • BARISTA는 오라클이 포함된 사용자 정의 테스트 케이스를 플랫폼 독립적 테스트 스크립트로 성공적으로 인코딩하여 다양한 기기와 Android OS 버전에서 실행 가능하게 한다.
  • 기존의 기록/재생 도구에 비해 생성된 테스트 스크립트의 이식성이 뛰어나며, 화면 좌표가 아닌 의미론적 UI 식별자를 기반으로 하기 때문이다.
  • 비슷한 기능을 가진 최첨단 도구에 비해 BARISTA는 테스트 스크립트의 신뢰성과 다중 플랫폼 실행 면에서 뛰어나다.
  • 테스터가 프로그래밍이나 테스트 프레임워크에 대한 지식 없이도 최소한의 훈련으로 테스트 스크립트를 생성할 수 있도록 한다.
  • UI 요소의 위치가 변경되더라도 논리적 구조와 접근성 레이블이 그대로 유지된다면 BARISTA가 생성한 테스트 스크립트는 경미한 UI 변경에 강건하게 유지된다.
  • 이 방법은 한 번 기록하고 여러 곳에서 실행하는 원칙을 지원하여, 회귀 테스트의 유지보수 오버헤드를 크게 줄인다.

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

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

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

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