Systems and methods for distributing validation computations
    1.
    发明授权
    Systems and methods for distributing validation computations 有权
    用于分发验证计算的系统和方法

    公开(公告)号:US08468537B2

    公开(公告)日:2013-06-18

    申请号:US12836375

    申请日:2010-07-14

    IPC分类号: G06F9/46

    CPC分类号: G06F11/3604

    摘要: In one embodiment, a method includes statically analyzing a validation toolkit environment. The method may also include, identifying a plurality of computational threads that do not share data structures with each other based on analysis of the validation toolkit environment. The method may additionally include calculating computational requirements of the computational threads. The method may further include distributing the threads among a plurality of resources such that the aggregate computational requirements of the computational threads are approximately evenly balanced among the plurality of resources.

    摘要翻译: 在一个实施例中,一种方法包括静态分析验证工具包环境。 该方法还可以包括:基于验证工具包环境的分析来识别不共享数据结构的多个计算线程。 该方法可以另外包括计算计算线程的计算需求。 该方法还可以包括在多个资源之间分配线程,使得计算线程的聚合计算需求在多个资源之间近似均衡地平衡。

    Systems and Methods for Distributing Validation Computations
    2.
    发明申请
    Systems and Methods for Distributing Validation Computations 有权
    分布验证计算的系统和方法

    公开(公告)号:US20120017220A1

    公开(公告)日:2012-01-19

    申请号:US12836375

    申请日:2010-07-14

    IPC分类号: G06F9/46

    CPC分类号: G06F11/3604

    摘要: In one embodiment, a method includes statically analyzing a validation toolkit environment. The method may also include, identifying a plurality of computational threads that do not share data structures with each other based on analysis of the validation toolkit environment. The method may additionally include calculating computational requirements of the computational threads. The method may further include distributing the threads among a plurality of resources such that the aggregate computational requirements of the computational threads are approximately evenly balanced among the plurality of resources.

    摘要翻译: 在一个实施例中,一种方法包括静态分析验证工具包环境。 该方法还可以包括:基于验证工具包环境的分析来识别不共享数据结构的多个计算线程。 该方法可以另外包括计算计算线程的计算需求。 该方法还可以包括在多个资源之间分配线程,使得计算线程的聚合计算需求在多个资源之间近似均衡地平衡。

    Configurable Web Services System and a Method to Detect Defects in Software Applications
    3.
    发明申请
    Configurable Web Services System and a Method to Detect Defects in Software Applications 审中-公开
    可配置的Web服务系统和检测软件应用程序缺陷的方法

    公开(公告)号:US20090089757A1

    公开(公告)日:2009-04-02

    申请号:US11865610

    申请日:2007-10-01

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3684 G06F8/10

    摘要: In accordance with a particular embodiment of the present invention, a method is offered that includes detecting one or more defects in a software application composed of heterogeneous languages using a configurable web services architecture. The detecting step further includes: capturing use cases associated with the software application and checking their validity; providing an automatic invocation of property monitors for model checking; and visualizing one or more defects in the software application for diagnosis. The detecting can further include transforming a heterogeneous software application into a homogeneous application. In more specific embodiments, the detecting further includes providing an automatic test generation for a presentation layer associated with the software application. The configuration associated with the software application can be a simple properties file. The detecting further includes simulating user behavior and generating drivers to test business logic from the use cases or scenarios.

    摘要翻译: 根据本发明的特定实施例,提供了一种方法,其包括使用可配置的web服务架构检测由异构语言组成的软件应用中的一个或多个缺陷。 所述检测步骤还包括:捕获与所述软件应用相关联的使用情况并检查其有效性; 提供模型检查的属性监视器的自动调用; 并可视化软件应用程序中的一个或多个缺陷进行诊断。 该检测还可以包括将异构软件应用程序转换为同构应用程序。 在更具体的实施例中,检测还包括提供与软件应用相关联的表示层的自动测试生成。 与软件应用程序相关的配置可以是一个简单的属性文件。 该检测还包括模拟用户行为并生成驱动程序以从用例或场景测试业务逻辑。

    System and Method for Providing Symbolic Execution Engine for Validating Web Applications
    4.
    发明申请
    System and Method for Providing Symbolic Execution Engine for Validating Web Applications 审中-公开
    为验证Web应用程序提供符号执行引擎的系统和方法

    公开(公告)号:US20090089759A1

    公开(公告)日:2009-04-02

    申请号:US11866043

    申请日:2007-10-02

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3604 G06F11/3684

    摘要: In accordance with a particular embodiment of the present invention, a method is offered that includes generating a symbolic string manipulation class library for one or more web applications. The manipulations are generalized into a string manipulation symbolic algebra. The method also includes performing symbolic execution for one or more web applications. Typically, a Java model checker is augmented to check for certain types of requirements or properties in performing the symbolic execution. If an error scenario exists, a solution to a set of symbolic constraints is obtained, and the solution is mapped back to a source code to obtain an error trace and a test case. In still other specific embodiments, requirements or properties are encoded through templates and checked using public domain decision procedures. The properties or requirements can relate to security validation. The symbolic execution can be customized and tuned for Java-based web applications.

    摘要翻译: 根据本发明的特定实施例,提供了一种方法,其包括为一个或多个web应用生成符号串操纵类库。 操纵被推广到字符串操作符号代数中。 该方法还包括对一个或多个web应用执行符号执行。 通常,扩展Java模型检查器以检查执行符号执行时的某些类型的要求或属性。 如果存在错误情况,则获得一组符号约束的解决方案,并将解决方案映射回源代码以获取错误跟踪和测试用例。 在其他具体实施例中,通过模板对需求或属性进行编码,并使用公共领域决策程序进行检查。 属性或要求可以与安全验证有关。 可以为基于Java的Web应用程序定制和调整符号执行。

    Symbolic execution and automatic test case generation for JavaScript programs
    5.
    发明授权
    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
    6.
    发明授权
    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.

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

    Dynamic and intelligent partial computation management for efficient parallelization of software analysis in a distributed computing environment
    7.
    发明授权
    Dynamic and intelligent partial computation management for efficient parallelization of software analysis in a distributed computing environment 有权
    动态和智能部分计算管理,用于在分布式计算环境中高效并行化软件分析

    公开(公告)号:US08914775B2

    公开(公告)日:2014-12-16

    申请号:US12957391

    申请日:2010-11-30

    IPC分类号: G06F9/44 G06F11/36 G06F9/50

    CPC分类号: G06F9/5083 G06F11/3608

    摘要: A method for verifying software includes determining the result of a bounding function, and using the result of the bounding function to apply one or more policies to the execution of the received job. The bounding function evaluates the execution of a received job, the received job indicating a portion of software to be verified. The result of the bounding function is based upon the present execution of the received job, one or more historical parameters, and an evaluation of the number of idle nodes available to process other jobs.

    摘要翻译: 用于验证软件的方法包括确定边界函数的结果,并且使用边界函数的结果将一个或多个策略应用于所接收的作业的执行。 边界函数评估接收到的作业的执行,所接收的作业指示待验证的软件的一部分。 边界函数的结果是基于当前执行的接收到的作业,一个或多个历史参数,以及可用于处理其他作业的空闲节点的数量的评估。

    NODE COMPUTATION INITIALIZATION TECHNIQUE FOR EFFICIENT PARALLELIZATION OF SOFTWARE ANALYSIS IN A DISTRIBUTED COMPUTING ENVIRONMENT
    8.
    发明申请
    NODE COMPUTATION INITIALIZATION TECHNIQUE FOR EFFICIENT PARALLELIZATION OF SOFTWARE ANALYSIS IN A DISTRIBUTED COMPUTING ENVIRONMENT 有权
    节点计算初始化技术在分布式计算环境中有效平衡软件分析

    公开(公告)号:US20120110550A1

    公开(公告)日:2012-05-03

    申请号:US12957393

    申请日:2010-12-01

    IPC分类号: G06F9/44

    摘要: A method for verifying software includes determining an initialization path condition of a received software verification job, determining a termination path condition of a computing node, and initializing the execution of the received software verification job on the computing node based on the initialization path condition and the termination path condition. The initialization path condition includes a sequence of program predicates for reaching a starting state of software to be verified. The received software verification job includes an indication of a portion of the software to be verified. The termination path condition includes an indication of the last state reached during the execution of a previous software verification job on the computing node. The computing node is assigned to execute the received software verification job.

    摘要翻译: 一种用于验证软件的方法,包括确定接收的软件验证作业的初始化路径条件,确定计算节点的终止路径条件,以及基于初始化路径条件在计算节点上初始化接收到的软件验证作业的执行, 终止路径条件。 初始化路径条件包括用于达到要验证的软件的起始状态的程序谓词序列。 所接收的软件验证作业包括要验证的软件的一部分的指示。 终止路径条件包括在计算节点上执行先前的软件验证作业期间达到的最后状态的指示。 分配计算节点以执行接收的软件验证作业。

    Scheduling policy for efficient parallelization of software analysis in a distributed computing environment
    9.
    发明授权
    Scheduling policy for efficient parallelization of software analysis in a distributed computing environment 有权
    在分布式计算环境中高效并行化软件分析的计划策略

    公开(公告)号:US08789054B2

    公开(公告)日:2014-07-22

    申请号:US12957392

    申请日:2010-11-30

    CPC分类号: G06F9/5083 G06F11/3604

    摘要: A method for verifying software includes accessing a job queue, accessing a resource queue, and assigning a job from the job queue to a resource from the resource queue if an addition is made to the a job queue or to a resource queue. The job queue includes an indication of one or more jobs to be executed by a worker node, each job indicating a portion of a code to be verified. The resource queue includes an indication of a one or more worker nodes available to verify a portion of software. The resource is selected by determining the best match for the characteristics of the selected job among the resources in the resource queue.

    摘要翻译: 用于验证软件的方法包括:如果对作业队列或资源队列进行添加,则访问作业队列,访问资源队列,以及从作业队列向资源分配作业。 作业队列包括要由工作节点执行的一个或多个作业的指示,每个作业指示要被验证的代码的一部分。 资源队列包括可用于验证软件的一部分的一个或多个工作节点的指示。 通过在资源队列中的资源中确定所选作业的特征的最佳匹配来选择资源。

    TECHNIQUE FOR EFFICIENT PARALLELIZATION OF SOFTWARE ANALYSIS IN A DISTRIBUTED COMPUTING ENVIRONMENT THROUGH INTELLIGENT DYNAMIC LOAD BALANCING
    10.
    发明申请
    TECHNIQUE FOR EFFICIENT PARALLELIZATION OF SOFTWARE ANALYSIS IN A DISTRIBUTED COMPUTING ENVIRONMENT THROUGH INTELLIGENT DYNAMIC LOAD BALANCING 有权
    通过智能动态负载平衡在分布式计算环境中有效平衡软件分析的技术

    公开(公告)号:US20120110589A1

    公开(公告)日:2012-05-03

    申请号:US12957387

    申请日:2010-11-30

    IPC分类号: G06F9/46

    摘要: A method for verifying software includes monitoring a resource queue and a job queue, determining whether the resource queue and the job queue contain entries, and if both the resource queue and the job queue contain entries, then applying a scheduling policy to select a job, selecting a worker node as a best match for the characteristics of the job among the resource queue entries, assigning the job to the worker node, assigning parameters to the worker node for a job creation policy for creating new jobs in the job queue while executing the job, and assigning parameters to the worker node for a termination policy for halting execution of the job. The resource queue indicates worker nodes available to verify a portion of code. The job queue indicates one or more jobs to be executed by a worker node. A job includes a portion of code to be verified.

    摘要翻译: 一种用于验证软件的方法包括监视资源队列和作业队列,确定资源队列和作业队列是否包含条目,如果资源队列和作业队列都包含条目,则应用调度策略选择作业, 选择工作者节点作为资源队列条目中作业的特征的最佳匹配,将作业分配给工作节点,为作业创建策略分配参数到作业创建策略,以在执行作业队列时创建新作业 作业,并将参数分配给工作节点以终止策略以停止作业的执行。 资源队列指示可用于验证部分代码的工作节点。 作业队列指示要由工作节点执行的一个或多个作业。 作业包括要验证的一部分代码。