Show simple item record

dc.contributor.author
Su, Ting
dc.contributor.author
Yan, Yichen
dc.contributor.author
Wang, Jue
dc.contributor.author
Sun, Jingling
dc.contributor.author
Xiong, Yiheng
dc.contributor.author
Pu, Geguang
dc.contributor.author
Wang, Ke
dc.contributor.author
Su, Zhendong
dc.date.accessioned
2022-12-06T10:16:33Z
dc.date.available
2021-10-29T04:10:52Z
dc.date.available
2021-11-02T08:52:23Z
dc.date.available
2022-12-06T10:16:33Z
dc.date.issued
2021-10
dc.identifier.issn
2475-1421
dc.identifier.other
10.1145/3485533
en_US
dc.identifier.uri
http://hdl.handle.net/20.500.11850/512448
dc.identifier.doi
10.3929/ethz-b-000512448
dc.description.abstract
Android apps are GUI-based event-driven software and have become ubiquitous in recent years. Obviously, functional correctness is critical for an app’s success. However, in addition to crash bugs, non-crashing functional bugs (in short as “non-crashing bugs” in this work) like inadvertent function failures, silent user data lost and incorrect display information are prevalent, even in popular, well-tested apps. These non-crashing functional bugs are usually caused by program logic errors and manifest themselves on the graphic user interfaces (GUIs). In practice, such bugs pose significant challenges in effectively detecting them because (1) current practices heavily rely on expensive, small-scale manual validation (the lack of automation); and (2) modern fully automated testing has been limited to crash bugs (the lack of test oracles). This paper fills this gap by introducing independent view fuzzing, a novel, fully automated approach for detecting non-crashing functional bugs in Android apps. Inspired by metamorphic testing, our key insight is to leverage the commonly-held independent view property of Android apps to manufacture property-preserving mutant tests from a set of seed tests that validate certain app properties. The mutated tests help exercise the tested apps under additional, adverse conditions. Any property violations indicate likely functional bugs for further manual confirmation. We have realized our approach as an automated, end-to-end functional fuzzing tool, Genie. Given an app, (1) Genie automatically detects non-crashing bugs without requiring human-provided tests and oracles (thus fully automated); and (2) the detected non-crashing bugs are diverse (thus general and not limited to specific functional properties), which set Genie apart from prior work. We have evaluated Genie on 12 real-world Android apps and successfully uncovered 34 previously unknown non-crashing bugs in their latest releases — all have been confirmed, and 22 have already been fixed. Most of the detected bugs are nontrivial and have escaped developer (and user) testing for at least one year and affected many app releases, thus clearly demonstrating Genie’s effectiveness. According to our analysis, Genie achieves a reasonable true positive rate of 40.9%, while these 34 non-crashing bugs could not be detected by prior fully automated GUI testing tools (as our evaluation confirms). Thus, our work complements and enhances existing manual testing and fully automated testing for crash bugs.
en_US
dc.format
application/pdf
en_US
dc.language.iso
en
en_US
dc.publisher
Association for Computing Machinery
en_US
dc.rights.uri
http://creativecommons.org/licenses/by/4.0/
dc.subject
GUI testing
en_US
dc.subject
Android apps
en_US
dc.subject
Non-crashing functional bugs
en_US
dc.subject
Logic bugs
en_US
dc.title
Fully automated functional fuzzing of Android apps for detecting non-crashing logic bugs
en_US
dc.type
Conference Paper
dc.rights.license
Creative Commons Attribution 4.0 International
dc.date.published
2021-10-15
ethz.journal.title
Proceedings of the ACM on Programming Languages
ethz.journal.volume
5
en_US
ethz.journal.issue
OOPSLA
en_US
ethz.journal.abbreviated
Proc. ACM Program. Lang.
ethz.pages.start
156
en_US
ethz.size
31 p.
en_US
ethz.version.deposit
publishedVersion
en_US
ethz.event
Object-oriented Programming, Systems, Languages, and Applications Conference (OOPSLA 2021)
en_US
ethz.event.location
Online
en_US
ethz.event.date
October 20-22, 2021
en_US
ethz.identifier.wos
ethz.identifier.scopus
ethz.publication.place
New York, NY
en_US
ethz.publication.status
published
en_US
ethz.leitzahl
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::09628 - Su, Zhendong / Su, Zhendong
en_US
ethz.leitzahl.certified
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::09628 - Su, Zhendong / Su, Zhendong
ethz.date.deposited
2021-10-29T04:11:04Z
ethz.source
SCOPUS
ethz.eth
yes
en_US
ethz.availability
Open access
en_US
ethz.rosetta.installDate
2021-11-02T08:52:29Z
ethz.rosetta.lastUpdated
2023-02-07T08:31:51Z
ethz.rosetta.versionExported
true
ethz.COinS
ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.atitle=Fully%20automated%20functional%20fuzzing%20of%20Android%20apps%20for%20detecting%20non-crashing%20logic%20bugs&rft.jtitle=Proceedings%20of%20the%20ACM%20on%20Programming%20Languages&rft.date=2021-10&rft.volume=5&rft.issue=OOPSLA&rft.spage=156&rft.issn=2475-1421&rft.au=Su,%20Ting&Yan,%20Yichen&Wang,%20Jue&Sun,%20Jingling&Xiong,%20Yiheng&rft.genre=proceeding&rft_id=info:doi/10.1145/3485533&
 Search print copy at ETH Library

Files in this item

Thumbnail

Publication type

Show simple item record