[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1109/ASE.2015.21acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Testing cross-platform mobile app development frameworks

Published: 09 November 2015 Publication History

Abstract

Mobile app developers often wish to make their apps available on a wide variety of platforms, e.g., Android, iOS, and Windows devices. Each of these platforms uses a different programming environment, each with its own language and APIs for app development. Small app development teams lack the resources and the expertise to build and maintain separate code bases of the app customized for each platform. As a result, we are beginning to see a number of cross-platform mobile app development frameworks. These frameworks allow the app developers to specify the business logic of the app once, using the language and APIs of a home platform (e.g., Windows Phone), and automatically produce versions of the app for multiple target platforms (e.g., iOS and Android).
In this paper, we focus on the problem of testing cross-platform app development frameworks. Such frameworks are challenging to develop because they must correctly translate the home platform API to the (possibly disparate) target platform API while providing the same behavior. We develop a differential testing methodology to identify inconsistencies in the way that these frameworks handle the APIs of the home and target platforms. We have built a prototype testing tool, called X-Checker, and have applied it to test Xamarin, a popular framework that allows Windows Phone apps to be cross-compiled into native Android (and iOS) apps. To date, X-Checker has found 47 bugs in Xamarin, corresponding to inconsistencies in the way that Xamarin translates between the semantics of the Windows Phone and the Android APIs. We have reported these bugs to the Xamarin developers, who have already committed patches for twelve of them.

References

[1]
Adobe PhoneGap. http://phonegap.com.
[2]
Apportable - Objective-C for Android. www.apportable.com.
[3]
IBM MobileFirst platform foundation. http://www-03.ibm.com/software/products/en/mobilefirstfoundation.
[4]
Json.NET - popular high-performance JSON framework for .NET. http://james.newtonking.com/json.
[5]
Mono - Cross-platform, open source .NET framework. http://www.mono-project.com.
[6]
MyAppConverter - develop once, run anywhere. http://www.myappconverter.com.
[7]
Sencha: HTML5 app development. http://www.sencha.com.
[8]
Xamarin - Mobile App Development and App Creation Software. http://xamarin.com.
[9]
Xamarin Bug 25895. Wrong exception is thrown when calling System.Globalization.CharUnicodeInfo.GetNumericValue with invalid index. https://bugzilla.xamarin.com/show_bug.cgi?id=25895.
[10]
Xamarin Bug 27901. XmlConvert.ToString returns wrong value. https://bugzilla.xamarin.com/show_bug.cgi?id=27901.
[11]
Xamarin Bug 27910. XmlParserContext constructor not throwing XmlException when it should. https://bugzilla.xamarin.com/show_bug.cgi?id=27910.
[12]
Xamarin Bug 27922. XmlConvert.ToUnit throwing wrong/inconsistent exception. https://bugzilla.xamarin.com/show_bug.cgi?id=27922.
[13]
Xamarin Bug 27982. Inconsistent behavior in DynamicAttribute.Equals. https://bugzilla.xamarin.com/show_bug.cgi?id=27982.
[14]
Xamarin Bug 28017. NameTable.Add throwing wrong/inconsistent exception. https://bugzilla.xamarin.com/show_bug.cgi?id=28017.
[15]
Xamarin Bug 28123. Inconsistent behavior in System.Xml.XmlReaderSettings.MaxCharactersInDocument. https://bugzilla.xamarin.com/show_bug.cgi?id=28123.
[16]
Xamarin Bug 28134. System.Text.EncoderFallbackException inconsistent initial state compared to .NET (two inconsistencies assigned to this bug identifier). https://bugzilla.xamarin.com/show_bug.cgi?id=28134.
[17]
Xamarin Bug 28562. Incorrect System.Numerics.Complex.Pow result. https://bugzilla.xamarin.com/show_bug.cgi?id=28562.
[18]
Xamarin Bug 28571. Incorrect behavior in System.Numerics.BigInteger. https://bugzilla.xamarin.com/show_bug.cgi?id=28571.
[19]
Xamarin Bug 28572. Incorrect/inconsistent behavior in System.Numerics.Complex.Divide. https://bugzilla.xamarin.com/show_bug.cgi?id=28572.
[20]
S. Anand, M. Naik, H. Yang, and M. Harrold. Automated concolic testing of smartphone apps. In ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2012.
[21]
T. Azim and I. Neamtiu. Targeted and depth-first exploration for systematic testing of Android apps. In ACM Symposium on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2013.
[22]
P. Brooks and A. Memon. Automated GUI testing guided by usage profiles. In IEEE/ACM International Conference on Automated Software Engineering (ASE), 2007.
[23]
C. Brubaker, S. Jana, B. Ray, S. Khurshid, and V. Shmatikov. Using Frankencerts for automated adversarial testing of certificate validation in SSL/TLS implementations. In IEEE Symposium on Security and Privacy (Oakland), 2014.
[24]
D. Brumley, J. Caballero, Z. Liang, J. Newsome, and D. Song. Towards automatic discovery of deviations in binary implementations with applications to error detection and fingerprint generation. In USENIX Security Symposium, 2007.
[25]
S. Choudhary, M. Prasad, and A. Orso. X-PERT: Accurate identification of cross-browser issues in Web applications. In International Conference on Software Engineering (ICSE), 2013.
[26]
S. R. Choudhary, M. R. Prasad, and A. Orso. Cross-platform feature matching for Web applications. In International Symposium on Software Testing and Analysis (ISSTA), 2014.
[27]
C. Csallner and Y. Smaragdakis. JCrasher: An automatic robustness tester for Java. Software-Practice and Experience, 34(11), 2004.
[28]
J. E. Forrester and B. P. Miller. An empirical study of the robustness of Windows NT applications using random testing. In USENIX Windows Systems Symposium, 2000.
[29]
A. Gokhale, V. Ganapathy, and Y. Padmanaban. Inferring likely mappings between APIs. In International Conference on Software Engineering (ICSE), 2013.
[30]
S. Guthrie, T. Myerson, and S. Nadella. Day one keynote presentation, Microsoft Build developer conference, April 2015. http://channel9.msdn.com/Events/Build/2015/KEY01.
[31]
H. Heikotter, T. Majchrzak, and H. Kuchen. Cross-platform model-driven development of mobile applications with MD<sup>2</sup>. In ACM Symposium on Applied Computing (SAC), 2013.
[32]
A. Machiry, R. Tahiliani, and M. Naik. Dynodroid: An input generation system for Android apps. In ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2013.
[33]
W. M. McKeeman. Differential testing for software. Digital Technical Journal, 10(1), December 1998.
[34]
B. P. Miller, L. Fredriksen, and B. So. An empirical study of the reliability of UNIX utilities. Communications of the ACM (CACM), 33(12), December 1990.
[35]
B. Nguyen, B. Robbins, I. Banerjee, and A. Memon. GUITAR: An innovative tool for automated testing of GUI-driven software. Journal of Automated Software Engineering, 21(1), 2014.
[36]
C. Pacheco, S. K. Lahiri, M. Ernst, and T. Ball. Feedback-directed random test generation. In International Conference on Software Engineering (ICSE), 2007.
[37]
M. Pradel, P. Schuh, G. Necula, and K. Sen. Event-break: Analyzing the responsiveness of user interfaces through performance-guided test generation. In ACM Symposium on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2014.
[38]
M. P. Robillard, E. Bodden, D. Kawrykow, M. Mezini, and T. Ratchford. Automated API property inference techniques. IEEE Transactions on Software Engineering (TSE), 39(5), May 2013.
[39]
V. Srivastava, M. D. Bond, K. S. McKinley, and V. Shmatikov. A security policy oracle: Detecting security holes using multiple API implementation. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2011.
[40]
C. Velazco. Microsoft invites Android and iOS apps to join Windows 10, April 2015. http://www.engadget.com/2015/04/29/android-ios-apps-on-windows-10.
[41]
X. Yang, Y. Chen, E. Eide, and J. Regehr. Finding and understanding bugs in C compilers. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2011.
[42]
H. Zhong, S. Thummalapenta, and T. Xie. Exposing behavioral differences in cross-language API mapping relations. In International Conference on Fundamental Approaches to Software Engineering (FASE), 2013.
[43]
H. Zhong, S. Thummalapenta, T. Xie, L. Zhang, and Q. Wang. Mining API mapping for language migration. In International Conference on Software Engineering (ICSE), 2010.

Cited By

View all
  • (2019)Two datasets of questions and answers for studying the development of cross-platform mobile applications using Xamarin frameworkProceedings of the 6th International Conference on Mobile Software Engineering and Systems10.5555/3340730.3340763(162-173)Online publication date: 25-May-2019
  • (2018)A Survey and Taxonomy of Core Concepts and Research Challenges in Cross-Platform Mobile DevelopmentACM Computing Surveys10.1145/324173951:5(1-34)Online publication date: 19-Nov-2018
  • (2018)AladdinProceedings of the 2018 World Wide Web Conference10.1145/3178876.3186059(1469-1478)Online publication date: 10-Apr-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '15: Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering
November 2015
935 pages
ISBN:9781509000241

Sponsors

In-Cooperation

  • IEEE CS

Publisher

IEEE Press

Publication History

Published: 09 November 2015

Check for updates

Qualifiers

  • Research-article

Conference

ASE '15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)1
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Two datasets of questions and answers for studying the development of cross-platform mobile applications using Xamarin frameworkProceedings of the 6th International Conference on Mobile Software Engineering and Systems10.5555/3340730.3340763(162-173)Online publication date: 25-May-2019
  • (2018)A Survey and Taxonomy of Core Concepts and Research Challenges in Cross-Platform Mobile DevelopmentACM Computing Surveys10.1145/324173951:5(1-34)Online publication date: 19-Nov-2018
  • (2018)AladdinProceedings of the 2018 World Wide Web Conference10.1145/3178876.3186059(1469-1478)Online publication date: 10-Apr-2018

View Options

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