计算机科学
应用程序编程接口
Android(操作系统)
移动应用程序
任务(项目管理)
排名(信息检索)
Java
万维网
数据库
操作系统
情报检索
经济
管理
作者
Mattia Fazzini,Xin Qi,Alessandro Orso
标识
DOI:10.1145/3293882.3330571
摘要
Mobile apps rely heavily on the application programming interface (API) provided by their underlying operating system (OS). Because OS and API can change frequently, developers must quickly update their apps to ensure that the apps behave as intended with new API and OS versions. To help developers with this tedious, error prone, and time consuming task, we developed a technique that can automatically perform app updates for API changes based on examples of how other developers evolved their apps for the same changes. Given a target app to be updated and information about the changes in the API, our technique performs four main steps. First, it analyzes the target app to identify code affected by API changes. Second, it searches existing code bases for examples of updates to the new version of the API. Third, it analyzes, ranks, and transforms into generic patches the update examples found in the previous step. Finally, it applies the generated patches to the target app in order of ranking, while performing differential testing to validate the update. We implemented our technique and performed an empirical evaluation on 15 real-world apps with promising results. Overall, our technique was able to update 85% of the API changes considered and automatically validate 68% of the updates performed.
科研通智能强力驱动
Strongly Powered by AbleSci AI