基于符号执行和约束求解的程序验证与测试工具

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 6次 | 上传用户:luxiliang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件技术的发展,程序的规模逐渐增大,复杂度也逐渐增加。在软件的开发过程中,完全依靠人力进行分析测试效率太低,而且不能保证软件质量。测试过程中的一个主要问题是生成具有一定覆盖度的测试数据。如果有一种工具能自动地分析程序并且生成测试数据,将大大地提高软件的可靠性并且节约大量的人力。目前自动生成测试数据的工具已有很多,但是大多数都有一定的局限性,不能完全自动地生成测试数据,所能处理的数据类型也有限,也只能用于局部的单元测试。针对上述情况,本文中提出了一种方法,它基于约束满足问题求解方法和扩展有限状态机上的符号执行算法,能够对C语言子集描述的程序进行分析。它可以近似地验证程序的正确性,也可以依据软件测试的标准,按某种覆盖度要求生成测试用例。我们同时也开发了相应的工具,可分析较复杂的程序,不仅可以完成单元测试,而且可以对包含多个函数的程序进行测试;可以处理整型、实型、数组类型等多种数据类型的变量;自动化程度相对较高。最后,本文还讨论了数据库应用程序的白盒测试数据自动生成问题,并介绍了我们开发的辅助工具。与国外类似工作相比,我们工具的主要特点是能自动地处理SQL语言的一个子集,并结合测试中需要满足的断言,产生用于求解的约束条件,进而可以得到所需要的测试数据。
其他文献
随着计算机软件技术和硬件设备的快速发展,近年来人机交互模式发生了巨大改变,传统的鼠标与图形界面的交互方式已无法满足人们日益增长的交互需求,各类更加自然的交互模式应