Mining Android crash fixes in the absence of issue- And change-tracking systems

Pingfan Kong, Li Li, Jun Gao, Tegawendé F. Bissyandé, Jacques Klein

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

Abstract

Android apps are prone to crash. This often arises from the misuse of Android framework APIs, making it harder to debug since official Android documentation does not discuss thoroughly potential exceptions.Recently, the program repair community has also started to investigate the possibility to fix crashes automatically. Current results, however, apply to limited example cases. In both scenarios of repair, the main issue is the need for more example data to drive the fix processes due to the high cost in time and effort needed to collect and identify fix examples. We propose in this work a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets, without the need for the app source code or issue reports. We developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs. Overall, we have mined 104 relevant crash fixes, further abstracted 17 fine-grained fix templates that are demonstrated to be effective for patching crashed apks. Finally, we release ReCBench, a benchmark consisting of 200 crashed apks and the crash replication scripts, which the community can explore for evaluating generated crash-inducing bug patches.

Original languageEnglish
Title of host publicationProceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis
EditorsDongmei Zhang, Anders Moller
Place of PublicationNew York NY USA
PublisherAssociation for Computing Machinery (ACM)
Pages78-89
Number of pages11
ISBN (Electronic)9781450362245
DOIs
Publication statusPublished - 2019
EventInternational Symposium on Software Testing and Analysis 2019 - Beijing, China
Duration: 15 Jul 201919 Jul 2019
Conference number: 28th
https://conf.researchr.org/home/issta-2019

Conference

ConferenceInternational Symposium on Software Testing and Analysis 2019
Abbreviated titleISSTA 2019
CountryChina
CityBeijing
Period15/07/1919/07/19
Internet address

Keywords

  • Android
  • Crash
  • Debugging
  • Mining software repository
  • Testing

Cite this

Kong, P., Li, L., Gao, J., Bissyandé, T. F., & Klein, J. (2019). Mining Android crash fixes in the absence of issue- And change-tracking systems. In D. Zhang, & A. Moller (Eds.), Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis (pp. 78-89). New York NY USA: Association for Computing Machinery (ACM). https://doi.org/10.1145/3293882.3330572
Kong, Pingfan ; Li, Li ; Gao, Jun ; Bissyandé, Tegawendé F. ; Klein, Jacques. / Mining Android crash fixes in the absence of issue- And change-tracking systems. Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. editor / Dongmei Zhang ; Anders Moller. New York NY USA : Association for Computing Machinery (ACM), 2019. pp. 78-89
@inproceedings{4f2ca2ab624b4b518cae32c766331960,
title = "Mining Android crash fixes in the absence of issue- And change-tracking systems",
abstract = "Android apps are prone to crash. This often arises from the misuse of Android framework APIs, making it harder to debug since official Android documentation does not discuss thoroughly potential exceptions.Recently, the program repair community has also started to investigate the possibility to fix crashes automatically. Current results, however, apply to limited example cases. In both scenarios of repair, the main issue is the need for more example data to drive the fix processes due to the high cost in time and effort needed to collect and identify fix examples. We propose in this work a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets, without the need for the app source code or issue reports. We developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs. Overall, we have mined 104 relevant crash fixes, further abstracted 17 fine-grained fix templates that are demonstrated to be effective for patching crashed apks. Finally, we release ReCBench, a benchmark consisting of 200 crashed apks and the crash replication scripts, which the community can explore for evaluating generated crash-inducing bug patches.",
keywords = "Android, Crash, Debugging, Mining software repository, Testing",
author = "Pingfan Kong and Li Li and Jun Gao and Bissyand{\'e}, {Tegawend{\'e} F.} and Jacques Klein",
year = "2019",
doi = "10.1145/3293882.3330572",
language = "English",
pages = "78--89",
editor = "Dongmei Zhang and Anders Moller",
booktitle = "Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis",
publisher = "Association for Computing Machinery (ACM)",
address = "United States of America",

}

Kong, P, Li, L, Gao, J, Bissyandé, TF & Klein, J 2019, Mining Android crash fixes in the absence of issue- And change-tracking systems. in D Zhang & A Moller (eds), Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. Association for Computing Machinery (ACM), New York NY USA, pp. 78-89, International Symposium on Software Testing and Analysis 2019, Beijing, China, 15/07/19. https://doi.org/10.1145/3293882.3330572

Mining Android crash fixes in the absence of issue- And change-tracking systems. / Kong, Pingfan; Li, Li; Gao, Jun; Bissyandé, Tegawendé F.; Klein, Jacques.

Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. ed. / Dongmei Zhang; Anders Moller. New York NY USA : Association for Computing Machinery (ACM), 2019. p. 78-89.

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

TY - GEN

T1 - Mining Android crash fixes in the absence of issue- And change-tracking systems

AU - Kong, Pingfan

AU - Li, Li

AU - Gao, Jun

AU - Bissyandé, Tegawendé F.

AU - Klein, Jacques

PY - 2019

Y1 - 2019

N2 - Android apps are prone to crash. This often arises from the misuse of Android framework APIs, making it harder to debug since official Android documentation does not discuss thoroughly potential exceptions.Recently, the program repair community has also started to investigate the possibility to fix crashes automatically. Current results, however, apply to limited example cases. In both scenarios of repair, the main issue is the need for more example data to drive the fix processes due to the high cost in time and effort needed to collect and identify fix examples. We propose in this work a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets, without the need for the app source code or issue reports. We developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs. Overall, we have mined 104 relevant crash fixes, further abstracted 17 fine-grained fix templates that are demonstrated to be effective for patching crashed apks. Finally, we release ReCBench, a benchmark consisting of 200 crashed apks and the crash replication scripts, which the community can explore for evaluating generated crash-inducing bug patches.

AB - Android apps are prone to crash. This often arises from the misuse of Android framework APIs, making it harder to debug since official Android documentation does not discuss thoroughly potential exceptions.Recently, the program repair community has also started to investigate the possibility to fix crashes automatically. Current results, however, apply to limited example cases. In both scenarios of repair, the main issue is the need for more example data to drive the fix processes due to the high cost in time and effort needed to collect and identify fix examples. We propose in this work a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets, without the need for the app source code or issue reports. We developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs. Overall, we have mined 104 relevant crash fixes, further abstracted 17 fine-grained fix templates that are demonstrated to be effective for patching crashed apks. Finally, we release ReCBench, a benchmark consisting of 200 crashed apks and the crash replication scripts, which the community can explore for evaluating generated crash-inducing bug patches.

KW - Android

KW - Crash

KW - Debugging

KW - Mining software repository

KW - Testing

UR - http://www.scopus.com/inward/record.url?scp=85070628959&partnerID=8YFLogxK

U2 - 10.1145/3293882.3330572

DO - 10.1145/3293882.3330572

M3 - Conference Paper

SP - 78

EP - 89

BT - Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis

A2 - Zhang, Dongmei

A2 - Moller, Anders

PB - Association for Computing Machinery (ACM)

CY - New York NY USA

ER -

Kong P, Li L, Gao J, Bissyandé TF, Klein J. Mining Android crash fixes in the absence of issue- And change-tracking systems. In Zhang D, Moller A, editors, Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. New York NY USA: Association for Computing Machinery (ACM). 2019. p. 78-89 https://doi.org/10.1145/3293882.3330572