On improving analysis and testing of open- and closed-source Android Apps (2023)
The amount of android applications available on marketplaces have an increasing trend, leading to a highly competitive environment between similar apps. To stand out, practitioners and researchers need to ensure that the development process is supported on approaches and tools that help developers to release high quality applications frequently. This quality assurance process can be done in three main phases by preventing, identifing and fixing issues/bugs. To help in this process, a plethora of automated approaches have been proposed, exploiting the capabilities and information provided by source-code. However, practitioners and researchers work on heterogenous environments in which the access to the source code might be restricted or its not needed due to the capabilities available at working at APK level. Therefore, proposing approaches that work at both level of access (\ie source-code and APK) is required to improve the state of the art and enhance the development process. In this research, we aim on enabling the automation of software engineering tasks by (i) exploiting the knowledge available from approaches at source code level, and (ii) extending it with new approaches for closed-source apps. We focused on 4 aspects towards enhancing the quality of analysis and testing of Android apps: (i)~mutation testing, (ii)~internationalization testing, (iii)~interaction-based testing, and (iv) connectivity testing. In order to do this, we conducted a set of empirical studies, and designed and implemented approaches to enhance the aforementioned aspects at APK and source-code level.