Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2973839.2973843acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

An Exploratory Study of Exception Handling Behavior in Evolving Android and Java Applications

Published: 19 September 2016 Publication History

Abstract

Previous work has shown that robustness-related issues like functional errors and app crashes rank among the most common causes for complaints about mobile phone apps. Since most Android applications are written in Java, exception handling is the main mechanism they employ to report and handle errors, similarly to standard Java applications. Thus, the proper use of this mechanism is closely linked to app robustness. Nonetheless, to the best of our knowledge, no previous study analyzed the relationship between source code changes and uncaught exceptions, a common cause of bugs in Android apps, nor whether exception handling code in these apps evolves in the same way as in standard Java applications. This paper presents an empirical study aimed at understanding the relationship between changes in Android programs and their robustness and comparing the evolution of the exception handling code in Android and standard Java applications.

References

[1]
Git site, Aug 2015. http://git-scm.com/.
[2]
Apple Inc. WWDC 2015 keynote, June 2015.
[3]
J. Araujo et al. https://sites.google.com/site/androidandjavastudy/, April 2016.
[4]
A. Bartel, J. Klein, Y. Le Traon, and M. Monperrus. Dexpler: Converting android dalvik bytecode to jimple for static analysis with soot. SOAP '12, pages 27--38, New York, NY, USA, 2012. ACM.
[5]
B. H. Bill Phillips. Android Programming: The Big Nerd Ranch Guide. Big Nerd Ranch Guides, 1st edition, April 2013.
[6]
R. Binder. Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley Professional, 2000.
[7]
B. Cabral and P. Marques. Exception handling: A field study in java and .net. In 21st European Conference Object-Oriented Programming, volume 4609 of Lecture Notes in Computer Science, pages 151--175. Springer, 2007.
[8]
N. Cacho, E. A. Barbosa, J. Araujo, F. Pranto, A. Garcia, T. Cesar, E. Soares, A. Cassio, T. Filipe, and I. Garcia. How does exception handling behavior evolve? an exploratory study in java and c# applications. In IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 31--40, Sept 2014.
[9]
R. Coelho, L. Almeida, G. Gousios, and A. van Deursen. Unveiling exception handling bug hazards in android based on github and google code issues. In Proceedings of the 12th Working Conference on Mining Software Repositories, MSR '15, 2015.
[10]
F. Ebert, F. Castor, and A. Serebrenik. An exploratory study on exception handling bugs in java programs. Journal of Systems and Software, 106:82--101, 2015.
[11]
A. F. G. et al. A comparative study of exception handling mechanisms for building dependable object-oriented software. The Journal of Systems and Software, 59(2):197--222, 2001.
[12]
N. C. et al. Trading robustness for maintainability: An empirical study of evolving c# programs. In ICSE '14: Proceedings of the 36th International Conference on Software Engineering, New York, NY, USA, 2014. ACM.
[13]
R. C. et al. Assessing the impact of aspects on exception flows: An exploratory study. volume 5142 of Lecture Notes in Computer Science, pages 207--234. Springer, 2008.
[14]
F. C. Filho, A. Garcia, and C. M. F. Rubira. Extracting error handling to aspects: A cookbook. In IEEE International Conference on Software Maintenance, 2007. ICSM 2007, pages 134--143, 2007.
[15]
G. Fraser and A. Arcuri. 1600 faults in 100 projects: Automatically finding faults while achieving high coverage with evosuite. Empirical Softw. Engg., 20(3):611--639, June 2015.
[16]
C. Fu and B. G. Ryder. Exception-chain analysis: Revealing exception handling architecture in java server applications. In ICSE '07, pages 230--239. IEEE Computer Society, 2007.
[17]
I. Garcia and N. Cacho. eflowmining: An exception-flow analysis tool for .net applications. In Dependable Computing Workshops (LADCW), 2011 Fifth Latin-American Symposium on, pages 1--8, 2011.
[18]
Gartner Inc. Market share: Devices, all countries, 4q14 update, 2016. Available at: http://www.gartner.com/newsroom/id/3215217. Last visit: July 9th 2016.
[19]
E. Giger, M. Pinzger, and H. C. Gall. Comparing fine-grained source code changes and code churn for bug prediction. In Proceedings of the 8th Working Conference on Mining Software Repositories, MSR '11, pages 83--92, New York, NY, USA, 2011. ACM.
[20]
J. B. Goodenough. Exception handling: issues and a proposed notation. Commun. ACM, 18(12):683--696, 1975.
[21]
Google Inc. FY Q2 2013 earnings call, July 2013.
[22]
H. Heitkötter, T. A. Majchrzak, B. Ruland, and T. Weber. Evaluating frameworks for creating mobile web apps. In WEBIST, pages 209--221, 2013.
[23]
W. G. Hopkins. A new view of statistics, Nov. 2013.
[24]
B. A. Joseph Albahari. C# 5.0 in a Nutshell: The Definitive Reference. O'Reilly Media, 5th edition, June 2012.
[25]
M. Kechagia and D. Spinellis. Undocumented and unchecked: Exceptions that spell trouble. In Proceedings of the 11th Working Conference on Mining Software Repositories, MSR 2014, 2014.
[26]
H. Khalid, E. Shihab, M. Nagappan, and A. Hassan. What do mobile app users complain about? a study on free ios apps. IEEE Software, 2015. To appear.
[27]
S. Kim, T. Zimmermann, R. Premraj, N. Bettenburg, and S. Shivaji. Predicting method crashes with bytecode operations. In Proceedings of the 6th India Software Engineering Conference, ISEC '13, pages 3--12, New York, NY, USA, 2013. ACM.
[28]
P. Lam, F. Qian, O. Lhotak, and E. Bodden. The soot framework. http://www.sable.mcgill.ca/soot.
[29]
P. A. Lee and T. Anderson. Fault Tolerance: Principles and Practice. Dependable computing and fault-tolerant systems. Springer-Verlag, second edition, 1990.
[30]
M. Linares-Vásquez, G. Bavota, C. Bernal-Cárdenas, M. Di Penta, R. Oliveto, and D. Poshyvanyk. Api change and fault proneness: A threat to the success of android apps. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pages 477--487, New York, NY, USA, 2013. ACM.
[31]
M. Linares-Vásquez, G. Bavota, M. Di Penta, R. Oliveto, and D. Poshyvanyk. How do api changes trigger stack overflow discussions? a study on the android sdk. In Proceedings of the 22Nd International Conference on Program Comprehension, ICPC 2014, pages 83--94, New York, NY, USA, 2014. ACM.
[32]
A. Maji, F. Arshad, S. Bagchi, and J. Rellermeyer. An empirical study of the robustness of inter-component communication in android. In Dependable Systems and Networks (DSN), 2012 42nd Annual IEEE/IFIP International Conference on, pages 1--12, 2012.
[33]
I. J. Mojica, B. Adams, M. Nagappan, S. Dienst, T. Berger, and A. E. Hassan. A large-scale empirical study on software reuse in mobile apps. Software, IEEE, 31(2):78--86, 2014.
[34]
N. Nagappan and T. Ball. Use of relative code churn measures to predict system defect density. In Proceedings of the 27th international conference on Software engineering, ICSE '05, pages 284--292, New York, NY, USA, 2005. ACM.
[35]
D. L. Parnas and H. Wurges. Response to undesired events in software systems. In ICSE '76: Proceedings of the 2nd international conference on Software engineering, pages 437--446, Los Alamitos, CA, USA, 1976. IEEE Computer Society Press.
[36]
A. Pathak, A. Jindal, Y. C. Hu, and S. P. Midkiff. What is keeping my phone awake?: Characterizing and detecting no-sleep energy bugs in smartphone apps. In Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services, MobiSys '12, pages 267--280, New York, NY, USA, 2012. ACM.
[37]
M. P. Robillard and G. C. Murphy. Static analysis to support the evolution of exception structure in object-oriented systems. ACM Trans. Softw. Eng. Methodol., 12(2):191--221, 2003.
[38]
C. Wohlin, P. Runeson, M. Höst, M. Ohlsson, B. Regnell, and A. Wesslén. Experimentation in Software Engineering - An Introduction. Springer, 2000.
[39]
S. S. Yau and J. S. Collofello. Design stability measures for software maintenance. IEEE Trans. Softw. Eng., 11(9):849--856, 1985.
[40]
E. Zeman. Android dominates smartphone market with 85% share, Aug. 2014. http://www.informationweek.com/mobile/mobile-business/android-dominates-smartphone-market-with-85-share/d/d-id/1298037.
[41]
P. Zhang and S. Elbaum. Amplifying tests to validate exception handling code. In In Proceedings of 34th International Conference on Software Engineering, pages 595--605, june 2012.
[42]
W. Zhou, Y. Zhou, X. Jiang, and P. Ning. Detecting repackaged smartphone applications in third-party android marketplaces. In Proceedings of the Second ACM Conference on Data and Application Security and Privacy, CODASPY '12, pages 317--326, New York, NY, USA, 2012. ACM.

Cited By

View all
  • (2023)Don’t Forget the Exception! : Considering Robustness Changes to Identify Design Problems2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR)10.1109/MSR59073.2023.00064(417-429)Online publication date: May-2023
  • (2022)A systematic mapping study addressing the reliability of mobile applicationsJournal of Systems and Software10.1016/j.jss.2021.111166186:COnline publication date: 9-May-2022
  • (2020)Studying the evolution of exception handling anti-patterns in a long-lived large-scale projectJournal of the Brazilian Computer Society10.1186/s13173-019-0095-526:1Online publication date: 27-Jan-2020
  • Show More Cited By
  1. An Exploratory Study of Exception Handling Behavior in Evolving Android and Java Applications

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    SBES '16: Proceedings of the XXX Brazilian Symposium on Software Engineering
    September 2016
    167 pages
    ISBN:9781450342018
    DOI:10.1145/2973839
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    In-Cooperation

    • SBC: Brazilian Computer Society

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 September 2016

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Android
    2. Exception Handling
    3. Java
    4. Robustness

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    SBES '16
    SBES '16: 30th Brazilian Symposium on Software Engineering
    September 19 - 23, 2016
    Maringá, Brazil

    Acceptance Rates

    Overall Acceptance Rate 147 of 427 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)10
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 01 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Don’t Forget the Exception! : Considering Robustness Changes to Identify Design Problems2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR)10.1109/MSR59073.2023.00064(417-429)Online publication date: May-2023
    • (2022)A systematic mapping study addressing the reliability of mobile applicationsJournal of Systems and Software10.1016/j.jss.2021.111166186:COnline publication date: 9-May-2022
    • (2020)Studying the evolution of exception handling anti-patterns in a long-lived large-scale projectJournal of the Brazilian Computer Society10.1186/s13173-019-0095-526:1Online publication date: 27-Jan-2020
    • (2020)Code recommendation for exception handlingProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409690(1027-1038)Online publication date: 8-Nov-2020
    • (2020)A Reflection on “An Exploratory Study on Exception Handling Bugs in Java Programs”2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER48275.2020.9054791(552-556)Online publication date: Feb-2020
    • (2019)An Empirical Study on Inter-Component Exception Notification in Android PlatformProceedings of the XXXIII Brazilian Symposium on Software Engineering10.1145/3350768.3350784(73-83)Online publication date: 23-Sep-2019
    • (2019)Automatically detecting missing cleanup for ungraceful exitsProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338938(751-762)Online publication date: 12-Aug-2019
    • (2019)Effective and efficient API misuse detection via exception propagation and search-based testingProceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3293882.3330552(192-203)Online publication date: 10-Jul-2019
    • (2019)Combinatorial Robustness Testing with Negative Test Cases2019 IEEE 19th International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS.2019.00018(34-45)Online publication date: Jul-2019
    • (2018)Taming Exceptions in Android Applications2018 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW.2018.000-2(174-177)Online publication date: Oct-2018
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media