Patents by Inventor Colin L. Campbell

Colin L. Campbell has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7926025
    Abstract: 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.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Colin L. Campbell, Margus Veanes, Nicolas Kicillof, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Patent number: 7747985
    Abstract: 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.
    Type: Grant
    Filed: March 18, 2005
    Date of Patent: June 29, 2010
    Assignee: Microsoft Corporation
    Inventors: Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte
  • Patent number: 7665072
    Abstract: 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.
    Type: Grant
    Filed: April 21, 2005
    Date of Patent: February 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Nikolai Tillman, Colin L. Campbell, Wolfgang Grieskamp, Lev Borisovich Nachmanson, Wolfram Schulte, Margus Veanes
  • Patent number: 7548911
    Abstract: Diagnosing problems in distributed systems. In one aspect, a model of a distributed system defines trace statements are generated by various nodes of the system and placed in log files. The log files are sent to an automatic validator that attempts to reconcile the trace statements against the model. Results of the attempt are indicated. In another aspect, trace statements are received by a multiplexer that creates an ordering via sequence numbers. The ordering is forwarded to an automatic validator to determine whether the trace statements indicate correct behavior.
    Type: Grant
    Filed: May 28, 2005
    Date of Patent: June 16, 2009
    Assignee: Microsoft Corporation
    Inventors: Siddhartha Sen, Joseph M. Joy, Nikolai Tillmann, Colin L. Campbell, Margus Veanes
  • Patent number: 7500149
    Abstract: 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.
    Type: Grant
    Filed: March 31, 2005
    Date of Patent: March 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Wolfgang Grieskamp, Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfram Schulte
  • Patent number: 7493544
    Abstract: State spaces are traversed to produce test cases, or test coverage. Test coverage is a test suite of sequences. Accepting states are defined. Expected costs are assigned to the test graph states. Strategies are created providing transitions to states with lower expected costs. Linear programs and other approximations are discussed for providing expected costs. Strategies are more likely to provide access to an accepting state, based on expected costs. Strategies are used to append transitions to test segments such that the new test segment ends in an accepting state.
    Type: Grant
    Filed: January 21, 2005
    Date of Patent: February 17, 2009
    Assignee: Microsoft Corporation
    Inventors: Andreas Blass, Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Michael Barnett, Nikolai Tillmann, Wolfgang Grieskamp, Wolfram Schulte, Yuri Gurevich
  • Patent number: 7363202
    Abstract: Exploration algorithms are relevant to the industrial practice of generating test cases from an abstract state machine whose runs define the predicted behavior of the software system under test. Here, a new exploration algorithm allows multiple state groupings to simultaneously guide the search for states that are interesting or relevant for testing. In some cases, the algorithm allows exploration to be optimized from exponential to linear complexity. An extended example is included that illustrates the use of the algorithm.
    Type: Grant
    Filed: January 20, 2005
    Date of Patent: April 22, 2008
    Assignee: Microsoft Corporation
    Inventors: Colin L. Campbell, Lev Borisovich Nachmanson, Margus Veanes, Wolfgang Grieskamp, Wolfram Schulte, Nikolai Tillmann
  • Patent number: 5764241
    Abstract: A method and system for modeling interactive animation and other integrated media includes support for a declarative modeling language and a system for presenting media represented in a declarative language model. The modeling language enables authors to represent natural or modeled media in a compact model, and it allows for the explicit description of time varying behavior as well as reactive behavior, which occurs in response to discrete events. The system compiles or interprets the model, optimizes it, and controls the presentation of media represented in it.
    Type: Grant
    Filed: November 30, 1995
    Date of Patent: June 9, 1998
    Assignee: Microsoft Corporation
    Inventors: Conal M. Elliott, Todd B. Knoblock, Greg D. Schechter, Salim S. AbiEzzi, Colin L. Campbell, Chun-Fu Ricky Yeung