Project

Back to overview

Property-based Randomized Testing of Mobile Applications

English title Property-based Randomized Testing of Mobile Applications
Applicant Su Ting
Number 190302
Funding scheme Spark
Research institution Professur für Informatik ETH Zürich
Institution of higher education ETH Zurich - ETHZ
Main discipline Information Technology
Start/End 01.02.2020 - 30.11.2020
Approved amount 80'290.00
Show all

Keywords (5)

Software Engineering; Software Testing; Mobile app Testing; Functional Testing; Metamorphic Testing

Lay Summary (German)

Lead
Mobile Anwendungen (kurz Apps) sind allgegenwärtig und haben viele Aspekte unseres täglichen Lebens verändert. Typische Beispiele dafür sind Apps in den Bereichen E-Commerce, Bildung Unterhaltung, Spiele und den sozialen Medien. App-Entwickler und App-Anbieter sind hierbei starker Konkurrenz ausgesetzt. Um ihren Wettbewerbsvorteil zu sichern, müssen sie hochwertige Apps auf den Markt bringen. Zusätzlich zu Fail-Stop-Fehlern (d. h. App-Abstürzen), ist die funktionale Korrektheit (z. B. Anzeige der korrekter Informationen, Speichern von Benutzereinstellungen, etc.) für den Erfolg einer App am wichtigsten. Neuste Softwaretesttechniken können jedoch Fukntionsstörungen jedoch immer noch nicht automatisch erkenn und sind im hohen Maße auf menschliche Tester angewiesen, um derartige Fehler zu entdecken.
Lay summary
Inhalt und Ziel des Forschungsprojekts.

Unser Ziel ist es, neue Softwaretesttechniken zu entwerfen und zu entwickeln, um Funktionsstörungen mobiler Anwendungen effektiv aufzudecken. Wir werden ein End-to-End-System entwickeln, das alle mobilen Apps als Eingabe akzeptiert und alle automatisch entdeckten Funktionsstörungen (zusätzlich zu und über Absturzfehlern hinaus) ausgibt, begleitet von Tests zur Fehlerbehebung und Videoabbildungen zur Fehlerreproduktion.

Unsere wichtigste technische Erkenntnis besteht darin, eigenschaftserhaltende Mutantentests aus einer Reihe von bestehenden Tests herzustellen, mit denen bestimmte Eigenschaften einer App validiert werden können. Diese Mutantentests können die Gültigkeit dieser Eigenschaften unter verschiedenen widrigen Bedingungen überprüfen. In einer Aufgabenlisten-App können Benutzer beispielsweise Bilder an eine Aufgabenaufgabe anhängen und die Bilder löschen, wenn sie dies möchten. Unser Ansatz überprüft automatisch, ob die Bilder von erstellten Aufgaben immer erfolgreich und korrekt gelöscht werden können. Wenn wir auf Grund der grafischen Benutzeroberfläche (GUI) kritische Inkonsistenzen feststellen, werden wir wahrscheinlich echte Fehler entdecken. Wenn beispielsweise ein Bild nicht aus einer bestimmten Aufgabe gelöscht werden kann oder ein Bild fälschlicherweise aus anderen Aufgaben gelöscht wird, bei denen es sich nicht um Aufgaben handelt, können wir garantiert Funktionsstörungen feststellen.

Wissenschaftlicher und gesellschaftlicher Kontext.

Dieses Projekt ist das erste, bei dem Funktionsstörungen in mobilen Apps automatisch erkannt werden. Unser Ansatz ist vielversprechend und kann sowohl starke wissenschaftliche als auch soziale Auswirkungen haben, indem (1) die wissenschaftlichen Grenzen des Testens mobiler Apps erweitert werden, (2) bestehende App-Testlösungen auf dem Markt verbessert werden und (3) generalisiert und skaliert werden Beliebige mobile Plattformen oder GUI-Software (z. B. Web oder Desktop). Nach erfolgreicher Fertigstellung werden wir unser System und unseren Quellcode öffentlich zugänglich machen, um der Forschung und Industrie zur Verfügung zu stellen.
 
