samplingapptest

View the Project on GitHub

The dataset includes 20 mobile applications. These applications are from different categories named according to the Play Store categories, with a large variation of size and test code size. For instance, applications vary from 455 lines of code (MoonShot) to more than 347,000 lines of code (WordPress-Android). Similarly, test code size vary between 464 lines of code (MoonShot) and 3,732 (Mixin-Messenger). Moreover, the number of test cases vary from 4 (Ground) to 164 (AnkiDroid). The number of commits vary between 21 (Threema) to 68,148 (WordPress-Android).

Name Category LOC Test LOC Test Cases Resources Commits
AnkiDroid Education 158,607 2,770 164 Camera, Mobile Data, Wi-Fi 13,643
CovidNow Medical 2,269 540 21 Mobile Data, Wi-Fi 85
Ground Productivity 19,906 525 4 Camera, Location, Mobile Data, Wi-Fi 4,936
Iosched Books, Reference 27,824 473 9 Location, Mobile Data, Wi-Fi 3,101
Lockwise Productivity 14,535 1,184 38 Mobile Data, Wi-Fi 503
Mixin-Messenger Finance 168,080 3,732 160 Bluetooth, Camera, Location, Mobile Data, Wi-Fi 8,086
Moonshot Tools 455 464 28 Mobile Data, Wi-Fi 351
Nekome Productivity 1,084 2,097 64 Mobile Data, Wi-Fi 2,742
Nl-covid19 Medical 65,839 1,114 20 Bluetooth, Mobile Data, Wi-Fi 1,293
Openscale Health, Fitness 27,781 1,451 14 Bluetooth, Location 2,027
OwnTracks Travel, Local 14,499 889 27 Location, Mobile Data, Wi-Fi 1,995
PocketHub Productivity 29,001 1,663 107 Mobile Data, Wi-Fi 3,512
RadioDroid Music, Audio 22,815 1,735 23 Bluetooth, Mobile Data, Wi-Fi 1,186
Scarlet-Notes Productivity 4,260 770 52 Mobile Data, Wi-Fi 656
Showly-2.0 Entertainment 2,547 952 55 Mobile Data , Wi-Fi 3,251
SpaceXFollower News, Magazines 7,664 940 30 Mobile Data, Wi-Fi 356
Threema Communication 238,045 1,931 54 Bluetooth, Camera, Location, Mobile Data, Wi-Fi 21
Vocable Communication 13,188 499 14 Camera 863
WooCommerce Business 156,962 1,367 27 Mobile Data, Wi-Fi 26,527
WordPress-Android Productivity 347,897 3,674 115 Camera, Mobile Data, Wi-Fi 68,148

Study phases

Our study consists of five phases as illustrated bellow:

image

1 - Setting definition:

The settings were defined for five testing strategies (Random, One-Disabled, One-Enabled, Most-Enabled-Disabled, and Pairwise)

2 - Application selection:

The dataset includes 20 applications. The gradle build scripts and the AndroidManifest files were adapted to our instrumentation, for instance, to include suitable API dependencies and to allow control permissions (such as for accessing Wi-Fi state). Each application has the test classes of androidTest folder extended with our instrumentation.

3 - Application test extension:

Our instrumentation was implemented for Java and Kotlin. There are particularities according to the screen device, since we use the UI Automator testing framework.

4 - Test execution:

Requirements: A device running Android 10. This device must be rooted in order to install Sensor Disabler app to manage the sensors. Also, the Lens Cap app must be installed to allow camera control. The host machine must have Python 3 installed and the Android SDK and the Java SDK environment system variables properly set.

The Python script runExpAll-MultiExec must be executed according to the proper gradle verification task, often connectedDebugAndroidTest, for installing and running Android instrumented tests on the connected device.

5 - Test analysis:

All test reports are available in TestResults. The frequent item set mining analysis was performed using the Apriori implementation of the mlxtend library.

There are some descriptive data in this repository.

There are deitaled instructions for replicability.

Contact