-
公开(公告)号:US07797687B2
公开(公告)日:2010-09-14
申请号:US11198569
申请日:2005-08-04
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之前的强化堆等于执行后的强化堆。 提供了一个强大的堆来表示由汇总的方法执行的状态变化。 扩展堆用于显式更新内存位置,例如 对象字段或数组元素。
-
公开(公告)号:US07584463B2
公开(公告)日:2009-09-01
申请号:US10650245
申请日:2003-08-27
CPC分类号: G06F9/463
摘要: A state component saves a present state of a program or model. This state component can be invoked by the program or model itself, thereby making state a first-class citizen. As the state of the program evolves from the saved state, the saved state remains for reflection and recall, for example, for testing, verification, transaction processing, etc. Using a state reference token, the saved state of the program or model can be accessed by the program or model. For example, the program or model by utilizing a state component, can return itself to the saved state. After returning to the saved state, a second execution path can be introduced without requiring re-execution of the actions leading to the saved state. In another example, the state space of an executing model is saved in order to generate inputs required to exercise a program or model.
摘要翻译: 状态组件保存程序或模型的当前状态。 该状态组件可以由程序或模型本身调用,从而使状态成为一流的公民。 随着程序状态从保存状态的演变,保存的状态保留用于反射和调用,例如用于测试,验证,事务处理等。使用状态引用令牌,程序或模型的保存状态可以是 由程序或模型访问。 例如,通过利用状态组件的程序或模型可以将自身返回到保存的状态。 返回到保存状态后,可以引入第二个执行路径,而不需要重新执行导致保存状态的动作。 在另一示例中,保存执行模型的状态空间,以便生成锻炼程序或模型所需的输入。
-
公开(公告)号: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.
摘要翻译: 用于使用数字处理器和程序在计算机存储器中测试程序的系统。 模拟行为发生器识别为模拟行为指定的界面。 该接口被识别为参数化单元测试的输入参数。 模拟行为生成器使用存根创建一个符号对象,用于接收到对存根的调用时返回符号值的调用和模拟行为。 符号执行器象征性地执行参数化单元测试,以获得被测实施的路径约束,并且至少一个路径约束包括响应于该存根的调用返回的符号。 约束求解器为路径提供了解决方案,包括分配给返回符号的具体值。 模拟行为生成器创建模拟对象,在执行被测实现时返回具体值。
-
公开(公告)号: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.
摘要翻译: 给出符号状态的符号项的有限域近似,给出符号状态的基本项的一些有限域。 对符号术语的符号子项递归地执行一种方法,提供域过度近似,然后可以将其提供给求解器以确定更准确的域。 该方法可以应用于广泛的系统术语,包括例如对象状态,数组和运行时类型。
-
公开(公告)号: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通过约束描述每个路径,自动生成测试用例。 参数化单元测试用于填充行为摘要。 行为概要将在今后的符号执行中被用来模拟汇总的方法。 提供了一个强大的堆来表示由汇总的方法执行的状态变化。 扩展堆用于显式更新内存位置,例如 对象字段或数组元素。
-
36.
公开(公告)号:US20060212759A1
公开(公告)日:2006-09-21
申请号:US11085624
申请日:2005-03-18
申请人: Colin Campbell , Lev Nachmanson , Margus Veanes , Michael Barnett , Nikolai Tillmann , Wolfgang Grieskamp , Wolfram Schulte
发明人: Colin Campbell , Lev Nachmanson , Margus Veanes , Michael Barnett , Nikolai Tillmann , Wolfgang Grieskamp , Wolfram Schulte
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.
摘要翻译: 描述了用于测试多线程或分布式软件系统的技术和工具。 例如,多线程系统被检测和执行以产生由其每个代理执行的事件的日志。 代理日志包含每个代理的完全有序的事件序列,以及有关访问代理之间共享的资源的信息。 利用该信息,描述所有代理执行的事件的部分排序用于执行。 代理日志然后被复用到一个或多个序列化的事件顺序中,然后可以将其与在一致性测试引擎中的系统的规范进行比较。
-
37.
公开(公告)号:US20110265067A1
公开(公告)日:2011-10-27
申请号:US12764103
申请日:2010-04-21
申请人: Wolfram Schulte , Nikolai Tillmann , Michal J. Moskal , Manuel A. Fahndrich , Daniel JP Leijen , Barend H. Venter
发明人: Wolfram Schulte , Nikolai Tillmann , Michal J. Moskal , Manuel A. Fahndrich , Daniel JP Leijen , Barend H. Venter
IPC分类号: G06F9/45
CPC分类号: G06F9/45516 , G06F8/456 , G06F9/445 , G06F9/449
摘要: A tracing just-in-time (TJIT) compiler system is described for performing parallelization of code in a runtime phase in the execution of code. Upon detecting a hot loop during the execution of the code, the compiler system extracts trace information from sequentially recorded traces. In a first phase, the compiler system uses the trace information to identify at least one group of operation components that can be operated on in a parallel manner. In a second phase, the compiler system provides instructions which allocate the group of operation components to plural processing resources. A native code generator module carries out those instructions by recompiling native code that directs the operation of a native system to perform parallel processing. The compiler system terminates a group if it encounters program data in a loop iteration that is not consistent with previously encountered predicated information (upon which it records a new trace in a sequential manner).
摘要翻译: 描述了即时(TJIT)跟踪编译器系统,用于在执行代码的运行时阶段执行代码并行化。 在执行代码期间检测到热循环时,编译器系统从顺序记录的轨迹提取跟踪信息。 在第一阶段,编译器系统使用跟踪信息来识别可以以并行方式操作的至少一组操作组件。 在第二阶段,编译器系统提供将操作组分组分配给多个处理资源的指令。 本地代码生成器模块通过重新编译引导本地系统的操作来执行并行处理的本机代码来执行这些指令。 如果编译器系统遇到与以前遇到的预定信息不一致的循环迭代中遇到程序数据(在其中以顺序方式记录新的跟踪),则终止组。
-
公开(公告)号:US07926025B2
公开(公告)日:2011-04-12
申请号:US11322781
申请日:2005-12-30
申请人: Colin L. Campbell , Margus Veanes , Nicolas Kicillof , Nikolai Tillmann , Wolfgang Grieskamp , Wolfram Schulte
发明人: Colin L. Campbell , Margus Veanes , Nicolas Kicillof , Nikolai Tillmann , Wolfgang Grieskamp , Wolfram Schulte
IPC分类号: G06F9/44
CPC分类号: G06F8/10 , G06F11/3672
摘要: A model composition environment can allow for description of fill or partial symbolic system behavior, as well as the combination of models of specific features into compound models. Compositional operators can include intersection, concatenation, substitution, alternating refinement, as well as a set of regular expression-like operators. Models called “action machines” can represent object-oriented, reactive programs, and an action machine may be composed with another action machine using a compositional operator. This can allow for testing of particular scenarios or behaviors.
摘要翻译: 模型组合环境可以允许对填充或部分符号系统行为的描述,以及将特定特征的模型组合到复合模型中。 组合运算符可以包括交集,连接,替换,交替细化,以及一组正则表达式运算符。 称为“动作机器”的模型可以表示面向对象的,反应性的程序,并且动作机器可以由使用组合操作符的另一动作机构组成。 这可以允许测试特定的场景或行为。
-
公开(公告)号:US20100011194A1
公开(公告)日:2010-01-14
申请号:US12551345
申请日:2009-08-31
IPC分类号: G06F9/312
CPC分类号: G06F9/463
摘要: A state component saves a present state of a program or model. This state component can be invoked by the program or model itself, thereby making state a first-class citizen. As the state of the program evolves from the saved state, the saved state remains for reflection and recall, for example, for testing, verification, transaction processing, etc. Using a state reference token, the saved state of the program or model can be accessed by the program or model. For example, the program or model by utilizing a state component, can return itself to the saved state. After returning to the saved state, a second execution path can be introduced without requiring re-execution of the actions leading to the saved state. In another example, the state space of an executing model is saved in order to generate inputs required to exercise a program or model.
摘要翻译: 状态组件保存程序或模型的当前状态。 该状态组件可以由程序或模型本身调用,从而使状态成为一流的公民。 随着程序状态从保存状态的演变,保存的状态保留用于反射和调用,例如用于测试,验证,事务处理等。使用状态引用令牌,程序或模型的保存状态可以是 由程序或模型访问。 例如,通过利用状态组件的程序或模型可以将自身返回到保存的状态。 返回到保存状态后,可以引入第二个执行路径,而不需要重新执行导致保存状态的动作。 在另一示例中,保存执行模型的状态空间,以便生成锻炼程序或模型所需的输入。
-
公开(公告)号:US07500226B2
公开(公告)日:2009-03-03
申请号:US10792555
申请日:2004-03-02
CPC分类号: G06F11/3624
摘要: Constraints are defined in view of a program implementation. Constraints check program state or variables to maintain data consistency. A constraint component determines a constraint's scope and variables upon which a constraint depends. Program flow is altered so constraints are checked whenever a variable upon which a constraint depends is updated. Optionally, program flow is altered dynamically to re-establish constraints whenever a variable upon which a constraint depends is updated. Re-establishing constraints provides efficiency, since a program flow is altered for a minimum cost based on a present evolving minimum set of active constraint-variable relationships.
摘要翻译: 限制是根据程序实现而定义的。 约束检查程序状态或变量以保持数据的一致性。 约束组件确定约束所依赖的约束的范围和变量。 更改程序流程,只要更新约束所依赖的变量,就会检查约束。 可选地,当更新约束所依赖的变量时动态地改变程序流程以重新建立约束。 重新建立约束提供了效率,因为基于当前演变的最小主动约束变量关系集,程序流被改变为最小成本。
-
-
-
-
-
-
-
-
-