Test automation for lifecycle conformance for mobile applications - Zein, Samer Masoud (Kulliyyah of Information and Communication Technology, International Islamic University Malaysia, 2016)
Mobile and smartphone adoption is expanding and growing rapidly and millions of mobile applications are available at online stores. Mobile applications nowadays are not developed to only serve the entertainment sector, but also targeting safety and time critical domains such as payment systems, m-government, and military to mention a few. As mobile applications have been developed to address more and more critical domains, they are not only becoming more complex to develop, but also more difficult to test and to validate. The nature of mobile application development has three main peculiarities: first, the rapid nature of the development process and the short time-to-market. Secondly, a large portion of the developers are known to be novice with very little experience and knowledge on how to develop reliable mobile applications. Thirdly, in order to develop a highly reliable mobile application, a developer has to be fully aware of the lifecycle models so that the application can react and behave correctly during different state transitions at runtime. In order to assist in developing reliable mobile applications, future testing approaches should take into consideration these peculiarities. Although there are relatively mature studies in the areas of test automation; most of these studies focus on automating GUI (Graphical User Interface) functional testing, regression testing, and model-based test case generation. In fact, little research has been done on testing lifecycle conformance of mobile applications. This thesis addresses this issue taking into consideration the specific peculiarities of the nature of mobile application development. Based on test automation, a novel testing approach is presented to help novice developers in building reliable mobile applications. The testing approach is based on static code analysis against a predefined set of lifecycle rules. A special analysis algorithm is presented and a proof-of-concept tool called ALCI is developed to demonstrate the testing approach. ALCI has been evaluated on 10 Android open-source applications and the results prove ALCI to be successful and efficient.