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 条
  • [31] Static analysis: a brief survey
    Garcia-Ferreira, Ivan
    Laorden, Carlos
    Santos, Igor
    Garcia Bringas, Pablo
    LOGIC JOURNAL OF THE IGPL, 2016, 24 (06) : 871 - 882
  • [32] Static analysis of Android programs
    Payet, Etienne
    Spoto, Fausto
    INFORMATION AND SOFTWARE TECHNOLOGY, 2012, 54 (11) : 1192 - 1201
  • [33] Static analysis in datalog extensions
    Halevy, AY
    Mumick, IS
    Sagiv, Y
    Shmueli, O
    JOURNAL OF THE ACM, 2001, 48 (05) : 971 - 1012
  • [34] Experience Report: OCaml for an Industrial-Strength Static Analysis Framework
    Cuoq, Pascal
    Signoles, Julien
    Baudin, Patrick
    Bonichon, Richard
    Canet, Geraud
    Correnson, Loic
    Monate, Benjamin
    Prevosto, Virgile
    Puccetti, Armand
    ACM SIGPLAN NOTICES, 2009, 44 (8-9) : 281 - 286
  • [35] Sound and Static Analysis of Session Fixation Vulnerabilities in PHP Web Applications
    Amira, Abdelouahab
    Ouadjaout, Abdelraouf
    Derhab, Abdelouahid
    Badache, Nadjib
    PROCEEDINGS OF THE SEVENTH ACM CONFERENCE ON DATA AND APPLICATION SECURITY AND PRIVACY (CODASPY'17), 2017, : 139 - 141
  • [36] Static Analysis of Multi-Staged Programs via Unstaging Translation
    Choi, Wontae
    Aktemur, Baris
    Yi, Kwangkeun
    Tatsuta, Makoto
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 81 - 92
  • [37] Relational Thread-Modular Static Value Analysis by Abstract Interpretation
    Mine, Antoine
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION: (VMCAI 2014), 2014, 8318 : 39 - 58
  • [38] Randomized Resource-Aware Path-Sensitive Static Analysis
    Dudziak, Tomasz
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2015, 2015, 9458 : 111 - 126
  • [39] Analysis of a mobile learning app for ophthalmology in Brazil
    Koch, Camila R.
    Scherer, Rafael
    Kara Junior, Newton
    Gripp, Philipe Dourado
    Rosa, Alexandre Antonio Marques
    Carricondo, Pedro Carlos
    ARQUIVOS BRASILEIROS DE OFTALMOLOGIA, 2024, 87 (05)
  • [40] Scaling Input Stimulus Generation through Hybrid Static and Dynamic Analysis of RTL
    Liu, Lingyi
    Vasudevan, Shobha
    ACM TRANSACTIONS ON DESIGN AUTOMATION OF ELECTRONIC SYSTEMS, 2014, 20 (01) : 1 - 33