Skip to main content
QUICK REVIEW

[논문 리뷰] How do Developers Test Android Applications?

Mario Linares Vasquez, Carlos Bernal-Cárdenas|arXiv (Cornell University)|2018. 01. 19.
Software Testing and Debugging Techniques참고 문헌 41인용 수 9
한 줄 요약

이 연구는 GitHub에 호스팅된 오픈소스 안드로이드 프로젝트에 기여한 102명의 개발자들을 대상으로 설문조사를 통해 실제 개발 환경에서의 테스트 방식을 조사하여, 보다 효과적인 자동화된 테스트 도구 설계를 안내한다. 연구 결과, 개발자들은 고수준의 사용자 케이스 기반 테스트 케이스를 선호하며, 품질 지표로 코드 커버리지에 의심을 품고 있으며, 자동화 도구의 재현 가능성과 디버깅 용이성 문제로 인해 수동 테스트를 선호한다—이러한 점들은 연구 도구와 개발자 요구 간의 심각한 격차를 드러낸다.

ABSTRACT

Enabling fully automated testing of mobile applications has recently become an important topic of study for both researchers and practitioners. A plethora of tools and approaches have been proposed to aid mobile developers both by augmenting manual testing practices and by automating various parts of the testing process. However, current approaches for automated testing fall short in convincing developers about their benefits, leading to a majority of mobile testing being performed manually. With the goal of helping researchers and practitioners - who design approaches supporting mobile testing - to understand developer's needs, we analyzed survey responses from 102 open source contributors to Android projects about their practices when performing testing. The survey focused on questions regarding practices and preferences of developers/testers in-the-wild for (i) designing and generating test cases, (ii) automated testing practices, and (iii) perceptions of quality metrics such as code coverage for determining test quality. Analyzing the information gleaned from this survey, we compile a body of knowledge to help guide researchers and professionals toward tailoring new automated testing approaches to the need of a diverse set of open source developers.

연구 동기 및 목표

  • 오픈소스 안드로이드 개발자들의 실제 테스트 관행과 선호도를 이해하여 향후 자동화된 테스트 도구 개발을 안내하기 위해.
  • 광범위한 연구 노력에도 불구하고 기존 자동화 테스트 도구의 보급률이 낮은 이유를 규명하기 위해.
  • 특히 코드 커버리지와 같은 테스트 품질 지표에 대한 개발자 인식과 그들이 선호하는 대체 지표를 조사하기 위해.
  • 자체 개발 워크플로우에 통합되기 쉬운 자동화 테스트 도구의 핵심 요구사항을 밝혀내기 위해.
  • 연구자와 실무자들이 실제 개발자 요구사항과 워크플로우에 부합하는 자동화 테스트 접근 방식을 수립할 수 있도록 실질적인 통찰을 제공하기 위해.

제안 방법

  • GitHub에 호스팅된 오픈소스 안드로이드 프로젝트에 기여한 102명의 활동 중인 기여자들을 대상으로 설문조사를 실시하였다.
  • 테스트 케이스 설계 및 생성, 자동화된 테스트 관행, 테스트 품질 지표에 대한 인식의 세 가지 핵심 영역에 집중하였다.
  • 테스트 케이스 표현 방식, 도구 사용 패턴, 코드 커버리지 및 결함 탐지와 같은 평가 기준과 같은 데이터를 수집하였다.
  • 개발자 워크플로우, 도구 선호도, 자동화 도구 보급 저해 요인을 파악하기 위해 응답을 분석하였다.
  • 정성적 및 정량적 분석을 활용하여 개발자들이 자동화된 테스트 도구에 대해 기대하는 바를 추출하였다.
  • 기존 연구와의 비교를 통해 이론적 도구 기능과 실제 개발자 요구 간의 격차를 드러내었다.

실험 결과

연구 질문

  • RQ1안드로이드 개발자들은 오픈소스 프로젝트에서 실제로 어떻게 테스트 케이스를 설계하고 생성하는가?
  • RQ2안드로이드 애플리케이션을 위한 자동화 테스트 도구를 사용할 때 개발자들이 겪는 주요 선호도와 과제는 무엇인가?
  • RQ3개발자들은 코드 커버리지를 테스트 세트의 품질 측정 기준으로 어떻게 인식하는가? 그리고 그 대체 지표로 어떤 것을 선호하는가?
  • RQ4자동화된 테스트 케이스가 실제로 사용 가능하고 유용해지기 위해 갖춰야 할 특성은 무엇인가? 특히 재현 가능성과 디버깅 용이성 측면에서.
  • RQ5실제 안드로이드 개발 워크플로우에 더 잘 부합하기 위해 자동화 테스트 도구가 따라야 할 설계 원칙은 무엇인가?

주요 결과

  • 대부분의 개발자들(약 64%)은 코드 커버리지를 테스트 케이스 품질의 신뢰성 있는 또는 중요한 측정 기준으로 보지 않으며, 기능 커버리지나 결함 탐지와 같은 지표를 선호한다.
  • 개발자들은 사용자 케이스나 사용자 스토리 기반의 고수준이고 표현력 있는 테스트 케이스를 강하게 선호하며, 이는 모델 기반 또는 사용자 모델 기반 테스트 생성의 필요성을 시사한다.
  • 자동화 도구가 제공됨에도 불구하고, 테스트의 재현 가능성 문제, 자동화 API의 취약성, 자동화 테스트 케이스의 열악한 디버깅 지원으로 인해 수동 테스트가 여전히 주로 사용된다.
  • 일반적으로 알려진 랜덤 테스트 도구인 안드로이드 몽키(Monkey) 도구는 설문 조사 대상 개발자들 사이에서 낮은 사용률을 보이며, 간단함에도 불구하고 실질적인 보급은 제한적임을 시사한다.
  • 개발자들은 애플리케이션과 함께 진화하는 테스트 케이스와 애자일 워크플로우에 원활하게 통합되는 테스트 케이스를 가치 있게 여긴다. 이는 낮은 부담과 유지보수 용이성의 중요성을 강조한다.
  • 현재 자동화 테스트에 대한 연구와 실제 개발자 관행 사이에는 심각한 괴리가 존재한다. 특히 테스트 케이스의 표현력, 디버깅 용이성, 도구 통합 측면에서 두드러진다.

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

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

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

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