# US 2008/0313616 A1 · Methods and systems for testing tool with comparative testing

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

- Number: US 2008/0313616 A1
- Document ID: US20080313616A1
- Status: Published application
- Kind: A1
- Application number: 11/763,416
- Filed: 2007-06-14
- Published: 2008-12-18
- Earliest claimed: 2007-06-14
- Assignees: Red Hat, Inc.
- Inventors: David H. Malcolm
- Web page: https://patentgrep.com/patent/US20080313616A1

## CPC

- 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)

## Abstract

Embodiments of the present invention provide a multi-input comparative testing tool. The present invention looks at the internal structure of the software being tested and compares the two pairs of internal structures. In the present invention, the testing tool is capable of receiving multiple program code files or data files as its input. For each program code file, the testing tool generates a collection of problem objects and compares pairs of the problem collections with each other. The present invention may also run on data files having program code. For example, the present invention is capable of testing extensible markup language (XML) files to determine if they validate against a schema. Problem objects that are in both collections are identified and set aside. The remaining problem objects are then marked either as being resolved or new depending in which collection they exist.

## Claims

### Claim 1

A method of performing comparative testing on contents of a file, said method comprising:
parsing contents of the file into a data structure;
generating problem objects for errors in the contents of the file, wherein each problem object indicates a class and a location in the data structure;
comparing the problem objects of the contents of the file to problem objects of at least one other version of the file; and
marking the problem objects of the contents of the file with a level of significance based on the comparison.

### Claim 2 (depends on 1)

The method of claim 1, wherein parsing the contents of the file comprises parsing the contents of the file into a tree data structure.

### Claim 3 (depends on 1)

The method of claim 1, wherein marking the problem objects comprises marking problem objects that are present in multiple versions of the contents of the file as a low level of significance.

### Claim 4 (depends on 1)

The method of claim 1, wherein marking the problem objects comprises marking problem objects that are present in all versions of the contents of the file as a false positive error.

### Claim 5 (depends on 1)

The method of claim 1, wherein marking the problem objects comprises marking problem objects that are present in only a new version of contents of the file as a high level of significance.

### Claim 6 (depends on 1)

The method of claim 1, wherein marking the problem objects comprises marking problem objects that are present in only a new version of contents of the file as a new problem.

### Claim 7 (depends on 1)

The method of claim 1, wherein marking the problem objects comprises marking problem objects that are present in only an old version of contents of the file as a medium level of significance.

### Claim 8 (depends on 1)

The method of claim 1, wherein marking the problem objects comprises marking problem objects that are present in only an old version of contents of the file as a problem that has been resolved.

### Claim 9 (depends on 1)

An apparatus comprising means configured to perform the method of claim 1.

### Claim 10 (depends on 1)

A computer readable medium comprising computer executable instructions for performing the method of claim 1.

### Claim 11

A method of identifying errors in program code based on comparative testing, wherein the comparative testing is performed on at least a first program code file having a first collection of problem objects and a second program code file having a second collection of problem objects, said method comprising:
receiving the first program code file and the second program code file;
determining respective structures of the first program code file and second program code file.
determining the first collection of problem objects and second collection of problem objects based on the structures of the first program code file and the second program code file;
deleting problem objects that are present in both the first and second collections;
marking remaining problem objects in the first collection as being resolved in the second program code file; and
marking remaining problem objects in the second collection as being new in the second program code file.

### Claim 12 (depends on 11)

The method of claim 11, wherein receiving the first program code file comprises receiving a program code file having a known set of errors.

### Claim 13 (depends on 11)

An apparatus comprising means configured to perform the method of claim 11.

### Claim 14 (depends on 11)

A computer readable medium comprising computer executable code for performing the method of claim 11.

### Claim 15

A comparative testing tool, said tool comprising:
an input configured to receive multiple program code files;
a problem collection generator that identifies collections of problem objects present in each of the program code files; and
a set of comparison engines configured to compare respective internal structures of the multiple program code files, pairs of problem collections and determine which problem objects have been resolved and which problem objects are new.

### Claim 16 (depends on 15)

The testing tool of claim 15, further comprising a parser that parses the multiple program code files into data structures that model contents of the file in the program code files.

### Claim 17 (depends on 15)

The testing tool of claim 15, wherein the problem collection generator is configured to identify collections of problem objects based on an object oriented model that classifies errors in the program code files based on a class and behavior.

### Claim 18 (depends on 17)

The testing tool of claim 17, wherein the problem collection generator is configured to determine pointers for the problem objects that indicate a location of the error in the program code files.

### Claim 19 (depends on 15)

The testing tool of claim 15, wherein the set of comparison engines are configured to compare pairs of collections of problem objects.

### Claim 20 (depends on 15)

The testing tool of claim 15, wherein the set of comparison engines are configured to compare a specific class of problem objects.
