skip to main content
research-article

Scalable race detection for Android applications

Published:23 October 2015Publication History
Skip Abstract Section

Abstract

We present a complete end-to-end dynamic analysis system for finding data races in mobile Android applications. The capabilities of our system significantly exceed the state of the art: our system can analyze real-world application interactions in minutes rather than hours, finds errors inherently beyond the reach of existing approaches, while still (critically) reporting very few false positives. Our system is based on three key concepts: (i) a thorough happens-before model of Android-specific concurrency, (ii) a scalable analysis algorithm for efficiently building and querying the happens-before graph, and (iii) an effective set of domain-specific filters that reduce the number of reported data races by several orders of magnitude. We evaluated the usability and performance of our system on 354 real-world Android applications (e.g., Facebook). Our system analyzes a minute of end-user interaction with the application in about 24 seconds, while current approaches take hours to complete. Inspecting the results for 8 large open-source applications revealed 15 harmful bugs of diverse kinds. Some of the bugs we reported were confirmed and fixed by developers.

References

  1. W. Choi, G. Necula, and K. Sen. Guided gui testing of android apps with minimal restart and approximate learning. In Proceedings of the 2013 ACM SIGPLAN Conference on Object Oriented Programming Systems Languages Applications, OOPSLA ’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Dimitrov, V. Raychev, M. Vechev, and E. Koskinen. Commutativity race detection. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. S. Jensen, M. R. Prasad, and A. Møller. Automated testing with targeted event sequence generation. In Proceedings of the 2013 International Symposium on Software Testing and Analysis, ISSTA ’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Machiry, R. Tahiliani, and M. Naik. Dynodroid: An input generation system for android apps. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE ’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Maiya, A. Kanade, and R. Majumdar. Race detection for android applications. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. V. Raychev, M. Vechev, and M. Sridharan. Effective race detection for event-driven programs. In Proceedings of the 2013 ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. Takala, M. Katara, and J. Harty. Experiences of systemlevel model-based gui testing of an android application. In Proceedings of the 2011 4th IEEE International Conference on Software Testing, Verification and Validation, ICST ’11. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Scalable race detection for Android applications

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 50, Issue 10
                  OOPSLA '15
                  October 2015
                  953 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2858965
                  • Editor:
                  • Andy Gill
                  Issue’s Table of Contents
                  • cover image ACM Conferences
                    OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
                    October 2015
                    953 pages
                    ISBN:9781450336895
                    DOI:10.1145/2814270

                  Copyright © 2015 ACM

                  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]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 23 October 2015

                  Check for updates

                  Qualifiers

                  • research-article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader