2 research outputs found
Recommendation of Exception Handling Code in Mobile App Development
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.Comment: The 34th IEEE/ACM International Conference on Automated Software
Engineering (ASE 2019) - Late Breaking Result
API Misuse Correction: A Statistical Approach
Modern software development relies heavily on Application Programming
Interface (API) libraries. However, there are often certain constraints on
using API elements in such libraries. Failing to follow such constraints (API
misuse) could lead to serious programming errors. Many approaches have been
proposed to detect API misuses, but they still have low accuracy and cannot
repair the detected misuses. In this paper, we propose SAM, a novel approach to
detect and repair API misuses automatically. SAM uses statistical models to
describe five factors involving in any API method call: related method calls,
exceptions, pre-conditions, post-conditions, and values of arguments. These
statistical models are trained from a large repository of high-quality
production code. Then, given a piece of code, SAM verifies each of its method
calls with the trained statistical models. If a factor has a sufficiently low
probability, the corresponding call is considered as an API misuse. SAM
performs an optimal search for editing operations to apply on the code until it
has no API issue.Comment: The 34th IEEE/ACM International Conference on Automated Software
Engineering (ASE 2019) - Late Breaking Result