Font Size: a A A

Concurrency Error Detection For Mobile Application Based On Constraint Solving

Posted on:2022-08-02Degree:MasterType:Thesis
Country:ChinaCandidate:E C LiuFull Text:PDF
GTID:2518306740982929Subject:Computer technology
Abstract/Summary:PDF Full Text Request
The introduction of the multi-threaded programming model and asynchronous event mechanisms has led to uncertainty in the execution behavior of Android applications.When two events access the same shared address in an unexpected order,order violation occurs.Order violation is a common concurrency error in Android applications leading to serious consequences such as abnormal operation and crashes of Android applications.Most existing Android application concurrency error detection tools use static or dynamic detection methods,yet they suffer from high false alarm rate and low code coverage.To address the above issues,this thesis proposes a detection method for Android applications based on constraint solving to detect order violations in Android applications.The method first extracts the shared variables and related read/write information of the application under test by statically analyzing the application,and further obtains the set of candidate order violation statement pairs;then generates the GUI model of the application with dynamic search techniques,and uses the symbolic execution tool to creates the symbolic summarization of the application.After that,it generates an executable event sequence to cover the code where the corresponding candidate order violation statement pairs is located using the GUI model and the symbolic summarization;finally,the execution trace is obtained byinstrumentation techniques.The candidate order violation statement pairs and the related context are encoded as constraints and solved by a constraint solver,which transforms the concurrency error detection problem into a constraint solving one.The method improves detection capability and efficiency and deceases false positive.Based on the above work,this thesis designs and implements ODecs Droid,a constraint solver-based concurrency error detection tool for order violation in Android application,and compares it with existing order violation detection tools,namely n Android and SARD.The experimental results show that ODecs Droid effectively detects order violations of Android application and achieves a good tradeoff in detection accuracy and detection efficiency.Compared with n Android,the number of true order violations detected by ODecs Droid(5.72 on average)is higher than that of n Android(4.72 on average),and the false positive achieved by ODecs Droid(21%)is significantly lower than that of n Android(82%).Compared with SARD,the number of true order violations detected by ODecs Droid is higher than that of SARD(4.72 on average).The number of true order violations detected by ODecs Droid is similar to that of SARD(5.61 on average)yet the false positive achieved by SARD(52%)is still higher than that of ODecs Droid.ODecs Droid is higher than SARD in terms of runtime and only 44%of n Android.
Keywords/Search Tags:Android applications, order violation, static analysis, constraint solving
PDF Full Text Request
Related items