Direct link to Lay Summary Last update: 21.12.2019

Responsible applicant and co-applicants

Employees

Publications

Publication
Why My App Crashes Understanding and Benchmarking Framework-specific Exceptions of Android apps
Su Ting, Fan Lingling, Chen Sen, Liu Yang, Xu Lihua, Pu Geguang, Su Zhendong (2020), Why My App Crashes Understanding and Benchmarking Framework-specific Exceptions of Android apps, in IEEE Transactions on Software Engineering, 1-1.

Datasets

DroidDefects: A database of crash (exception) bugs for Android apps

Author Su, Ting
Persistent Identifier (PID) https://github.com/tingsu/DroidDefects
Repository DroidDefects


Collaboration

Group / person Country
Types of collaboration
East China Normal University China (Asia)
- Publication

Knowledge transfer events

Active participation

Title Type of contribution Date Place Persons involved
Technical Commnication with ByteDance Talk 27.11.2020 Beijing, China Su Ting;
China National Computer Congress 2020 Talk 22.10.2020 Beijing, China Su Ting;


Awards

Title Year
Google Faculty Research Award 2020

Abstract

Problem. Mobile applications (apps for short) are ubiquitous and have transformed many aspects of our daily lives, such as e-commerce, education, entertainment, gaming, and social media. To date, Google Play, the official Android app market, holds over three million apps, and each month over 50,000 new apps are published on the app market. Thus, app developers and vendors clearly are facing fierce market competition. To ensure their competitive edge, they strive to deliver high-quality apps. In addition to fail-stop errors (i.e., app crashes), functional correctness is the most critical for the success of an app. Silent functional failures, such as incorrect display information, lost user settings, unexpected UI screens, and inadvertently disappeared GUI elements, greatly concern app developers because such functional correctness errors can seriously disrupt user experience and affect user loyalty. As many public issue repositories show, such silent failures are much more pervasive than crash errors, even in popular, well-tested apps, due to the difficulty of automatically discovering them with standard developer tests.Vision. We have witnessed tremendous academic, industrial, and open-source community efforts to improve and automate GUI testing of mobile apps. However, as our investigation shows, state-of-the-art testing techniques and solutions cannot automatically detect these silent failures, and heavily rely on human testers (or even end users). Thus, fundamentally new testing techniques are needed to tackle this important, demanding situation.Goal and Approach. The goal of this project is to design and develop such new practical techniques to effectively uncover silent functional failures with strong guarantees. We will develop a systematic analysis framework and an end-to-end system, which can fully automatically discover functional failures (in addition to and beyond crash errors), accompanied by their bug-manifesting tests and video illustrations for bug reproduction and fixing. Our key technical insight is to manufacture property-preserving mutant tests from a set of seed tests that validate certain properties of an app. These mutant tests can verify the validity of these properties under various adverse conditions. Any property violations (i.e., critical GUI inconsistencies between the seed test and its mutants) are guaranteed to be real bugs. This project focuses on addressing two fundamental challenges therein: the systematic generation of property-preserving mutants and the precise identification of property violations. Our preliminary investigation has demonstrated the effectiveness of our high-level technique --- we detected 10 confirmed silent failures in three popular Google Play apps. This proposal outlines four key research tasks for successfully realizing this technique: (1) app behaviour model construction, (2) seed test generation, (3) mutant test generation, and (4) property validation. Intellectual Merit. This project will help discover new mobile app testing and analysis techniques. It will lead to a better understanding on the fundamental and practical challenges for modeling and uncovering silent functional failures, thus advancing the state-of-the-art of mobile software reliability and correctness.Idea Novelty and Potential Impact. This project is the first on automatically detecting silent, diverse functional bugs in mobile apps. Our approach is highly novel and promising, and can have both strong scientific and social impact by (1) advancing the scientific limits of mobile app testing, (2) enhancing existing app testing solutions, and (3) generalizing and scaling to any mobile platforms or GUI software (e.g., Web or desktop). Upon successful completion, we will make our system and source code publicly available to benefit research and industrial practice.
-