首页> 外国专利> Method and system for generating a computer program test suite using dynamic symbolic execution of JAVA programs

Method and system for generating a computer program test suite using dynamic symbolic execution of JAVA programs

机译:使用JAVA程序的动态符号执行来生成计算机程序测试套件的方法和系统

摘要

A method and system for generating a test suite for a computer program written in the JAVA programming language. The JAVA program comprises program statements and program variables represented as JAVA source code and compiled by a JAVA compiler into JAVA bytecodes, including at least one input statement having one or more input variables, that are grouped into code blocks and stored in a program database. The test suite comprises sets of inputs. Each of the sets of inputs corresponds to a pth in the program. The program statements corresponding to a candidate code block are read from the program database. Each of the input variables for each input statement and each of the program variables that depend on them are represented in symbolic form as a symbolic memory value and transforming each program statement dependent on such an input variable into a symbolic expression. A trial set of inputs for each of the input statements is created by finding a solution to the symbolic expression obtained using dynamic symbolic execution. The trial set of inputs are stored into the test suite if coverage of the candidate code block was obtained. A dynamic symbolic execution consists of a symbolic execution of the program performed along the path that corresponds to the trial set of actual inputs. The first input to the program is generated randomly. From that first input, inputs satisfying any coverage criteria can be obtained by performing the above procedure iteratively.
机译:一种用于生成用JAVA编程语言编写的计算机程序的测试套件的方法和系统。 JAVA程序包括表示为JAVA源代码并由JAVA编译器编译为JAVA字节码的程序语句和程序变量,包括至少一个具有一个或多个输入变量的输入语句,这些语句被分组为代码块并存储在程序数据库中。测试套件包含输入集。每组输入对应于程序中的pth。从程序数据库中读取与候选代码块相对应的程序语句。每个输入语句的每个输入变量和依赖于它们的每个程序变量都以符号形式表示为符号存储值,并将依赖于这种输入变量的每个程序语句转换为符号表达式。通过找到使用动态符号执行获得的符号表达式的解决方案,可以为每个输入语句创建一组试验输入。如果获得了候选代码块的覆盖范围,则将试验的输入集存储到测试套件中。动态符号执行包括沿着与实际输入的试验集相对应的路径执行的程序的符号执行。程序的第一个输入是随机生成的。从该第一输入,可以通过反复执行上述过程来获得满足任何覆盖标准的输入。

著录项

  • 公开/公告号US5784553A

    专利类型

  • 公开/公告日1998-07-21

    原文格式PDF

  • 申请/专利权人 PARASOFT CORPORATION;

    申请/专利号US19970846639

  • 发明设计人 ROMAN SALVADOR;ADAM K. KOLAWA;

    申请日1997-04-30

  • 分类号G06F11/00;

  • 国家 US

  • 入库时间 2022-08-22 02:39:04

相似文献

  • 专利
  • 外文文献
  • 中文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号