Skip to content

ecnusse/Kea

Repository files navigation

Kea

       

kea_logo

Intro

Kea is a general and practical testing tool based on the idea of property-based testing for finding functional bugs in mobile (GUI) apps. Kea currently supports Android and HarmonyOS.

Publication

📘 Kea's Paper @ ASE 2024 (ACM Distinguished Paper)

"General and Practical Property-based Testing for Android Apps". Yiheng Xiong, Ting Su, Jue Wang, Jingling Sun, Geguang Pu, Zhendong Su. In ASE 2024.

You can find more about our work on testing/analyzing mobile apps at this ECNU SE lab - mobile app analysis.

Docs

Full Doc

User Manual

Design Manual

Test Report

Coverage Report

Installation and Quickstart

Prerequisites

  • Python 3.9+
  • adb or hdc cmd tools available
  • Connect an Android / HarmonyOS device or emulator to your PC

The setup guide for Android / HarmonyOS envirnments.

Installation

Enter the following commands to install kea.

git clone https://github.com/ecnusse/Kea.git
cd Kea
pip install -e .

Quick Start

kea -f example/example_property.py -a example/omninotes.apk

Contributors/Maintainers

The original authors of Kea are: Yiheng Xiong, Ting Su, Jue Wang, Jingling Sun, Geguang Pu, Zhendong Su.

Now we have additional active contributors: Xiangchen Shen, Xixian Liang, Mengqian Xu

Relevant Tools Used in Kea

References

Relevant References for Kea

📘 An Empirical Study of Functional Bugs in Android Apps. ISSTA 2023. pdf

📘 Property-Based Testing for Validating User Privacy-Related Functionalities in Social Media Apps. FSE 2024. pdf

📘 Property-Based Fuzzing for Finding Data Manipulation Errors in Android Apps. ESEC/FSE 2023. pdf

📘 Characterizing and Finding System Setting-Related Defects in Android Apps. TSE 2023. pdf

📘 Understanding and Finding System Setting-related Defects in Android Apps. ISSTA 2021. pdf

References for Property-based Testing

📘 Property-Based Testing in Practice. ICSE 2024. pdf

📘 QuickCheck: a lightweight tool for random testing of Haskell programs. ICFP 2000. pdf

📘 Property-based testing: a new approach to testing for assurance. Software Engineering Notes 1997. pdf