Transferring State-of-the-art Immutability Analyses: Experimentation Toolbox and Accuracy Benchmark

被引:2
作者
Holland, Benjamin [1 ]
Santhanam, Ganesh Ram [1 ]
Kothari, Suresh [1 ]
机构
[1] Iowa State Univ, Dept Elect & Comp Engn, Ames, IA 50011 USA
来源
2017 10TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST) | 2017年
关键词
D O I
10.1109/ICST.2017.55
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Immutability analysis is important to software testing, verification and validation (V&V) because it can be used to identify independently testable functions without side-effects. Existing tools for immutability analysis are largely academic prototypes that have not been rigorously tested for accuracy or have not been maintained and are unable to analyze programs written in later versions of Java. In this paper, we re-implement two prominent approaches to inferring the immutability of an object: one that leverages a points-to analysis and another that uses a type-system. In addition to supporting Java 8 source programs, our re-implementations support the analysis of compiled Java bytecode. In order to evaluate the relative accuracy, we create a benchmark that rigorously tests the accuracy boundaries of the respective approaches. We report results of experiments on analyzing the benchmark with the two approaches and compare their scalability to real world applications. Our results from the benchmark reveal that points-to based approach is more accurate than the type inference based approach in certain cases. However, experiments with real world applications show that the points-to based approach does not scale well to very large applications and a type inference based approach may offer a scalable alternative. Toolbox: https://ensoftcorp.github.io/immutability-toolbox Benchmark: https://kcsl.github.io/immutability-benchmark
引用
收藏
页码:484 / 491
页数:8
相关论文
共 20 条
[1]  
Ali K, 2013, LECT NOTES COMPUT SC, V7920, P378, DOI 10.1007/978-3-642-39038-8_16
[2]  
[Anonymous], 1994, Program analysis and specialization for the C programming language
[3]   The DaCapo benchmarks: Java']Java benchmarking development and analysis [J].
Blackburn, Stephen M. ;
Garner, Robin ;
Hoffmann, Chris ;
Khan, Asjad M. ;
McKinley, Kathryn S. ;
Bentzur, Rotem ;
Diwan, Amer ;
Feinberg, Daniel ;
Frampton, Daniel ;
Guyer, Samuel Z. ;
Hirzel, Martin ;
Hosking, Antony ;
Jump, Maria ;
Lee, Han ;
Moss, J. Eliot B. ;
Phansalkar, Aashish ;
Stefanovic, Darko ;
VanDrunen, Thomas ;
von Dincklage, Daniel ;
Wiedermann, Ben .
ACM SIGPLAN NOTICES, 2006, 41 (10) :169-190
[4]  
Bravenboer M, 2009, OOPSLA 2009, CONFERENCE PROCEEDINGS, P243
[5]  
DARPA, 2014, TECH REP
[6]   Atlas: A New Way to Explore Software, Build Analysis Tools [J].
Deering, Tom ;
Kothari, Suresh ;
Sauceda, Jeremias ;
Mathews, Jon .
36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE COMPANION 2014), 2014, :588-591
[7]  
Dyer R, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P422, DOI 10.1109/ICSE.2013.6606588
[8]  
Finifter M, 2008, CCS'08: PROCEEDINGS OF THE 15TH ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, P161
[9]  
Holland B., 2016, 16 IEEE INT C SOURC
[10]  
Holland B., 2016, IMMUTABLE OBJECTS IN