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

    公开(公告)号:US07496791B2

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

    申请号: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.

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

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

    公开(公告)号:US20070157180A1

    公开(公告)日:2007-07-05

    申请号:US11322966

    申请日:2005-12-30

    IPC分类号: G06F9/45

    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.

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

    Parameterized unit tests
    23.
    发明申请
    Parameterized unit tests 有权
    参数化单元测试

    公开(公告)号:US20070033440A1

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

    申请号:US11198569

    申请日:2005-08-04

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3684

    摘要: Separation of parameterized unit tests 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. Parameterized unit tests are used to populate behavioral summaries. Behavioral summaries are used later in future symbolic executions to emulate summarized methods. 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.

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

    Conformance testing of multi-threaded and distributed software systems
    24.
    发明申请
    Conformance testing of multi-threaded and distributed software systems 有权
    多线程和分布式软件系统的一致性测试

    公开(公告)号:US20060212759A1

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

    申请号:US11085624

    申请日:2005-03-18

    IPC分类号: G06F11/00

    CPC分类号: G06F11/36

    摘要: Techniques and tools for testing multi-threaded or distributed software systems are described. For example, a multi-threaded system is instrumented and executed to produce logs of events that are performed by each of its agents. The agent logs contain a totally ordered series of events per agent, as well as information about accesses to resources shared between the agents. With this information, a partial ordering of the events performed by all the agents is described for the execution. The agent logs are then multiplexed into one or more serialized event orderings, which can then be compared to a specification of the system in a conformance testing engine.

    摘要翻译: 描述了用于测试多线程或分布式软件系统的技术和工具。 例如,多线程系统被检测和执行以产生由其每个代理执行的事件的日志。 代理日志包含每个代理的完全有序的事件序列,以及有关访问代理之间共享的资源的信息。 利用该信息,描述所有代理执行的事件的部分排序用于执行。 代理日志然后被复用到一个或多个序列化的事件顺序中,然后可以将其与在一致性测试引擎中的系统的规范进行比较。

    Specification generation from implementations
    25.
    发明授权
    Specification generation from implementations 有权
    来自实现的规范生成

    公开(公告)号:US07844951B2

    公开(公告)日:2010-11-30

    申请号:US11322982

    申请日:2005-12-30

    IPC分类号: G06F9/44

    CPC分类号: G06F8/74

    摘要: A computerized method receives an implementation comprising a modifier method and an observer method of a class implementing an abstract data type. The method symbolically executes the modifier method to obtain constrained states, and applies the observer method in constrained states to obtain specialized axioms. The method then creates a specification from the obtained specialized axioms based on generalizing, merging and simplifying the specialized axioms.

    摘要翻译: 计算机化方法接收包括实现抽象数据类型的类的修饰符方法和观察者方法的实现。 该方法以符号方式执行修正方法以获得约束状态,并将受监视方法应用于约束状态以获得专门的公理。 然后,该方法基于通用化,合并和简化专用公理,从获得的专业公理中创建一个规范。

    Generalized comprehension in imperative languages
    26.
    发明授权
    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.

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

    Interactive domain configuration
    27.
    发明授权
    Interactive domain configuration 有权
    互动域配置

    公开(公告)号:US07685571B2

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

    申请号:US10650238

    申请日:2003-08-27

    IPC分类号: G06F9/44

    CPC分类号: G06F8/75 G06F8/74 G06F11/3672

    摘要: Described herein are methods and systems for interactively configuring and producing a data domain for various data structure elements of a computer program. A domain configuration manager is described which interactively receives domain configuration information corresponding to a data structure element, reads a reflection of the program and produces a data domain according to domain configuration information. The domain configuration manager is capable of producing a data domain for a data structure element according to such domain configuration information such as an explicit expression, inheritance or domain generation technique. The reflection of the computer program exposes the methods and functions of the program to be used in the explicit expression regardless of the visibility rules. Also, predicates and conditions can be used with domain generation techniques to further narrowly configure the data domains.

    摘要翻译: 这里描述了用于交互地配置和产生用于计算机程序的各种数据结构元素的数据域的方法和系统。 描述了一种域配置管理器,其交互地接收对应于数据结构元素的域配置信息,读取该程序的反射并根据域配置信息产生数据域。 域配置管理器能够根据诸如显式表达式,继承性或域生成技术之类的域配置信息为数据结构元素生成数据域。 计算机程序的反映公开了要在显式表达式中使用的程序的方法和功能,而不管可见性规则如何。 此外,谓词和条件可以与域生成技术一起使用,以进一步窄配置数据域。

    Access driven filtering
    28.
    发明授权
    Access driven filtering 有权
    访问驱动过滤

    公开(公告)号:US07444622B2

    公开(公告)日:2008-10-28

    申请号:US10650297

    申请日:2003-08-27

    IPC分类号: G06F9/45

    CPC分类号: G06F11/3684

    摘要: A test domain configuration module generates graphical user interfaces for identifying information about desired tests such as data types and domain configurations, and collects information used by other modules to generate tests. The identified information may include, for example, an abstract syntax, a static semantic, max counts on instances of data types, or costs of field accesses or data types for max path costs or max expression costs. A test input generator, generates test input for the identified and configured data types. In one case, the generated test inputs are generated as tree data structures. A predicate determines whether a generated test input follows semantic conditions. A test input evaluator counts instances of data types in, sums paths through, or sums total costs of, the generated test inputs. A test acceptance module saves test inputs acceptable to the predicate and the test input evaluator.

    摘要翻译: 测试域配置模块生成用于识别有关所需测试(例如数据类型和域配置)的信息的图形用户界面,并收集其他模块使用的信息以生成测试。 所识别的信息可以包括例如抽象语法,数据类型的实例的静态语义,最大计数,或者用于最大路径成本或最大表达成本的字段访问或数据类型的成本。 测试输入生成器,为识别和配置的数据类型生成测试输入。 在一种情况下,生成的测试输入被生成为树数据结构。 谓词确定生成的测试输入是否遵循语义条件。 测试输入评估器对数据类型的实例进行计数,总和通过生成的测试输入,或总计生成的测试输入的总和。 测试验收模块可以保存对谓词和测试输入评估器可接受的测试输入。

    Specification generation from implementations
    29.
    发明申请
    Specification generation from implementations 有权
    来自实现的规范生成

    公开(公告)号:US20070157169A1

    公开(公告)日:2007-07-05

    申请号:US11322982

    申请日:2005-12-30

    IPC分类号: G06F9/44 G06F9/45

    CPC分类号: G06F8/74

    摘要: The technology contributes the inference of formal specifications automatically, which can increase the acceptance of specifications. The technology introduces the symbolic execution of a modifier method to explore its behavior and then summarizing the results of the exploration using observer methods. This often results in concise, understandable specifications, which are a prerequisite for human analysis. Optionally, a generated specification is deemed sound and or complete. The specifications are presented as traditional pre-/post-condition specifications or parameterized unit tests. The former often serve as inputs to a program verification system, whereas the latter often provide inputs for tools that generate test cases.

    摘要翻译: 该技术自动推荐正式规格,这可以增加规格的接受程度。 该技术引入了修饰符方法的符号执行来探索其行为,然后使用观察器方法总结探索的结果。 这通常导致简明扼要的规范,这是人类分析的先决条件。 可选地,生成的规范被认为是声音和/或完整的。 规格表示为传统的前/后条件规范或参数化单元测试。 前者通常用作程序验证系统的输入,而后者通常为生成测试用例的工具提供输入。

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

    公开(公告)号:US20070033576A1

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

    申请号:US11197912

    申请日:2005-08-04

    IPC分类号: G06F9/44

    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.

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