Symbolic execution and automatic test case generation for JavaScript programs
    1.
    发明授权
    Symbolic execution and automatic test case generation for JavaScript programs 有权
    JavaScript程序的符号执行和自动测试用例生成

    公开(公告)号:US09038032B2

    公开(公告)日:2015-05-19

    申请号:US13481594

    申请日:2012-05-25

    CPC分类号: G06F11/3684 G06F9/45529

    摘要: A method includes, by one or more computing devices, determining JavaScript statements to be evaluated, parsing the JavaScript statements, translating the JavaScript statements into Java bytecodes and JavaScript-specific instructions, executing the Java bytecodes in a Java execution engine, calling a JavaScript run-time engine from the Java execution engine, handling one or more semantic operations associated with the JavaScript-specific instructions through use of the JavaScript run-time engine, and providing return values to the Java execution engine. The statements are configured for execution on a computing device. The set of Java bytecodes and JavaScript-specific instructions is configured to conduct symbolic execution of one or more portions of the JavaScript statements. The symbolic execution is configured to evaluate the JavaScript statements.

    摘要翻译: 一种方法包括由一个或多个计算设备确定要评估的JavaScript语句,解析JavaScript语句,将JavaScript语句转换为Java字节码和特定于JavaScript的指令,在Java执行引擎中执行Java字节码,调用JavaScript运行 来自Java执行引擎的时间引擎,通过使用JavaScript运行时引擎来处理与JavaScript特定指令相关联的一个或多个语义操作,并向Java执行引擎提供返回值。 这些语句被配置为在计算设备上执行。 一组Java字节码和JavaScript特定的指令被配置为执行JavaScript语句的一个或多个部分的符号执行。 符号执行被配置为评估JavaScript语句。

    Efficient partial execution for the parallelization of software analysis in a distributed computing environment
    3.
    发明授权
    Efficient partial execution for the parallelization of software analysis in a distributed computing environment 有权
    在分布式计算环境中并行化软件分析的高效部分执行

    公开(公告)号:US08539500B2

    公开(公告)日:2013-09-17

    申请号:US12957390

    申请日:2010-11-30

    CPC分类号: G06F9/5083 G06F11/3604

    摘要: An electronic device includes a memory, a processor coupled to the memory, and one or more policies stored in the memory. The policies include a resource availability policy determining whether the processor should continue evaluating the software, and a job availability policy determining whether new jobs will be created for unexplored branches. The processor is configured to receive a job to be executed, evaluate the software, select a branch to explore and store an initialization sequence of one or more unexplored branches if a branch in the software is encountered, evaluate the job availability policy, decide whether to create a job for each of the unexplored branches based on the job availability policy, evaluate the resource availability policy, and decide whether to continue evaluating the software at the branch selected to explore based on the resource availability policy. The job indicates of a portion of software to be evaluated.

    摘要翻译: 电子设备包括存储器,耦合到存储器的处理器以及存储在存储器中的一个或多个策略。 这些策略包括确定处理器是否应继续评估软件的资源可用性策略以及确定是否为未开发的分支创建新作业的作业可用性策略。 处理器被配置为接收要执行的作业,评估软件,选择分支以探索并存储一个或多个未开发的分支的初始化序列,如果遇到软件中的分支,则评估作业可用性策略,决定是否 根据作业可用性策略为每个未开发的分支创建一个作业,评估资源可用性策略,并根据资源可用性策略决定是否继续评估选择进行分析的分支软件。 该作业表示要评估的软件的一部分。

    Symbolic Execution and Test Generation for GPU Programs
    5.
    发明申请
    Symbolic Execution and Test Generation for GPU Programs 有权
    GPU程序的符号执行和测试生成

    公开(公告)号:US20120204154A1

    公开(公告)日:2012-08-09

    申请号:US13021604

    申请日:2011-02-04

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3684 G06F9/448

    摘要: In particular embodiments, a method includes accessing bytecode generated by a compiler from a software program for execution by a particular processing unit; accessing configuration information describing one or more aspects of the particular processing unit; symbolically executing the bytecode with the configuration information; and, based on the symbolic execution, generating one or more results conveying a functional correctness of the software program with respect to the particular processing unit for communication to a user and generating one or more test cases for the software program for communication to a user.

    摘要翻译: 在特定实施例中,一种方法包括:从软件程序中访问由编译器生成的字节码以供特定处理单元执行; 访问描述特定处理单元的一个或多个方面的配置信息; 用配置信息象征性地执行字节码; 并且基于所述符号执行,生成一个或多个结果,其传达关于所述特定处理单元的所述软件程序的功能正确性,以向用户通信,并为所述软件程序生成一个或多个用于与用户通信的测试用例。

    Environment Data Refinement Based on Static Analysis and Symbolic Execution
    7.
    发明申请
    Environment Data Refinement Based on Static Analysis and Symbolic Execution 有权
    基于静态分析和符号执行的环境数据优化

    公开(公告)号:US20100242029A1

    公开(公告)日:2010-09-23

    申请号:US12407695

    申请日:2009-03-19

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3696

    摘要: In particular embodiments, an environment for modular software analysis is generated for a software module under analysis. Irrelevancy analysis is performed on the software module to determine that, for each input datum to the software module, whether the input datum is relevant or irrelevant with respect to branch coverage of the module code. A default concrete value is assigned to each irrelevant input datum. A set of concrete values is calculated for each relevant input datum using symbolic execution. The environment is enhanced such that default concrete values are passed to the software module for the irrelevant input data and sets of concrete values generated using symbolic execution are passed to the software module for the relevant input data. The enhanced environment enables module analysis with as much as 100% branch coverage of the module code.

    摘要翻译: 在特定实施例中,为分析的软件模块生成用于模块化软件分析的环境。 对软件模块执行不完整性分析,以确定对于软件模块的每个输入数据,输入数据是否与模块代码的分支覆盖相关或不相关。 默认的具体值分配给每个不相关的输入数据。 使用符号执行计算每个相关输入数据的一组具体值。 增强了环境,使得默认的具体值被传递给软件模块以用于不相关的输入数据,并且使用符号执行生成的具体值的集合被传递给用于相关输入数据的软件模块。 增强的环境使模块分析具有多达100%的模块代码的分支覆盖。

    System and method for detecting software defects
    8.
    发明授权
    System and method for detecting software defects 有权
    用于检测软件缺陷的系统和方法

    公开(公告)号:US07685471B2

    公开(公告)日:2010-03-23

    申请号:US11670143

    申请日:2007-02-01

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3608 G06F9/44

    摘要: A method for detecting software defects includes selecting from a target program comprising a plurality of modules a first module for evaluation and isolating the first module. The method also includes iteratively performing the following steps until the first module has been reduced such that a validation program is able to determine whether the first module contains a defect: generating an environment surrounding the first module, the generated environment preserving at least one external constraint on the first module; reducing the size of the first module; and reducing the number of program states associated with the first module.

    摘要翻译: 用于检测软件缺陷的方法包括从包括多个模块的目标程序中选择用于评估和隔离第一模块的第一模块。 该方法还包括迭代地执行以下步骤,直到第一模块被减少,使得验证程序能够确定第一模块是否包含缺陷:生成围绕第一模块的环境,所生成的环境保留至少一个外部约束 在第一个模块上 减小第一个模块的尺寸; 并减少与第一模块相关联的程序状态的数量。

    Generating a test environment for validating a network design
    9.
    发明授权
    Generating a test environment for validating a network design 失效
    生成验证网络设计的测试环境

    公开(公告)号:US07139929B2

    公开(公告)日:2006-11-21

    申请号:US10405768

    申请日:2003-04-01

    IPC分类号: G06F11/00

    CPC分类号: G01R31/31704

    摘要: Generating a test environment includes accessing initial test environments for a network of nodes, where a test environment specifies a propagation or justification path for a node. The following are repeated until satisfactory coverage is achieved or until a predetermined number of iterations is reached. A coverage for each test environment is calculated, and at least two of the test environments are mated to generate next test environments, where the coverage of the at least two test environments is greater than the coverage of the other test environments.

    摘要翻译: 生成测试环境包括访问节点网络的初始测试环境,其中测试环境指定节点的传播路径或对齐路径。 重复以下操作,直到达到满意的覆盖或达到预定次数的迭代。 计算每个测试环境的覆盖范围,并且至少两个测试环境进行配对以生成下一个测试环境,其中至少两个测试环境的覆盖范围大于其他测试环境的覆盖范围。

    Iterative generation of symbolic test drivers for object-oriented languages
    10.
    发明授权
    Iterative generation of symbolic test drivers for object-oriented languages 有权
    用于面向对象语言的迭代生成符号测试驱动程序

    公开(公告)号:US09058427B2

    公开(公告)日:2015-06-16

    申请号:US13549785

    申请日:2012-07-16

    IPC分类号: G06F9/44 G06F11/36

    CPC分类号: G06F11/3684 G06F8/30

    摘要: A method includes, by one or more computing devices, determining instructions for a computing device to be evaluated, creating a first symbolic test driver including one or more of the instructions to be evaluated and a designation of a symbolic variable corresponding to a portion of the instructions, symbolically executing the instructions with respect to the symbolic variable, determining a test case from the results of the symbolic execution including one or more commands to execute the instructions with a given value for the symbolic variable, determining one or more calls to an object-oriented-programming component in the commands, creating a new symbolic test driver including the calls based on the determined calls, and subsequently symbolically executing the new symbolic test driver.

    摘要翻译: 一种方法包括由一个或多个计算设备确定要评估的计算设备的指令,创建包括待评估的指令中的一个或多个的第一符号测试驱动器,以及与所述待计算的一部分相对应的符号变量的指定 指令,符号地执行关于符号变量的指令,从包括一个或多个命令的符号执行的结果确定测试用例,以执行具有给定值的符号变量的指令,确定对对象的一个​​或多个调用 定向编程组件,创建一个新的符号测试驱动程序,包括基于确定的调用的调用,然后在符号上执行新的符号测试驱动程序。