Mobile app development : challenges and opportunities for automated support

Mobile app development is a relatively new phenomenon that is increasing rapidly due to the ubiquity and popularity of smartphones among end-users. As with any new domain, mobile app development has its own set of new challenges. The work presented in this dissertation has focused on improving the state-of-the-art by understanding the current practices and challenges in mobile app development as well as proposing a new set of techniques and tools based on the identified challenges. To understand the current practices, real challenges and issues in mobile development, we first conducted an explorative field study, in which we interviewed 12 senior mobile developers from nine different companies, followed by a semistructured survey, with 188 respondents from the mobile development community. Next, we mined and quantitatively and qualitatively analyzed 32K nonreproducible bug reports in one industrial and five open-source bug repositories. Then, we performed a large-scale comparative study of 80K iOS and Android apppairs and 1.7M reviews by mining the Google Play and Apple app stores. Based on the identified challenges, we first proposed a reverse engineering technique that automatically analyzes a given iOS mobile app and generates a state model of the app. Finally, we proposed an automated technique for detecting inconsistencies in the same mobile app implemented for iOS and Android platforms. To measure the effectiveness of the proposed techniques, we evaluated our methods using various industrial and open-source mobile apps. The evaluation results point to the effectiveness of the proposed model generation and mapping techniques in terms of accuracy and inconsistency detection capability. ii Preface All of the work presented henceforth was conducted by the author, Mona Erfani Joorabchi. The contributions and evaluations presented in this dissertation are summarized and published in four conference papers. Additionally, the author and an ECE master student, Mohamed Ali, collaborated equally to a conference submission of Chapter 4 which is currently under review. The following list presents publications for each chapter. • Chapter 2: – “Real Challenges in Mobile App Development” [86]. M. Erfani Joorabchi, A. Mesbah and P. Kruchten. In Proceedings of the 7th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM 2013). ACM/IEEE. 15–24. • Chapter 3: – “Works For Me! Characterizing Non-reproducible Bug Reports” [87]. M. Erfani Joorabchi, M. Mirzaaghaei and A. Mesbah. In Proceedings of the 11th ACM Working Conference on Mining Software Repositories (MSR 2014). ACM. 62–71. • Chapter 4: – The author and an ECE master student collaborated equally to an ACM SIGSOFT conference submission of this work and it is currently under review. • Chapter 5: – “Reverse Engineering iOS Mobile Applications” [85]. M. Erfani Joorabchi and A. Mesbah. In Proceedings of the 19th IEEE Working Conference on Reverse Engineering (WCRE 2012). IEEE Computer Society. 177– 186. • Chapter 6: iii – “Detecting Inconsistencies in Multi-Platform Mobile Apps” [88]. M. Erfani Joorabchi, M. Ali and A. Mesbah. In Proceedings of the 26th IEEE International Symposium on Software Reliability Engineering (ISSRE 2015). IEEE Computer Society. 450–460. Regarding ethics approval, the following Human Ethics Certificates were obtained from UBC Behavioural Research Ethics Board: • Project Title “A Study of Cross-platform Development and Testing Practices of Mobile Applications” with Certificate Numbers H12-03058 and H1502247.