16 research outputs found
Detecting android API compatibility issues with API differences
Android application programming interface (API) enables app developers to harness the functionalities of Android devices by interfacing with services and hardware using a Software Development Kit (SDK). However, API frequently evolves together with its associated SDK, and compatibility issues may arise when the API level supported by the underlying device differs from the API level targeted by app developers. These issues can lead to unexpected behaviors, resulting in a bad user experience. This article presents ACID, a novel approach to detecting Android API compatibility issues induced by API evolution. It detects both API invocation compatibility issues and API callback compatibility issues using API differences and static analysis of the app code. Experiments with 20 benchmark apps show that ACID is more accurate and faster than the state-of-the-art techniques in detecting API compatibility issues. The application of ACID on 2965 real-world apps further demonstrates its practical applicability. To eliminate the false positives reported by ACID, this article also presents a simple yet effective method to quickly verify the compatibility issues by selecting and executing the relevant tests from app's test suite, and experimental results demonstrate the verification method can eliminate most false positives when app's test suite has good coverage of the API usages
Android compatibility issue detection using API differences
Android apps are developed using a Software Development Kit (SDK), where the Android application programming interface (API) enables app developers to harness the functionalities of Android devices by interacting with services and hardware. However, API frequently evolves together with its associated SDK. The mismatch between the API level supported by the device where apps are installed and the API level targeted by app developers can induce compatibility issues. These issues can manifest themselves as unexpected behaviors, including runtime crashes, creating a poor user experience. In this paper, we propose ACID, a novel approach to detecting compatibility issues caused by API evolution. We leverage API differences and static analysis of the source code of Android apps to detect both API invocation compatibility issues and API callback compatibility issues. Experiments on 20 benchmark apps from previous studies show that ACID is more accurate and faster in detecting compatibility issues than state-of-the-art. We also analyzed 35 more real-world apps to show the practical applicability of our approach
ACID: An API compatibility issue detector for android apps
Android API is frequently updated, and compatibility issues may be induced when the API level supported by the device differs from the API level targeted by app developers. This paper presents ACID, an API compatibility issue detector for Android apps. ACID utilizes API differences and static analysis of Android apps to detect both API invocation compatibility issues and API callback compatibility issues. Our evaluation on 20 benchmark apps from previous studies shows that ACID is more accurate and faster in detecting compatibility issues than state-of-the-art techniques. We also ran ACID on 35 more real-world apps to demonstrate ACID's practical applicability. ACID is available at https://github.com/TSUMahmud/acid and the demonstration video of ACID is available at https://youtu.be/XUNBPMIx2q4
Android API Field Evolution and Its Induced Compatibility Issues
Background: The continuous evolution of the Android operating system necessitates regular API updates, which may affect the functionality of Android apps. Recent studies investigated API evolution to ensure the reliability of Android apps; however, they focused on API methods alone.Â
Aim: We aim to empirically investigate how Android API fields evolve, and how this evolution affects the compatibility of Android apps.Â
Method: We conducted a study based on real-world app development history data involving 11098 tags out of 105 popular open-source Android apps.Â
Results: Our study yields interesting findings, e.g., on average two API field compatibility issues exist per app, different types of checks are preferred when addressing different types of compatibility issues, and fixing compatibility issues induced by API field evolution takes more time than fixing compatibility issues induced by API method evolution.Â
Conclusion: These findings will help developers and researchers better understand, detect, and handle Android compatibility issues induced by API field evolution.</p
Analyzing the impact of API changes on Android apps
The continuous evolution of Android mobile operating system leads to regular updates to its APIs, which may compromise the functionality of Android apps. Given the high frequency of Android API updates, analyzing the impact of API changes is vital to ensure the high reliability of Android apps. This paper introduces APICIA, a novel approach to analyzing the impact of API changes on Android apps. APICIA investigates the impact of changing the target API and identifies the affected program elements (i.e., classes, methods, and statements), the affected tests whose executions may exhibit changed behaviors as a result of the API update, as well as the app code that is not covered by the existing tests. We evaluate APICIA on 219 real-world Android apps. According to the results, API changes impact 46.30% of tests per app on average, and regression test selection based on APICIA can be cost effective. Moreover, many affected statements are not covered by existing tests, which indicates APICIA can help with test suite augmentation to achieve better coverage. These findings suggest that APICIA is a promising approach for assisting Android developers with understanding, testing, and debugging Android apps that are subject to rapid API updates
ASSESSING THE EFFICACY OF INVISIBLEWATERMARKS IN AI-GENERATED MEDICAL
No description supplie
Redroid: A regression test selection approach for android applications
As the mobile platform pervades human life, much research in recent years has focused on improving the reliability of mobile applications on this platform, for example by applying automatic testing. However, researchers have primarily considered testing of single version of mobile applications. Although regression testing has been extensively studied for desktop applications, and many efficient and effective approaches have been proposed, these approaches cannot be directly applied to mobile applications. We first present a bug study on real-world Android bugs to show the existence of regression bugs, which motivates the need for an efficient regression test selection technique for Android applications. Next, we introduce Redroid, a new approach to regression test selection for Android applications. Our approach leverages the combination of static impact analysis and dynamic code coverage, and identifies a subset of test cases for reexecution on the modified application version. We implement our approach for Android applications, and demonstrate its efficacy through an extensive empirical study.</p
Status of soil nematode communities during natural regeneration of a subtropical forest in southwestern China
Forest recovery has been extensively evaluated using plant communities but fewer studies have been conducted on soil fauna. This study reports the status of soil nematode communities during natural re-establishment after deforestation in a subtropical forest in southwestern China. Soil nematode communities of two secondary succession stages, shrub-grassland and secondary forest, were compared with those of virgin forest. Shrub-grassland had higher herbivore relative abundance but lower fungivore and bacterivore relative abundance than forests. Between secondary and virgin forest, the latter had higher abundance of bacterivores. Shrub-grassland
had lower nematode diversity, generic richness, maturity index and trophic diversity index than virgin forest, whereas there were no differences in these indices between secondary forest and virgin forest. The small differences in nematode community structures between secondary forest and virgin forest suggest that soil nematode communities recovered to a level close to that of the undisturbed forest after up to 50 years of natural succession
API change impact analysis for android apps
Android has recently become one of the best platforms for mobile app development. The constant evolution of this mobile operating system results in frequent updates to its APIs, which may affect the functionality of Android apps that are built upon them. Given the high frequency of Android API updates, impact analysis plays an important role in achieving high reliability for Android apps. This paper presents APICIA, a novel approach to API change impact analysis for Android Apps. APICIA reports the impact induced when updating the target API in terms of affected program elements (i.e., classes, methods, and statements), affected tests whose executions may exhibit different behaviors due to the API update, as well as untested affected code. We evaluate APICIA on 31 real-world Android apps, and the experimental results show that it can be cost effective on regression test selection as on average only 35.31% of tests per app are affected by API update. Moreover, since many affected statements are not covered by existing tests, APICIA can assist app developers in test suite augmentation for testing these statements. These findings indicate that APICIA is a promising technique for assisting Android developers with understanding, testing, and debugging for an API update
Intelligent constraint classification for symbolic execution
Forward symbolic execution is a powerful systematic software analysis technique, but suffers from the high cost of constraint solving. During symbolic execution, off-the-shelf constraint solvers are used to check the satisfiability of path conditions whenever they are updated. However, the satisfiability information is sufficient for path exploration, while the concrete solutions are needed only for special cases, e.g., when a property violation is detected. Thus, symbolic execution can be made more efficient by leveraging rapid constraint classification instead of time-consuming constraint solving when the concrete solutions are not necessary. This paper introduces ICON, a novel approach to scaling symbolic execution with intelligent constraint classification, where neural networks are utilized to classify path conditions for satisfiability. Experimental evaluation shows ICON is highly accurate in classifying path conditions, is faster than state-of-the-art techniques for conventional constraint solving, learning based constraint solving, and constraint solution reuse, and enables more efficient symbolic execution