# US 5,708,774 A · Automated testing of software application interfaces, object methods and commands

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

- Number: US 5,708,774 A
- Document ID: US5708774A
- Status: Granted
- Kind: A
- Application number: 08/685,373
- Filed: 1996-07-23
- Granted: 1998-01-13
- Earliest claimed: 1996-07-23
- Assignees: International Business Machines Corporation
- Inventors: Edward Barnes Boden
- Web page: https://patentgrep.com/patent/US5708774A

## CPC

- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Automated testing of software application interfaces, object methods and commands, including testing software using order-based genetic algorithms to search for and detect symptoms of software errors by generating test sequences which converge on points in invocation space more likely to cause error symptoms.

## Claims

### Claim 1

Method of operating a digital computer to generate symptoms of errors in source code, comprising the steps of:
a) generating from order-based genetic algorithms at a testing system a set of coded representations of sequences of function invocations;
b) executing said source code on a target system;
c) sending said set of coded representations to said target system;
d) interpreting on said target system the coded representations in said set to generate a sequence of function invocations;
e) interpreting function invocation results in sequence;
f) collecting said sequence of function invocations and returning said sequence and said results to said testing system;
g) evaluating said results to identify symptoms of errors.

### Claim 2 (depends on 1)

The method of claim 1, further comprising the steps of:
h) responsive to said evaluation results, generating a new set of coded representations of function invocations, and with that new set; and
i) repeating steps a through g.

### Claim 3 (depends on 2)

The method of claim 2, wherein step g) further comprises the steps of:
g1) performing a fitness evaluation, including:
maintaining a set of class object representations of the function invocations under test;
recognizing in said function invocation results those which match one of said coded representations; and
discovering the result category;
g2) repeating step g1) for each function invocation in the sequence;
g3) evaluating the invocation sequence independent of said results for its value in finding errors; and
g4) feeding said value and said result category into step h).

### Claim 4 (depends on 1)

The method of claim 1, wherein step e) further comprises the steps of:
e1) responsive to generation of information results, inserting information results in the collected sequence;
e2) responsive to generation of action results, inserting representations of the return code in said collected sequence; and
e3) responsive to generation of exception results, inserting representations of exception codes in said collected sequence.

### Claim 5 (depends on 1)

The method of claim 1, wherein said step d) further comprises the steps of:
d1) parsing said coded representations into commands;
d2) parsing each parameter; and
d3) constructing each parsed parameter into machine representations in sequence, including:
for scalar parameters, converting said coded representations into machine coding; and
for pointer parameters, constructing from said coded representation applications specific data types which are pointers to objects, structures, or the like.

### Claim 6

A system for detecting symptoms of software errors, comprising:
an order-based genetic algorithm for generating test sequences which converge on points in invocation space more likely to cause error symptoms; and
a test interface for interpreting and executing said test sequences, and returning execution results to said order-based genetic algorithm for use in generating subsequent test sequences.

### Claim 7 (depends on 6)

The system of claim 6 wherein said order-based genetic algorithm includes a cross population manager and an evaluation component.

### Claim 8 (depends on 7)

The system of claim 7 wherein said cross population manager comprises means for generating a first population of test sequences and subsequent populations of test sequences, each such sequence defining a plurality of calls or command invocations for execution by said test interface.

### Claim 9 (depends on 8)

The system of claim 8 wherein said evaluation component comprises means for executing a fitness function to provide an evaluated population of parent chromosomes for use by said cross population manager in deriving the child chromosomes defining a subsequent population.

### Claim 10 (depends on 9)

The system of claim 9 wherein said fitness function is a weighted sum of execution result factors.

### Claim 11

Apparatus for storing signals for controlling the operation of a digital computer, said signals comprising:
order-based genetic algorithm signals for operating said digital computer to generate test sequences which converge on points in invocation space more likely to cause error symptoms; and
test interface signals for operating said digital computer to interpret and execute said test sequences, and return execution results for use in generating subsequent test sequences.

### Claim 12

A digital transmission link for transmitting signals for controlling the operation of a digital computer, said signals comprising:
order-based genetic algorithm signals for operating said digital computer to generate test sequences which converge on points in invocation space more likely to cause error symptoms; and
test interface signals for operating said digital computer to interpret and execute said test sequences, and return execution results for use in generating subsequent test sequences.
