Static Analysis for Independent App Developers

被引:0
|
作者
Brutschy, Lucas [1 ]
Ferrara, Pietro [2 ]
Mueller, Peter [1 ]
机构
[1] Swiss Fed Inst Technol, Dept Comp Sci, Zurich, Switzerland
[2] IBM Thomas J Watson Res Ctr, Yorktown Hts, NY USA
关键词
Languages; Reliability; Verification; Abstract Interpretation; Static Program Analysis; Mobile Applications; TouchDevelop;
D O I
10.1145/2714064.2660219
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Mobile app markets have lowered the barrier to market entry for software producers. As a consequence, an increasing number of independent app developers offer their products, and recent platforms such as the MIT App Inventor and Microsoft's TouchDevelop enable even lay programmers to develop apps and distribute them in app markets. A major challenge in this distribution model is to ensure the quality of apps. Besides the usual sources of software errors, mobile apps are susceptible to errors caused by the non-determinism of an event-based execution model, a volatile environment, diverse hardware, and others. Many of these errors are difficult to detect during testing, especially for independent app developers, who are not supported by test teams and elaborate test infrastructures. To address this problem, we propose a static program analysis that captures the specifics of mobile apps and is efficient enough to provide feedback during the development process. Experiments involving 51,456 published TouchDevelop scripts show that our analysis analyzes 98% of the scripts in under a minute, and five seconds on average. Manual inspection of the analysis results for a selection of all scripts shows that most of the alarms are real errors.
引用
收藏
页码:847 / 860
页数:14
相关论文
共 50 条
  • [1] Theories, Solvers and Static Analysis by Abstract Interpretation
    Cousot, Patrick
    Cousot, Radhia
    Mauborgne, Laurent
    JOURNAL OF THE ACM, 2012, 59 (06)
  • [2] To the attention of mobile software developers: guess what, test your app!
    Luis Cruz
    Rui Abreu
    David Lo
    Empirical Software Engineering, 2019, 24 : 2438 - 2468
  • [3] Static Analysis of Active XML Systems
    Abiteboul, Serge
    Segoufin, Luc
    Vianu, Victor
    ACM TRANSACTIONS ON DATABASE SYSTEMS, 2009, 34 (04):
  • [4] To the attention of mobile software developers: guess what, test your app!
    Cruz, Luis
    Abreu, Rui
    Lo, David
    EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (04) : 2438 - 2468
  • [5] STRE: An Automated Approach to Suggesting App Developers When to Stop Reading Reviews
    Tan, Youshuai
    Chen, Jinfu
    Shang, Weiyi
    Zhang, Tao
    Fang, Sen
    Luo, Xiapu
    Chen, Zijie
    Qi, Shuhao
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (08) : 4135 - 4151
  • [6] Enforcing Object Protocols by Combining Static and Runtime Analysis
    Gopinathan, Madhu
    Rajamani, Sriram K.
    ACM SIGPLAN NOTICES, 2008, 43 (10) : 245 - 260
  • [7] Heap Abstractions for Static Analysis
    Kanvar, Vini
    Khedker, Uday P.
    ACM COMPUTING SURVEYS, 2016, 49 (02)
  • [8] Determinacy in Static Analysis for jQuery
    Andreasen, Esben
    Moller, Anders
    ACM SIGPLAN NOTICES, 2014, 49 (10) : 17 - 31
  • [9] GPU-Based Static Data-Flow Analysis for Fast and Scalable Android App Vetting
    Yu, Xiaodong
    Wei, Fengguo
    Ou, Xinming
    Becchi, Michela
    Bicer, Tekin
    Yao, Danfeng
    2020 IEEE 34TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM IPDPS 2020, 2020, : 274 - 284
  • [10] Light up that Droid! On the effectiveness of static analysis features against app obfuscation for Android malware detection
    Molina-Coronado, Borja
    Ruggia, Antonio
    Mori, Usue
    Merlo, Alessio
    Mendiburu, Alexander
    Miguel-Alonso, Jose
    JOURNAL OF NETWORK AND COMPUTER APPLICATIONS, 2025, 235