Key points are not available for this paper at this time.
Android, das beliebteste mobile Betriebssystem, bietet eine Reihe von benutzerkonfigurierbaren Systemeinstellungen (z. B. Netzwerk, Standort und Berechtigungen), um Geräte und Apps zu steuern. Selbst beliebte, gut getestete Apps können möglicherweise nicht richtig auf verschiedene Einstellungsänderungen reagieren, was ihre Nutzer frustriert. Bisher gab es jedoch keinen systematischen Ansatz zur Untersuchung solcher Defekte. Zu diesem Zweck führen wir die erste großangelegte empirische Studie durch, um diese einstellungsspezifischen Defekte (kurz "Einstellungsdefekte") zu verstehen und zu charakterisieren, die in Apps vorkommen und durch Änderungen der Systemeinstellungen ausgelöst werden. Wir investieren erheblichen manuellen Aufwand (über vier Personmonate), um 1.074 Einstellungsdefekte aus 180 beliebten Apps auf GitHub zu analysieren. Wir untersuchen die Auswirkungen, Ursachen und Folgen dieser Einstellungsdefekte sowie deren Korrelationen. Dabei stellen wir fest, dass (1) Einstellungsdefekte eine breite Auswirkung auf die Korrektheit von Apps haben mit unterschiedlichen Ursachen, (2) die Mehrheit dieser Defekte (70,7%) nicht-abstürzende (logische) Fehler verursacht und (3) einige Korrelationen zwischen den Einstellungs-kategorien, Ursachen und Folgen existieren. Motiviert und informiert von diesen Erkenntnissen schlagen wir zwei Techniken zur Fehlerfindung vor, die synergistisch Einstellungsdefekte sowohl auf der GUI- als auch auf der Codeebene erkennen können. Auf der GUI-Ebene entwerfen und führen wir ein einstellungsweises metamorphisches Fuzzing ein, die erste automatisierte dynamische Testtechnik zur Erkennung von Einstellungsdefekten (die Absturz- und nicht-abstürzende Fehler verursachen) für Android-Apps. Wir implementieren diese Technik als ein End-to-End, automatisiertes GUI-Testwerkzeug namens SetDroid. Auf der Codeebene destillieren wir zwei Hauptfehlermuster und implementieren ein statisches Analysewerkzeug namens SetChecker zur Identifizierung potenzieller Einstellungsdefekte. Wir evaluieren SetDroid und SetChecker an 26 beliebten, Open-Source Android-Apps, und sie finden 48 einzigartige, zuvor unbekannte Einstellungsdefekte. Bis heute wurden 35 bestätigt und 21 von den App-Entwicklern behoben. Wir wenden SetDroid und SetChecker auch auf fünf hochbeliebte Industrie-Apps an, nämlich WeChat, QQMail, TikTok, CapCut und AlipayHK, die jeweils Milliarden von monatlich aktiven Nutzern haben. SetDroid erkennt erfolgreich 17 zuvor unbekannte Einstellungsdefekte in den neuesten Versionen dieser Apps, und alle Defekte wurden von den App-Anbietern bestätigt und behoben. Danach arbeiten wir mit ByteDance zusammen und setzen diese beiden Techniken zur Fehlerfindung intern ein, um TikTok, eines der Hauptprodukte von ByteDance, einem Stresstest zu unterziehen. Innerhalb einer zweimonatigen Testkampagne findet SetDroid erfolgreich 53 Einstellungsdefekte, und SetChecker findet 22. Bisher wurden 59 bestätigt und 31 behoben. Alle diese Defekte wurden durch vorherige Entwicklertests übersehen. Bis jetzt wurde SetDroid in die offizielle App-Testinfrastruktur von ByteDance namens FastBot für tägliche Tests integriert. Diese Ergebnisse zeigen die starke Effektivität und Praktikabilität unserer vorgeschlagenen Techniken.
Sun et al. (Mittw,) untersuchten diese Frage.