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 (logic) bugs in mobile (GUI) apps. Kea currently supports Android and HarmonyOS.

You can also try Kea2, an enhanced and more powerful version of Kea for industrial use.

Publication

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

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

Blogs (In Chinese)

别再苦哈哈写测试脚本了,生成它们吧!(一)

别再苦哈哈写测试脚本了,生成它们吧!(二)

别再苦哈哈写测试脚本了,生成它们吧!(三)

More Info

Find more about our work on testing/analyzing mobile apps: ECNU-SSE-Lab - Mobile App Analysis.

A list of literature on mobile app testing and analysis: Mobile App Analysis and Testing Literature.

Demonstration Video (In Chinese)

Docs

Full Doc

User Manual

Design Manual

Test Report

Coverage Report

Installation and Quickstart

Prerequisites

  • Python 3.8+
  • 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

Note: The LLM module is currently in an experimental phase. We are actively gathering feedback to improve its functionality and stability. We appreciate your understanding and support from the community, and we welcome any suggestions or comments.

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

📘 General and Practical Property-based Testing for Android Apps. ASE 2024. pdf

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

📘 An Empirical Study of Functional Bugs in Android Apps. ISSTA 2023. 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

📘 Fully Automated Functional Fuzzing of Android Apps for Detecting Non-Crashing Logic Bugs. OOPSLA 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