A Genetic Algorithm for Detecting Significant Floating-Point Inaccuracies

被引:38
作者
Zou, Daming [1 ,2 ]
Wang, Ran [1 ,2 ]
Xiong, Yingfei [1 ,2 ]
Zhang, Lu [1 ,2 ]
Su, Zhendong [3 ]
Mei, Hong [1 ,2 ]
机构
[1] Peking Univ, MoE, Key Lab High Confidence Software Technol, Beijing, Peoples R China
[2] Peking Univ, Sch EECS, Inst Software, Beijing, Peoples R China
[3] Univ Calif Davis, Dept Comp Sci, Davis, CA 95616 USA
来源
2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 1 | 2015年
基金
美国国家科学基金会;
关键词
TEST-DATA GENERATION;
D O I
10.1109/ICSE.2015.70
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
It is well-known that using floating-point numbers may inevitably result in inaccurate results and sometimes even cause serious software failures. Safety-critical software often has strict requirements on the upper bound of inaccuracy, and a crucial task in testing is to check whether significant inaccuracies may be produced. The main existing approach to the floating-point inaccuracy problem is error analysis, which produces an upper bound of inaccuracies that may occur. However, a high upper bound does not guarantee the existence of inaccuracy defects, nor does it give developers any concrete test inputs for debugging. In this paper, we propose the first metaheuristic search-based approach to automatically generating test inputs that aim to trigger significant inaccuracies in floating-point programs. Our approach is based on the following two insights: (1) with FPDebug, a recently proposed dynamic analysis approach, we can build a reliable fitness function to guide the search; (2) two main factors - the scales of exponents and the bit formations of significands - may have significant impact on the accuracy of the output, but in largely different ways. We have implemented and evaluated our approach over 154 real-world floating-point functions. The results show that our approach can detect significant inaccuracies in the subjects.
引用
收藏
页码:529 / 539
页数:11
相关论文
共 34 条
[1]  
[Anonymous], CALCULATOR CONTROLLE
[2]  
[Anonymous], 1991, ACM computing surveys (CSUR), DOI DOI 10.1145/116825.116852]5
[3]  
[Anonymous], 1996, LECT NOTES STATUS IE
[4]  
[Anonymous], SC
[5]  
Ayad A, 2010, LECT NOTES ARTIF INT, V6173, P127
[6]   Symbolic Path-Oriented Test Data Generation for Floating-Point Programs [J].
Bagnara, Roberto ;
Carlier, Matthieu ;
Gori, Roberta ;
Gotlieb, Arnaud .
2013 IEEE SIXTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2013), 2013, :1-10
[7]  
Bao T, 2013, ACM SIGPLAN NOTICES, V48, P817, DOI [10.1145/2509136.2509526, 10.1145/2544173.2509526]
[8]   White Box Sampling in Uncertain Data Processing Enabled by Program Analysis [J].
Bao, Tao ;
Zheng, Yunhui ;
Zhang, Xiangyu .
ACM SIGPLAN NOTICES, 2012, 47 (10) :897-913
[9]   Automatic Detection of Floating-Point Exceptions [J].
Barr, Earl T. ;
Thanh Vo ;
Vu Le ;
Su, Zhendong .
ACM SIGPLAN NOTICES, 2013, 48 (01) :549-560
[10]   A Dynamic Program Analysis to find Floating-Point Accuracy Problems [J].
Benz, Florian ;
Hildebrandt, Andreas ;
Hack, Sebastian .
ACM SIGPLAN NOTICES, 2012, 47 (06) :453-462