Publication Type

Journal Article

Version

publishedVersion

Publication Date

4-2019

Abstract

Software testing is an important phase in the software development lifecycle because it helps in identifying bugs in a software system before it is shipped into the hand of its end users. There are numerous studies on how developers test general-purpose software applications. The idiosyncrasies of mobile software applications, however, set mobile apps apart from general-purpose systems (e.g., desktop, stand-alone applications, web services). This paper investigates working habits and challenges of mobile software developers with respect to testing. A key finding of our exhaustive study, using 1000 Android apps, demonstrates that mobile apps are still tested in a very ad hoc way, if tested at all. However, we show that, as in other types of software, testing increases the quality of apps (demonstrated in user ratings and number of code issues). Furthermore, we find evidence that tests are essential when it comes to engaging the community to contribute to mobile open source software. We discuss reasons and potential directions to address our findings. Yet another relevant finding of our study is that Continuous Integration and Continuous Deployment (CI/CD) pipelines are rare in the mobile apps world (only 26% of the apps are developed inprojects employing CI/CD) – we argue that one of the main reasons is due to the lack of exhaustive and automatic testing.

Keywords

Mobile applications, Open source software, Software metrics, Software quality, Software testing

Discipline

Software Engineering

Research Areas

Data Science and Engineering

Publication

Empirical Software Engineering

Volume

24

Issue

4

First Page

1

Last Page

32

ISSN

1382-3256

Identifier

10.1007/s10664-019-09701-0

Publisher

Springer Verlag (Germany)

Copyright Owner and License

Authors

Additional URL

https://doi.org/10.1007/s10664-019-09701-0

Share

COinS