arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1007.5195cs.PLcs.SE
收藏

CLP中面向对象命令式语言的测试用例生成

Test Case Generation for Object-Oriented Imperative Languages in CLP

Miguel Gómez-Zamalloa, Elvira Albert, Germán Puebla

摘要:

测试是软件开发过程的重要组成部分。测试用例生成(Test Case Generation,TCG)是自动生成应用于被测系统的测试用例集的过程。白盒TCG通常通过符号执行来执行,即,代替对正常值执行程序(例如,numbers),则程序在表示任意值的符号值上执行。在处理面向对象(OO)命令式语言时,符号执行变得具有挑战性,因为它必须能够回溯,复杂的堆分配数据结构应该在TCG过程中创建,并且必须考虑继承,虚拟调用和异常等特性。由于其固有的符号执行机制,我们追求在本文中,约束逻辑程序设计(CLP)有一个很好的未开发的应用领域在TCG。我们将支持我们的主张,开发一个完全基于CLP的框架,以TCG的面向对象的命令式语言,并通过评估它对一组具有挑战性的Java程序的相应实现。我们的方法的一个独特的特点是,它只使用CLP来处理所有的语言特征,而不需要开发特定的约束运算符(例如,对堆进行建模)。

英文摘要:

Testing is a vital part of the software development process. Test Case Generation (TCG) is the process of automatically generating a collection of test cases which are applied to a system under test. White-box TCG is usually performed by means of symbolic execution, i.e., instead of executing the program on normal values (e.g., numbers), the program is executed on symbolic values representing arbitrary values. When dealing with an object-oriented (OO) imperative language, symbolic execution becomes challenging as, among other things, it must be able to backtrack, complex heap-allocated data structures should be created during the TCG process and features like inheritance, virtual invocations and exceptions have to be taken into account. Due to its inherent symbolic execution mechanism, we pursue in this paper that Constraint Logic Programming (CLP) has a promising unexploited application field in TCG. We will support our claim by developing a fully CLP-based framework to TCG of an OO imperative language, and by assessing it on a corresponding implementation on a set of challenging Java programs. A unique characteristic of our approach is that it handles all language features using only CLP and without the need of developing specific constraint operators (e.g., to model the heap).

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