Combining symbolic execution and search-based testing for programs with complex heap inputs

Combining symbolic execution and search-based testing for programs with complex heap inputs
复制标题

将符号执行和基于搜索的测试相结合,对具有复杂堆输入的程序进行测试

DOI:
10.1145/3092703.3092715
复制
发表时间:
2017
期刊:
--
影响因子:
--
通讯作者:
Braione P
Braione P
中科院分区:
--
文献类型:
--
作者:
Braione P

文献摘要

参考文献

被引文献

相似文献

尽管最近在自动测试用例生成方面有所改进,但将复杂的数据结构作为测试输入处理仍然是一个悬而未决的问题。基于搜索的方法可以生成方法调用序列,这些方法调用序列实例化结构化输入以执行代码的相关部分,但在构建输入以执行程序元素方面存在不足,这些程序元素的可达性由输入结构本身的结构特征确定。符号执行技术可以有效地处理结构化输入,但不能识别通过法律的接口实例化输入结构的方法调用序列。在本文中,我们提出了一种新的方法来自动生成测试用例的程序与复杂的数据结构作为输入。我们使用符号执行来生成路径条件,该路径条件描述程序路径和输入结构之间的依赖关系,并将路径条件转换为我们使用基于搜索的技术解决的优化问题,以产生实例化这些输入的方法调用序列。我们的初步结果表明,该方法确实是有效的生成测试用例的程序与复杂的数据结构作为输入,从而打开了一个有前途的研究方向。
Despite the recent improvements in automatic test case generation, handling complex data structures as test inputs is still an open problem. Search-based approaches can generate sequences of method calls that instantiate structured inputs to exercise a relevant portion of the code, but fall short in building inputs to execute program elements whose reachability is determined by the structural features of the input structures themselves. Symbolic execution techniques can effectively handle structured inputs, but do not identify the sequences of method calls that instantiate the input structures through legal interfaces. In this paper, we propose a new approach to automatically generate test cases for programs with complex data structures as inputs. We use symbolic execution to generate path conditions that characterise the dependencies between the program paths and the input structures, and convert the path conditions to optimisation problems that we solve with search-based techniques to produce sequences of method calls that instantiate those inputs. Our preliminary results show that the approach is indeed effective in generating test cases for programs with complex data structures as inputs, thus opening a promising research direction.
EvoSE:进化符号执行
DOI: --
发表时间: 2015
期刊: A-TEST@SIGSOFT FSE
影响因子: --
作者:
M. Baluda
通讯作者: M. Baluda
使用基于代码的测试生成器进行软件测试:从工业软件组件案例研究中吸取的数据和经验教训
DOI: --
发表时间: 2013
影响因子: 1.9
作者:
Pietro Braione;G. Denaro;Andrea Mattavelli;Mattia Vivanti;Ali Muhammad
通讯作者: Ali Muhammad
Beaver:为位向量算术设计高效的 SMT 求解器
DOI: 10.1007/978-3-642-02658-4_53
发表时间: 2009
影响因子: --
作者:
Susmit Jha;Rhishikesh Limaye;S. Seshia
通讯作者: S. Seshia
JBSE:具有复杂堆输入的 Java 程序的符号执行器
DOI: 10.1145/2950290.2983940
发表时间: 2016
期刊: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
影响因子: --
作者:
Pietro Braione;G. Denaro;M. Pezzè
通讯作者: M. Pezzè
通过 UDITA 编程生成测试
DOI: 10.1145/1806799.1806835
发表时间: 2010
期刊: 2010 ACM/IEEE 32nd International Conference on Software Engineering
影响因子: --
作者:
Miloš Gligorić;Tihomir Gvero;V. Jagannath;S. Khurshid;Viktor Kunčak;D. Marinov
通讯作者: D. Marinov