Skip to main content
QUICK REVIEW

[논문 리뷰] Recommendation of Exception Handling Code in Mobile App Development

Tam The Nguyen, Phong Minh Vu|arXiv (Cornell University)|2019. 08. 19.
Software Engineering Research참고 문헌 35인용 수 4
한 줄 요약

이 논문은 모바일 앱 개발에서 효과적인 예외 처리를 추천하기 위한 두 가지 새로운 기법인 XRank와 XHand를 제안한다. XRank는 메서드 호출과 관련된 흐린 집합 이론을 활용해 시도 블록 내 메서드 호출과 관련된 예외 유형을 순위 매겨 처리할 만한 예외를 선정한다. XHand는 n-gram 및 분류 모델을 사용해 예외 처리를 위한 보정 메서드 시퀀스를 추천한다. 1,000만 개 이상의 안드로이드 메서드를 대상으로 평가한 결과, XRank는 상위 1위 정확도 70%와 상위 3위 정확도 87%를 기록했으며, XHand는 각각 89%와 96%를 달성하여 예외 관련 버그를 줄이는 데 높은 효과를 보였다.

ABSTRACT

In modern programming languages, exception handling is an effective mechanism to avoid unexpected runtime errors. Thus, failing to catch and handle exceptions could lead to serious issues like system crashing, resource leaking, or negative end-user experiences. However, writing correct exception handling code is often challenging in mobile app development due to the fast-changing nature of API libraries for mobile apps and the insufficiency of their documentation and source code examples. Our prior study shows that in practice mobile app developers cause many exception-related bugs and still use bad exception handling practices (e.g. catch an exception and do nothing). To address such problems, in this paper, we introduce two novel techniques for recommending correct exception handling code. One technique, XRank, recommends code to catch an exception likely occurring in a code snippet. The other, XHand, recommends correction code for such an occurring exception. We have developed ExAssist, a code recommendation tool for exception handling using XRank and XHand. The empirical evaluation shows that our techniques are highly effective. For example, XRank has top-1 accuracy of 70% and top-3 accuracy of 87%. XHand's results are 89% and 96%, respectively.

연구 동기 및 목표

  • 모바일 앱 개발에서 잘못되거나 누락된 예외 처리로 인한 충돌과 자원 泄漏를 해결하기 위해.
  • 개발자의 부담을 줄이기 위해 적절한 예외 유형과 보정 조치를 자동으로 추천함으로써.
  • 자동화되고 맥락 인식 가능한 예외 처리 추천을 통해 안드로이드 애플리케이션의 신뢰성과 안정성을 향상시키기 위해.
  • API 문서의 한계와 빠른 프레임워크 진화로 인해 올바른 예외 처리가 어려운 문제를 극복하기 위해.
  • 안드로이드 스튜디오와 인텔리제이 아이디어와 같은 인기 있는 IDE에서 사용할 수 있는 실용적이고 통합된 도구(ExAssist)를 개발하기 위해.

제안 방법

  • XRank는 흐린 집합 이론을 활용해 try 블록 내 메서드 호출과 잠재적 예외 유형 간의 연관성을 모델링하여, 처리할 만한 예외를 순위 매긴다.
  • XHand는 통계적 언어 모델링—특히 n-gram 및 다중 클래스 분류 모델을 적용해 예외 처리를 위한 메서드 호출 시퀀스를 예측한다.
  • 시스템은 예외 처리 코드를 자연어 문제로 간주하며, catch 블록 내 누락된 메서드를 문장 속 누락된 단어처럼 예측한다.
  • ExAssist는 XRank와 XHand를 안드로이드 스튜디오와 인텔리제이 아이디어에 대한 플러그인으로 통합하여 실시간 코드 추천을 제공한다.
  • 학습 데이터는 4,000개의 안드로이드 앱을 통해 확보된 1,000만 개 이상의 메서드에서 유래되었으며, 실제 세계의 예외 처리 패턴을 반영한다.
  • 이 접근법은 코드 구조와 이전 사용 패턴을 활용해 올바른 예외 처리 관행을 유추한다.

실험 결과

연구 질문

  • RQ1모바일 앱의 특정 코드 스니펫에 대해 시스템이 올바른 예외 유형을 얼마나 정확하게 추천할 수 있는가?
  • RQ2예외 발생 후 객체 상태를 복구하기 위해 catch 블록 내 보정 메서드 시퀀스를 추천하는 데 효과적인가?
  • RQ3실제 안드로이드 코드를 기반으로 훈련된 도구가 개발자의 생산성을 향상시키고 예외 관련 버그를 줄일 수 있는가?
  • RQ4기본 기반 방법과 비교해 본 논문에서 제안한 방법이 예외 관련 버그에 대한 실제 수정 조치를 얼마나 잘 추천하는가?
  • RQ5개발자가 실제로 수행한 예외 처리 수정 조치가 시스템이 생성한 추천과 얼마나 일치하는가?

주요 결과

  • XRank는 코드 스니펫에 대해 적절한 예외 유형을 추천할 때 상위 1위 정확도 70%와 상위 3위 정확도 87%를 기록했다.
  • XHand는 예외 처리를 위한 보정 메서드 시퀀스를 추천할 때 상위 1위 정확도 89%와 상위 3위 정확도 96%를 기록했다.
  • ExAssist는 42개의 예외 관련 버그 수정 사례 중 64%에서 실제 수정 사례와 일치하거나 포함시켰으며, 이는 기준선 대비 크게 뛰어난 성능이다. 기준선은 단지 14%의 수정 사례만 일치시켰다.
  • 연구 결과는 많은 개발자가 예외를 제대로 처리하지 못함을 확인했으며, 16%의 수정 사례에서 예외가 처리되지 않은 채로 남아 있었고, 42%는 부분적인 수리만 추가된 것으로 나타났다.
  • 자동화되고 맥락 인식 가능한 예외 처리 추천이 모바일 애플리케이션의 코드 품질을 크게 향상시키고 충돌 위험을 줄일 수 있음을 검증했다.
  • XRank와 XHand의 높은 정확도는 예외 처리 패턴이 대규모 코드 저장소에서 예측 가능하고 학습 가능하다는 것을 시사한다.

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

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

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

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