Generalized comprehension in imperative languages
    1.
    发明授权
    Generalized comprehension in imperative languages 有权
    命令语言的广义理解

    公开(公告)号:US07730462B2

    公开(公告)日:2010-06-01

    申请号:US10765486

    申请日:2004-01-27

    IPC分类号: G06F9/45

    CPC分类号: G06F8/31

    摘要: The present invention relates to a system and methodology to enable programming of generalized comprehensions in an imperative language environment. In one aspect, a system is provided to facilitate employment of user-definable and generalized comprehensions in accordance with imperative languages. The system includes a language component to enable programming of comprehension notations in an imperative language and an interface component to describe a meaning of the comprehension notations. A translation component facilitates execution of the comprehension notations in accordance with the imperative language.

    摘要翻译: 本发明涉及一种能够在命令式语言环境中对广义理解进行编程的系统和方法。 在一方面,提供了一种系统,以便于根据命令式语言来使用用户可定义和广义的理解。 该系统包括一个语言组件,用于使命令语言中的理解符号编程,以及界面组件来描述理解符号的含义。 翻译组件有助于按照强制性语言执行理解符号。

    Approximating finite domains in symbolic state exploration
    2.
    发明授权
    Approximating finite domains in symbolic state exploration 有权
    在符号状态探索中近似有限域

    公开(公告)号:US08533680B2

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

    申请号:US11322966

    申请日:2005-12-30

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3672

    摘要: A finite domain approximation for symbolic terms of a symbolic state is derived, given some finite domains for basic terms of the symbolic state. A method is executed recursively for symbolic sub-terms of a symbolic term, providing a domain over-approximation that can then be provided to a solver for determining a more accurate domain. The method can be applied to a wide array of system terms, including, for example, object states, arrays, and runtime types.

    摘要翻译: 给出符号状态的符号项的有限域近似,给出符号状态的基本项的一些有限域。 对符号术语的符号子项递归地执行一种方法,提供域过度近似,然后可以将其提供给求解器以确定更准确的域。 该方法可以应用于广泛的系统术语,包括例如对象状态,数组和运行时类型。

    Symbolic execution of object oriented programs with axiomatic summaries
    3.
    发明授权
    Symbolic execution of object oriented programs with axiomatic summaries 失效
    具有公理概要的面向对象程序的象征性执行

    公开(公告)号:US08046746B2

    公开(公告)日:2011-10-25

    申请号:US11197912

    申请日:2005-08-04

    IPC分类号: G06F9/44 G06F11/00

    CPC分类号: G06F11/3688

    摘要: Symbolic execution identifies possible execution paths of a computer program or method, each having certain constraints over the input values. The symbolic execution also records updates of memory locations, e.g. updates of the fields of symbolic objects in the heap of an object oriented program, involving a description of the previous heap, the updated symbolic object, a field identification, and a newly assigned symbolic value. The symbolic execution can also record calls to summarized methods, involving a description of previous calls, an identification of the summarized methods, and its symbolic arguments. The behavior of summarized methods can be expressed by axioms. Axioms describe the relationship between summarized methods under certain conditions. Axioms can be generated from parameterized unit tests. A parameterized unit test is a method with parameters which executes a sequence of calls to methods of an implementation under test; it asserts constraints over the inputs and outputs of the calls. A software testing program receives a parameterized unit test of an implementation under test, and symbolically executes the parameterized unit test. It can re-use axioms generated from other parameterized unit tests, and use them to emulate summarized methods.

    摘要翻译: 符号执行标识计算机程序或方法的可能的执行路径,每一个对输入值都有一定的约束。 符号执行还记录存储器位置的更新,例如。 面向对象程序的堆中的符号对象的字段的更新,涉及先前堆的描述,更新的符号对象,字段标识和新分配的符号值。 符号执行还可以记录对汇总方法的调用,包括对先前调用的描述,汇总方法的标识及其符号参数。 总结方法的行为可以用公理来表示。 公理在某些条件下描述了总结方法之间的关系。 可以通过参数化单元测试生成公理。 参数化单元测试是一种具有参数的方法,该参数执行对被测实施方法的调用序列; 它声明了对呼叫的输入和输出的限制。 软件测试程序接收被测实施的参数化单元测试,并符号地执行参数化单元测试。 它可以重新使用从其他参数化单元测试生成的公理,并使用它们来模拟汇总的方法。

    Unit test generalization
    4.
    发明授权
    Unit test generalization 有权
    单元测试概括

    公开(公告)号:US07587636B2

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

    申请号:US11323032

    申请日:2005-12-30

    IPC分类号: G06F11/36

    CPC分类号: G06F11/3684 G06F11/00

    摘要: A computer system provides a test program and one or more unit tests, such as a traditional unit test and or a parameterized unit test. The system also includes a constraint solver, a theorem prover, an implementation under test, a symbolic executor, a generalizor, and generated test cases. The generalizor receives a traditional unit tests as input, and modifies the traditional unit test into a parameterized unit test. The modification includes replacing plural concrete values in the traditional unit test with symbols, and exporting the symbols into a signature of the parameterized unit test. A symbolic executor identifies constraints while symbolically executing the created parameterized unit test of the implementation under test. A constraint solver and or theorem prover generates a set of test cases by solving for values that satisfy the series of constraints. The test program executes the automatically generated test cases.

    摘要翻译: 计算机系统提供测试程序和一个或多个单元测试,例如传统单元测试和参数化单元测试。 该系统还包括一个约束求解器,一个定理证明器,一个被测试的实现,一个符号执行器,一个通用程序和生成的测试用例。 通用人员接受传统的单元测试作为输入,并将传统的单元测试修改为参数化单元测试。 修改包括用符号替换传统单元测试中的多个具体值,并将符号导出到参数化单元测试的签名中。 符号执行器在符号执行被测实施的参数化单元测试时识别约束。 约束求解器和/或定理证明器通过求解满足一系列约束的值来生成一组测试用例。 测试程序执行自动生成的测试用例。

    Generating finite state machines for software systems with asynchronous callbacks
    5.
    发明授权
    Generating finite state machines for software systems with asynchronous callbacks 有权
    为具有异步回调的软件系统生成有限状态机

    公开(公告)号:US07500149B2

    公开(公告)日:2009-03-03

    申请号:US11097684

    申请日:2005-03-31

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3672

    摘要: Techniques and tools for generating finite state machines (“FSMs”) for a software system with asynchronous callbacks are described. For example, method invocations in a model of the software system are partitioned into observable and controlled method invocations. The controlled method invocations are those which can be run from a test harness while the observed method invocations are those which are observed asynchronously as they are invoked in the system. An FSM is created with observation and control nodes such that observable transitions are found from observation nodes and controlled transitions are found from control nodes. If a state of the model contains both controlled and observable invocations, a timeout transition is added to the FSM to give an implementation time to come up with an observed method invocation before continuing to controlled invocations.

    摘要翻译: 描述了用于为具有异步回调的软件系统生成有限状态机(“FSM”)的技术和工具。 例如,软件系统模型中的方法调用被划分为可观察和受控的方法调用。 受控方法调用是可以从测试工具运行的方法调用,而观察到的方法调用是在系统中调用时异步观察的方法调用。 创建具有观察和控制节点的FSM,使得从观察节点找到可观察的转变,并且从控制节点找到受控的转变。 如果模型的状态包含受控和可观察的调用,则会向FSM添加一个超时转换,以便在继续控制调用之前给出一个实现时间来提供观察到的方法调用。

    Mock object generation by symbolic execution
    7.
    发明申请
    Mock object generation by symbolic execution 有权
    通过符号执行模拟对象生成

    公开(公告)号:US20070033442A1

    公开(公告)日:2007-02-08

    申请号:US11322967

    申请日:2005-12-30

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3684 G06F11/00

    摘要: A system for testing programs using a digital processor and programs in computer memory. A mock behavior generator identifies an interface indicated for mock behavior. The interface is identified as an input parameter of a parameterized unit test. The mock behavior generator creates a symbolic object with stubs to receive calls and mock behavior that returns symbolic values upon receiving a call to the stub. A symbolic executor, symbolically executes the parameterized unit test to obtain path constraints for an implementation under test, and at least one path constraint includes the symbol returned in response to the call to the stub. A constraint solver provides solutions for the paths including concrete values assigned to returned symbols. The mock behavior generator creates mock objects that return the concrete values when the implementation under test is executed.

    摘要翻译: 用于使用数字处理器和程序在计算机存储器中测试程序的系统。 模拟行为发生器识别为模拟行为指定的界面。 该接口被识别为参数化单元测试的输入参数。 模拟行为生成器使用存根创建一个符号对象,用于接收到对存根的调用时返回符号值的调用和模拟行为。 符号执行器象征性地执行参数化单元测试,以获得被测实施的路径约束,并且至少一个路径约束包括响应于该存根的调用返回的符号。 约束求解器为路径提供了解决方案,包括分配给返回符号的具体值。 模拟行为生成器创建模拟对象,在执行被测实现时返回具体值。

    Generating a test suite from an abstract state machine

    公开(公告)号:US07088864B2

    公开(公告)日:2006-08-08

    申请号:US10071524

    申请日:2002-02-08

    IPC分类号: G06K9/36 G06K9/46

    摘要: A method and apparatus to generate a test suite from an abstract state machine (ASM) involves generating a finite state machine (FSM) for the ASM, and generating the test suite from the FSM. An initial state of the ASM is selected. A first encoding having a plurality of bits is generated to represent the initial state. Each bit of the first encoding represents a result of an evaluation of a non-trivial guard condition of the ASM. The initial state is associated with the first encoding in the data structure for the FSM. At least one other states of the ASM are identified that result from applying at least one actions of the ASM to the initial state. At least one other encodings are generated, each of the at least one other encodings corresponding to one of the at least one other states, and for each one of the at least one other states, when the corresponding of the at least one other encodings is not the same as the any one encoding already associated with a state in the data structure, data is included in the data structure associating the one of the at least one other states and a corresponding of the at least one other encodings.

    Parameterized unit tests with behavioral purity axioms
    9.
    发明授权
    Parameterized unit tests with behavioral purity axioms 有权
    参数化单位测试与行为纯度公理

    公开(公告)号:US07797687B2

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

    申请号:US11198569

    申请日:2005-08-04

    IPC分类号: G06F9/44 G06F11/00

    CPC分类号: G06F11/3684

    摘要: Separation of parameterized unit tests (PUTs) from specific test cases supports many benefits including automated test case generation. Symbolic execution assigns symbolic input variables to parameters of a parameterized unit test. Path constraints of an implementation under test (IUT) are identified during symbolic execution. A constraint solver automatically generates test cases by determining the test inputs that satisfy one of more paths, each described by constraints, through the IUT. PUTs are used to populate behavioral summaries. Behavioral summaries are used later in future symbolic executions to emulate summarized methods. Behavioral summaries comprise behavioral purity axioms. Behavioral purity axioms require that an intensional heap before execution of a PUT be equal to the intensional heap after execution. An intensional heap is provided to represent state changes performed by summarized methods. The extensional heap is used to explicitly update memory locations, e.g. object fields or array elements.

    摘要翻译: 从特定测试用例分离参数化单元测试(PUT)支持许多好处,包括自动测试用例生成。 符号执行将符号输入变量分配给参数化单元测试的参数。 在符号执行期间识别被测实施(IUT)的路径约束。 约束求解器通过确定满足一个更多路径的测试输入,通过IUT通过约束描述每个路径,自动生成测试用例。 PUT用于填充行为摘要。 行为概要将在今后的符号执行中被用来模拟汇总的方法。 行为概要包括行为纯度公理。 行为纯度公理要求执行PUT之前的强化堆等于执行后的强化堆。 提供了一个强大的堆来表示由汇总的方法执行的状态变化。 扩展堆用于显式更新内存位置,例如 对象字段或数组元素。

    Generating test cases for software with complex preconditions
    10.
    发明授权
    Generating test cases for software with complex preconditions 有权
    为具有复杂前提条件的软件生成测试用例

    公开(公告)号:US07665072B2

    公开(公告)日:2010-02-16

    申请号:US11112282

    申请日:2005-04-21

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3684

    摘要: Techniques and tools for generating test cases for methods or programs with input preconditions are described. For example, after finding feasible control flow paths for a tested method along with each path's associated input conditions, a new program is created which tests these conditions along with the precondition. By analyzing this new program's control flow graph, a class of test cases is found while avoiding inefficiencies created by doing complete searches of paths through the combined control flow graph of the precondition and the method. Additional efficiencies are introduced by partitioning a control flow graph for the precondition into branched and straight sections.

    摘要翻译: 描述用于为具有输入前提条件的方法或程序生成测试用例的技术和工具。 例如,在为每个路径的相关输入条件找到可行的控制流路之后,创建一个与前提条件一起测试这些条件的新程序。 通过分析这个新程序的控制流图,发现了一类测试用例,同时避免了通过前提条件和方法的组合控制流程图完成对路径的搜索而产生的低效率。 通过将前提条件的控制流程图划分为分支和直线部分来引入额外的效率。