skip to main content
research-article

Verifying android applications using Java PathFinder

Published:27 November 2012Publication History
Skip Abstract Section

Abstract

Mobile application testing is a specialised and complex field. Due to mobile applications' event driven design and mobile runtime environment, there currently exist only a small number of tools to verify these applications. This paper describes the development of JPF-ANDROID, an Android application verification tool. JPF-ANDROID is built on Java Pathfinder, a Java model checking engine. JPF-ANDROID provides a simplified model of the Android framework on which an Android application can run. It then allows the user to script input events to drive the application flow. JPF-ANDROID provides a way to detect common property violations such as deadlocks and runtime exceptions in Android applications.

References

  1. Android documentation. http://developer.android.com/. Accessed: 17 July 2012.Google ScholarGoogle Scholar
  2. Java Pathfinder documentation. http://babelfish.arc.nasa.gov/trac/jpf. Accessed: July 2012.Google ScholarGoogle Scholar
  3. Android mock, November 2007. http://code.google.com/p/android-mock/. Accessed: 17 July 2012.Google ScholarGoogle Scholar
  4. Mockito, November 2007. http://code.google.com/p/mockito/. Accessed: 17 July 2012.Google ScholarGoogle Scholar
  5. Robolectric documentation, November 2007. http://pivotal.github.com/robolectric. Accessed: July 2012.Google ScholarGoogle Scholar
  6. User scenario testing for android, November 2007. code.google.com/p/robotium/. Accessed: 17 July 2012.Google ScholarGoogle Scholar
  7. Testing fundamentals, June 2012. http://developer.android.com/tools/testing/. Accessed: 17 July 2012.Google ScholarGoogle Scholar
  8. D. Ehringer. The Dalvik virtual machine architecture. 2010.Google ScholarGoogle Scholar
  9. M. Grechanik, Q. Xie, and C. Fu. Creating gui testing tools using accessibility technologies. In International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 243--250, April 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Hamilton. Multithreaded toolkits: A failed dream?, October 2004. http://weblogs.java.net/blog/kgh/archive/2004/10/multithreaded_t.html. Accessed: 17 July 2012.Google ScholarGoogle Scholar
  11. C. Hu and I. Neamtiu. Automating gui testing for android applications. In Proceedings of the 6th International Workshop on Automation of Software Test, AST '11, pages 77--83, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Hu and I. Neamtiu. Automating gui testing for android applications. In Proceedings of the 6th International Workshop on Automation of Software Test, AST '11, pages 77--83, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. H. Ji. Mobile software testing based on simulation keyboard. In Q. Luo, editor, Advances in Wireless Networks and Information Systems, volume 72 of Lecture Notes in Electrical Engineering, pages 555--561. Springer Berlin Heidelberg, 2010.Google ScholarGoogle Scholar
  14. P. Mehlitz, O. Tkachuk, and M. Ujma. JPF-AWT: Model checking gui applications. In 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 584--587, November 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. E. Pasko. Google android, apache harmony and java packaging, 2007. http://apache-harmony.blogspot.com/2007/11/google-android-apache-harmony-and-java.html. Accessed: July 2012.Google ScholarGoogle Scholar
  16. T. Schreiber, J. Somorovsky, and D. Bußmeyer. Android Binder. {seminarthesis}, October 2011.Google ScholarGoogle Scholar
  17. J. Six. Application Security for the Android Platform. O'Reilly Media, Inc., December 2011.Google ScholarGoogle Scholar
  18. M. Staats. Towards a framework for generating tests to satisfy complex code coverage in Java Pathfinder. In Proc. of NASA Formal Methods Symposium 2009, page 116, 2009.Google ScholarGoogle Scholar
  19. K. Yaghmour. Understanding the Android System Server. In AnDevCon, Android conference, 2011.Google ScholarGoogle Scholar

Index Terms

  1. Verifying android applications using Java PathFinder

    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 SIGSOFT Software Engineering Notes
      ACM SIGSOFT Software Engineering Notes  Volume 37, Issue 6
      November 2012
      191 pages
      ISSN:0163-5948
      DOI:10.1145/2382756
      Issue’s Table of Contents

      Copyright © 2012 Copyright is held by the owner/author(s)

      Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 27 November 2012

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader