Skip to content

The AndroTest24 Study is the first comprehensive statistical study of existing Android GUI testing metrics. This repository provides the corresponding ① AndroTest24 App Benchmark ② Study Data ③ SATE (Statistical Android Testing Evaluation) Framework.

License

Notifications You must be signed in to change notification settings

Yuanhong-Lan/AndroTest24

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AndroTest24 Study

1. Overview

1.1 Introduction

The AndroTest24 Study is the first comprehensive statistical study of existing Android GUI testing metrics. It involves extensive experiments with 3-hour, 10-repetition tests on 42 diverse apps across 8 representative state-of-the-art testing approaches from diverse categories with typical testing methodologies. It examines the statistical significance, correlation, and variation of the testing metrics while applying them for comparative evaluation.

1.2 Publication

For more details about our study, please refer to our ASE 2024 paper "Navigating Mobile Testing Evaluation: A Comprehensive Statistical Analysis of Android GUI Testing Metrics".

1.3 Artifacts

This repository provides the corresponding artifacts, including:
① The AndroTest24 App Benchmark, consisting of 42 active open-source apps that are achieved from the integration of more than ten previous open-source benchmarks.
② The Study Data of our study, organized by our Research Questions.
③ The SATE (Statistical Android Testing Evaluation) Framework, to promote effective statistical mobile testing evaluation.


2. Artifact-① AndroTest24 App Benchmark

2.1 APK File

A zip file containing all the 42 APK files of the AndroTest24 App Benchmark can be achieved from GoogleDrive.

2.2 App Source

The 42 apps and their sources are listed below:
(Note: Some app links may be later broken due to some issues, e.g., the project has stopped)

App Source
Signal https://github.com/signalapp/Signal-Android
WordPress https://github.com/wordpress-mobile/WordPress-Android
CoronaWarn https://github.com/corona-warn-app/cwa-app-android
Tachiyomi https://github.com/tachiyomiorg/tachiyomi
DuckDuckGo https://github.com/duckduckgo/Android
K9Mail https://github.com/thundernest/k-9
Firefox https://github.com/mozilla-mobile/fenix
Wikipedia https://github.com/wikimedia/apps-android-wikipedia
MyExpenses https://github.com/mtotschnig/MyExpenses
AnkiDroid https://github.com/ankidroid/Anki-Android
SuntimesWidget https://github.com/forrestguice/SuntimesWidget
Conversations https://github.com/iNPUTmice/Conversations
NewPipe https://github.com/TeamNewPipe/NewPipe
AmazeFileManager https://github.com/TeamAmaze/AmazeFileManager
MoneyManagerEx https://github.com/moneymanagerex/android-money-manager-ex
BookCatalogue https://github.com/eleybourn/Book-Catalogue
AntennaPod https://github.com/AntennaPod/AntennaPod
LBRY https://github.com/lbryio/lbry-android
ConnectBot https://github.com/connectbot/connectbot
RunnerUp https://github.com/jonasoreland/runnerup
Timber https://github.com/naman14/Timber
APhotoManager https://github.com/k3b/APhotoManager
BetterBatteryStats https://github.com/asksven/BetterBatteryStats
Vanilla https://github.com/vanilla-music/vanilla
AnyMemo https://github.com/helloworld1/AnyMemo
SimpleTask https://github.com/mpcjanssen/simpletask-android
LoopHabitTracker https://github.com/iSoron/uhabits
TranslateYou https://github.com/Bnyro/TranslateYou
KeePassDroid https://github.com/bpellin/keepassdroid
Materialistic https://github.com/hidroh/materialistic
AlarmClock https://github.com/yuriykulikov/AlarmClock
Currencies https://github.com/sal0max/currencies
Notes https://github.com/SecUSo/privacy-friendly-notes
PasswordManager https://github.com/ishantchauhan710/PasswordManager
Swiftp https://github.com/ppareit/swiftp
Aard2 https://github.com/itkach/aard2-android
Diary https://github.com/billthefarmer/diary
ArxivExplorer https://github.com/GarrettBeatty/arXiv-eXplorer
SimpleDraw https://github.com/SimpleMobileTools/Simple-Draw
KindMind https://codeberg.org/fswb/kindmind
CEToolbox https://github.com/cetoolbox/cetoolbox
WhoHasMyStuff https://gitlab.com/stovocor/whohasmystuff

3. Artifact-② Study Data

3.1 The Original Statistics Table

The original statistics tables of our study are provided under /Study_Data.
They are organized according to our Research Questions and have been renamed for better understandability.

3.2 Involved Testing Approaches

(1) Random-Based

Monkey

(2) Model-Based

Stoat

APE

(3) Systematic

ComboDroid

(4) Machine-Learning-Based

(4.1) Supervised-Learning-Based
Humanoid

(4.2) Tabular-RL-Based
Q-testing

(4.3) Deep-RL-Based
ARES

DQT

3.3 Emulator Settings

Basic Settings

  • Hardware: Google Pixel 2
  • Resolution: 1080*1920
  • Android Version: Android 9.0 (API Level 28)
  • Google Sevice: Google APIs

Storage

  • RAM: 4GB
  • VM Heap: 2GB
  • Internal Storage: 8GB
  • SD Card: 1GB

4. Artifact-③ SATE Framework

4.1 Introduction

The Statistical Android Testing Evaluation (SATE) Framework is proposed to empower and enhance future mobile testing evaluations. It is unique in its out-of-the-box functionality with rigorous statistical analysis for test metrics and efficient data management integration for large-scale, multi-type testing data.

4.2 Source Code

The SATE framework is provided under /SATE.

SATE
├── android_testing_utils/log  Log helper.
├── constant  Some constants loaded from config.yaml.
├── evaluation  The main part of SATE.
│   ├── data_manager  Data managing and scheduling.
│   └── result_analyzer  Main analyzation.
│       ├── analysis  Statistical analysis methods.
│       ├── excel  Data.
│       ├── study_analyzer  Analyzers tailored for our study.
│       └── utils  Practical utils.
└── runtime_collection  Some dependent data structures and test configs.

4.3 Environment

  • Python: Tested on Python 3.7, recommended to build the Python project and environment under /SATE/ to avoid import problems.
  • Requirements: pip install -r /SATE/requirements.txt

4.4 Run

  • Sample raw data has been provided under /SATE/evaluation/result_analyzer/excel/.
  • Uncommented code in the main fields of our study analyzers under /SATE/evaluation/result_analyzer/study_analyzer/ could be run directly.
  • Since there are some dependencies between data, it's recommended to run them in the following order:
    1. granularities_analyzer.py
    2. metrics_relation_analyzer.py
    3. randomness_analyzer.py
    4. convergence_analyzer.py
  • Note: A test shell (/SATE/test.sh), which relies on the python cmd, is also provided for a quick run of the above process. Please run it inside the Python environment.

About

The AndroTest24 Study is the first comprehensive statistical study of existing Android GUI testing metrics. This repository provides the corresponding ① AndroTest24 App Benchmark ② Study Data ③ SATE (Statistical Android Testing Evaluation) Framework.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published