# US 10,482,001 B2 · Automated dynamic test case generation

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

- Number: US 10,482,001 B2
- Document ID: US10482001B2
- Status: Granted
- Kind: B2
- Application number: 14/835,825
- Filed: 2015-08-26
- Published: 2016-12-08
- Granted: 2019-11-19
- Earliest claimed: 2015-06-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Deborah A. Furman; Anthony T. Sofia
- Web page: https://patentgrep.com/patent/US10482001B2

## CPC

- G06F 11/3698: Environments for analysis, debugging or testing of software
- G01R 31/31835: {Analysis of test coverage or failure detectability}
- G01R 31/31937: {Timing aspects, e.g. measuring propagation delay (G01R31/3191 and G01R31/31922 take precedence; marginal testing G06F11/24)}
- G01R 31/44: Testing lamps
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G01R: MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES (indicating correct tuning of resonant circuits H03J3/12)

## Abstract

Embodiments of the present invention provide systems and methods for generating a set of test cases using a base test program. The base test program may be used as both a functional drive and as a performance measuring test case. From the base test program, additional key and value pairs may be added to the base test program to force specific test scenarios.

## Claims

### Claim 1

A method for dynamically generating automatic computer generated test cases, the method comprising, performing on a processor:
testing a software interface in a plurality of phases of an interface test, wherein the plurality of phases comprises a first phase and a second phase;
providing, as a part of the interface test, a base test, the base test configured to measure performance of the software interface, wherein the base test is designed to drive a variable amount of load for performance throughput;
for the plurality of phases, adding, to the base test, a plurality of key and value pairs, wherein the plurality of key and value pairs are associated with functional test variations related to the interface test;
generating a plurality of test cases from the base test, wherein the plurality of test cases comprises a set of aspects to be tested, the plurality of test cases covering each of the plurality of phases;
executing the plurality of test case;
for the first phase, adding, to the base test, a first key and value pair of the plurality of key and value pairs that are associated with a functional test variation related to an environment of the interface test; and
for the second phase, adding, to the base test, a second key and value pair of the plurality of key and value pairs that are associated with a functional test variation related to an actual test of the interface.

### Claim 2 (depends on 1)

The method of claim 1, wherein at least one of the plurality of key and value pairs is configured to enable tracing.

### Claim 3 (depends on 1)

The method of claim 1, wherein at least one of the plurality of key and value pairs is configured to capture diagnostics, responsive to detecting an error.

### Claim 4 (depends on 1)

The method of claim 1, wherein at least one of the plurality of key and value pairs comprises at least one of: a type of task, a recovery environment, a functional interaction, or an error injection.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
modifying the base test to introduce interactions between one or more tested interfaces.

### Claim 6 (depends on 1)

The method of claim 1, the method further comprising:
reporting, by the base test and during execution, an automatically generated test combination that does not execute; and
storing a list of that includes each automatically generated test combination that has been reported.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
introducing, iteratively, an environmental key and value pair as one of the plurality of key and value pairs, wherein the introduced environmental key and value pair determines which kind of tasks are requested to be used and which support recovery environments are to be established before calling one or more functions to be tested;
regenerating a set of specific test programs responsive to introducing additional functional key and value pairs that are specific for a particular type of associated function being tested;
extending the base test to drive a system test that tracks a duration of how long a program execution lasts and an amount of how much multi-tasking should be performed, wherein the extended duration overrides one or more key and value pairs of prior iterations; and
utilizing the base test as a functional driver, as a performance measuring test, and as a system thrasher.

### Claim 8 (depends on 1)

The method of claim 1, wherein each test case of the plurality of test cases corresponds to a unique combination of key and value pairs.

### Claim 9 (depends on 5)

The method of claim 5, wherein at least one of the key and value pairs is selected from a group consisting of a number of times a particular function is to be called, a variable size request for the particular function, a request delay, and a program execution duration.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
introducing, iteratively, an environmental key and value pair as one of the plurality of key and value pairs, wherein the introduced environmental key and value pair determines which kind of tasks are requested to be used and which support recovery environments are to be established before calling one or more functions to be tested.

### Claim 11 (depends on 7)

The method of claim 7, further comprising: regenerating a set of specific test programs responsive to introducing additional functional key and value pairs that are specific for a particular type of associated function being tested.

### Claim 12 (depends on 7)

The method of claim 7, further comprising: extending the base test to drive a system test that tracks a duration of how long a program execution lasts and an amount of how much multi-tasking should be performed, wherein the extended duration overrides one or more identifiers key and value pairs of prior iterations.

### Claim 13 (depends on 1)

The method of claim 1, further comprising:
utilizing the base test as a functional driver, as a performance measuring test, and as a system thrasher.

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
receiving feedback from the testing system; and
adding, dynamically, a particular program combination of the base test to an exclusion list such that the particular program combination does not run again in future executions responsive to encountering feedback comprising an error during execution.

### Claim 15 (depends on 1)

The method of claim 1, wherein:
the first phase is a setup phase;
the second phase is a test phase; and
the plurality of phases further comprises an interface cleanup phase.

### Claim 16 (depends on 12)

The method of claim 12, wherein: for the interface cleanup phase, adding, to the base test, a third key and value pair of the plurality of key and value pairs that is associated with a functional test variation related to interface cleanup.

### Claim 17 (depends on 13)

The method of claim 13, wherein the plurality of test cases has a variation count that reflects a total number of combinations of environment key values, actual test key values, and interface cleanup key values.
