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.
- Android documentation. http://developer.android.com/. Accessed: 17 July 2012.Google Scholar
- Java Pathfinder documentation. http://babelfish.arc.nasa.gov/trac/jpf. Accessed: July 2012.Google Scholar
- Android mock, November 2007. http://code.google.com/p/android-mock/. Accessed: 17 July 2012.Google Scholar
- Mockito, November 2007. http://code.google.com/p/mockito/. Accessed: 17 July 2012.Google Scholar
- Robolectric documentation, November 2007. http://pivotal.github.com/robolectric. Accessed: July 2012.Google Scholar
- User scenario testing for android, November 2007. code.google.com/p/robotium/. Accessed: 17 July 2012.Google Scholar
- Testing fundamentals, June 2012. http://developer.android.com/tools/testing/. Accessed: 17 July 2012.Google Scholar
- D. Ehringer. The Dalvik virtual machine architecture. 2010.Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- T. Schreiber, J. Somorovsky, and D. Bußmeyer. Android Binder. {seminarthesis}, October 2011.Google Scholar
- J. Six. Application Security for the Android Platform. O'Reilly Media, Inc., December 2011.Google Scholar
- 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 Scholar
- K. Yaghmour. Understanding the Android System Server. In AnDevCon, Android conference, 2011.Google Scholar
Index Terms
- Verifying android applications using Java PathFinder
Recommendations
Testing android apps through symbolic execution
There is a growing need for automated testing techniques aimed at Android apps. A critical challenge is the systematic generation of test cases. One method of systematically generating test cases for Java programs is symbolic execution. But applying ...
Java Pathfinder on Android Devices
Because Android apps are written in Java and executed on a virtual machine (VM), there is an opportunity to employ Java Pathfinder (JPF) for their verification. There already exist two JPF extensions, jpf-android and jpf-pathdroid. The former executes ...
Automatic handling of native methods in Java PathFinder
SPIN 2014: Proceedings of the 2014 International SPIN Symposium on Model Checking of SoftwareJava PathFinder (JPF) is a model checker for Java applications. Despite its maturity, JPF cannot be used to verify any realistic Java application without a nontrivial amount of work done by its user. One of the main limiting factors towards model ...
Comments