# US 8,543,980 B2 · State driven testing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,980 B2
- Document ID: US8543980B2
- Status: Granted
- Kind: B2
- Application number: 12/861,794
- Filed: 2010-08-23
- Published: 2012-02-23
- Granted: 2013-09-24
- Earliest claimed: 2010-08-23
- Assignees: Micro Focus (US), Inc.
- Applicants: Ernst Ambichl; Dietmar Strasser
- Inventors: Ernst Ambichl; Dietmar Strasser
- Web page: https://patentgrep.com/patent/US8543980B2

## CPC

- G06F 11/3668: Testing of software
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 11/3696: {Methods or tools to render software testable}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Software testers can generate test scripts for validating and verifying software without navigating all possible actions or keywords. The current application state is described with one or more test objects. Each test object has one or more associated test methods and each test method can describe one or more state transitions. Only test methods accessible through test objects in the current application state are displayed to the software tester. The current state changes only if the state transition described by the test method selected by the software tester indicates a change from the current state.

## Claims

### Claim 1

A method for testing software comprising: a processor in communication with a database, the processor configured for: providing a current state, a plurality of test objects, and a plurality of test methods, wherein the current state includes a first set of test objects that has at least one test object, the test methods can be associated with one or more state transitions, and each test method is associated with one test object; identifying each test method associated with at least one test object included within the first set of test objects; obtaining input that selects a test method; modifying the current state if the selected test method is associated with a state transition that results in a state different from the current state, the modified current state including a second set of test objects that has at least one test object, wherein at least one test object is not included in both the first set of test objects and the second set of test objects; identifying each test method associated with at least one test object included within the second set of test objects; and generating a test script that executes the software.

### Claim 2 (depends on 1)

The method of claim 1, wherein the processor is further configured for: if the first set of test objects includes more than one test object, obtaining input that selects one of the test objects, and wherein for the identifying each test method associated with the at least one test object included within the first set of test objects, the at least one test object is the selected test object.

### Claim 3 (depends on 1)

The method of claim 1, wherein the identifying each test method associated with at least one test object included within the first set of test objects includes identifying each test methods associated with all test objects within the first set of test objects.

### Claim 4 (depends on 1)

The method of claim 1, wherein the test script describes both test methods and test objects.

### Claim 5 (depends on 1)

The method of claim 1, wherein the processor is further configured for maintaining an application state stack of consecutive states.

### Claim 6 (depends on 1)

The method of claim 1, wherein the plurality of test objects and the plurality of test methods with their associated state transitions represents the test framework, which describes all possible navigation through the software.

### Claim 7 (depends on 6)

The method of claim 6, wherein the current state can include multiple aspects and further comprising obtaining user input to select one of the multiple aspects.

### Claim 8 (depends on 7)

The method of claim 7, wherein the subset of available actions that is dependent on the current state is also dependant on the selected aspect.

### Claim 9 (depends on 6)

The method of claim 6, further comprising maintaining an application state stack of consecutive states.

### Claim 10

A method for testing software comprising a processor in communication with a database, the processor configured for: providing a current state and a plurality of actions, at least a portion of the actions are each associated with state transitions; presenting a user with a subset of available actions, the subset of available actions being dependent on the current state; obtaining user input to select an action from the subset of available actions; modifying the current state if the selected action is associated with a state transition; presenting a user with a modified subset of available actions, the modified subset of available actions being dependent on the modified current state; and generating a test script that executes the software.

### Claim 11

A computer program product embodied in a computer readable medium in communication with a processor and a database and comprising computer instructions for: providing a current state and a plurality of actions, at least a portion of the actions are each associated with state transitions; presenting a user with a subset of available actions, the subset of available actions being dependent on the current state; obtaining user input to select an action from the subset of available actions; modifying the current state if the selected action is associated with a state transition; presenting a user with a modified subset of available actions, the modified subset of available actions being dependent on the modified current state;
and generating a test script that executes the software.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein the current state can include multiple aspects and further comprising obtaining user input to select one of the multiple aspects.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the subset of available actions that is dependent on the current state is also dependant on the selected aspect.

### Claim 14 (depends on 11)

The computer program product of claim 11, further comprising maintaining an application state stack of consecutive states.

### Claim 15

A system comprising: a memory configured to store application states, test objects and test methods and their relationships; and a processor configured to generate a test script in response to a user selecting a test method from a subset of accessible test methods, the subset of accessible test methods being determined by the relationship between the test methods, the test objects and the application states.

### Claim 16 (depends on 15)

The system of claim 15, wherein the processor is further configured to maintain an application state stack and modify the application state stack in response to the selection of test methods.
