# US 9,519,571 B2 · Method for analyzing transaction traces to enable process testing

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

- Number: US 9,519,571 B2
- Document ID: US9519571B2
- Status: Granted
- Kind: B2
- Application number: 11/777,340
- Filed: 2007-07-13
- Published: 2009-01-15
- Granted: 2016-12-13
- Earliest claimed: 2007-07-13
- Assignees: International Business Machines Corporation
- Applicants: Zhong Jie Li; He Hui Liu; Naomi M. Mitsumori; Krishna Ratakonda; Hua Fang Tan; Jun Zhu
- Inventors: Zhong Jie Li; He Hui Liu; Naomi M. Mitsumori; Krishna Ratakonda; Hua Fang Tan; Jun Zhu
- Web page: https://patentgrep.com/patent/US9519571B2

## CPC

- G06F 11/3676: {for coverage analysis}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are provided for analyzing testing coverage of one or more software modules to provide process coverage statistics. The techniques include obtaining one or more coverage measures from a test specification document, performing a trace on each of the one or more coverage measures during a test, analyzing each trace to generate a run-time service choreography model for a process, wherein the model includes each of one or more service choreography patterns occurring in the process, and using the model to provide statistical data on test coverage according to a process definition.

## Claims

### Claim 1

A method for analyzing testing coverage of a plurality of software modules to provide process level coverage statistics using traces captured during production time, comprising the steps of:
obtaining one or more coverage measures from a test specification document;
performing said trace during production time on each of the one or more coverage measures during a test;
analyzing, using at least one hardware device, each trace captured during production time to create a run-time service choreography model for a process that utilizes said plurality of software modules, wherein the model includes each of one or more service choreography patterns occurring in the process, wherein said plurality of software modules comprise a plurality of distributed loosely coupled services choreographed to perform said process, wherein the analysis comprises an evaluation of a structural integrity of said plurality of distributed loosely coupled services that are choreographed to perform said process, wherein said structural integrity verifies a correctness of flow between said plurality of software modules;
using the run-time service choreography model to provide statistical data on the process level test coverage according to a process definition;
comparing a frequency of each of the one or more service choreography patterns generated in the run-time service choreography model with a frequency of each of one or more service choreography patterns derived from the process; and
prioritizing testing of a plurality of said service choreography patterns based on a frequency of occurrence in a production environment.

### Claim 2 (depends on 1)

The method of claim 1, wherein the process comprises an enterprise process.

### Claim 3 (depends on 1)

The method of claim 1, wherein the statistical data comprises patterns covered in the model, patterns uncovered in the model, frequency of co-occurrence patterns in the model and inter-process correlation statistics.

### Claim 4 (depends on 1)

The method of claim 1, wherein the one or more coverage measures comprise one or more coverage measures from a plurality of vendors.

### Claim 5 (depends on 1)

The method of claim 1, wherein each choreography pattern comprises a particular transaction.

### Claim 6 (depends on 1)

The method of claim 1, wherein the one or more coverage measures comprise one or more service requests and corresponding service responses.

### Claim 7 (depends on 1)

The method of claim 1, wherein the step of performing said trace during production time on each of the one more coverage measures during a test comprises the steps of:
parsing the trace into a set of transactions according to a correlation ID in the trace; and
building a prefix-tree acceptor for the set of transactions to obtain one or more service invocation patterns, wherein said prefix-tree acceptor is used to identify one or more transactions from the trace data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the step of analyzing each trace captured during production time comprises the steps of:
generating all feasible execution paths of the process; and
merging a set of test paths together if each test path has a same service operation invocation sequence.

### Claim 9

An apparatus comprising:
a memory; and
at least one hardware device, coupled to the memory, operative to implement the following steps:
obtaining one or more coverage measures from a test specification document;
performing a trace during production time on each of the one or more coverage measures during a test;
analyzing, using at least one hardware device, each trace captured during production time to create a run-time service choreography model for a process that utilizes said plurality of software modules, wherein the model includes each of one or more service choreography patterns occurring in the process, wherein said plurality of software modules comprise a plurality of distributed loosely coupled services choreographed to perform said process, wherein the analysis comprises an evaluation of a structural integrity of said plurality of distributed loosely coupled services that are choreographed to perform said process, wherein said structural integrity verifies a correctness of flow between said plurality of software modules;
using the run-time service choreography model to provide statistical data on test coverage according to a process definition;
comparing a frequency of each of the one or more service choreography patterns generated in the run-time service choreography model with a frequency of each of one or more service choreography patterns derived from the process; and
prioritizing testing of a plurality of said service choreography patterns based on a frequency of occurrence in a production environment.

### Claim 10

A computer program product comprising a non-transitory computer useable readable recordable storage medium having computer useable program code for analyzing testing coverage of one or more software modules to provide process level coverage statistics using traces during production time, said computer program product including:
computer useable program code for obtaining one or more coverage measures from a test specification document;
computer useable program code for performing said trace during production time on each of the one or more coverage measures during a test;
computer useable program code for analyzing, using at least one hardware device, each trace to create a run-time service choreography model for a process that utilizes said plurality of software modules, wherein the model includes each of one or more service choreography patterns occurring in the process, wherein said plurality of software modules comprise a plurality of distributed loosely coupled services choreographed to perform said process, wherein the analysis comprises an evaluation of a structural integrity of said plurality of distributed loosely coupled services that are choreographed to perform said process, wherein said structural integrity verifies a correctness of flow between said plurality of software modules;
using the run-time service choreography model to provide statistical data on test coverage according to a process definition;
comparing a frequency of each of the one or more service choreography patterns generated in the run-time service choreography model with a frequency of each of one or more service choreography patterns derived from the process; and
prioritizing testing of a plurality of said service choreography patterns based on a frequency of occurrence in a production environment.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the process comprises an enterprise process.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein the statistical data comprises patterns covered in the model, patterns uncovered in the model, frequency of co-occurrence patterns in the model and inter-process correlation statistics.

### Claim 13 (depends on 10)

The computer program product of claim 10, wherein the one or more coverage measures comprise at least one of one or more coverage measures from a plurality of vendors and one or more service requests and corresponding service responses.

### Claim 14 (depends on 10)

The computer program product of claim 10, wherein each choreography pattern comprises a particular transaction.

### Claim 15 (depends on 10)

The computer program product of claim 10, wherein the computer useable program code for performing said trace during production time on each of the one more coverage measures during a test comprises:
computer useable code for parsing the trace into a set of transactions according to a correlation ID in the trace; and
computer useable code for building a prefix-tree acceptor for the set of transactions to obtain one or more service invocation patterns.

### Claim 16 (depends on 10)

The computer program product of claim 10, wherein the computer useable program code for analyzing each trace captured during production time comprises:
computer useable code for generating all feasible execution paths of the process; and
computer useable code for merging a set of test paths together if each test path has a same service operation invocation sequence.

### Claim 17 (depends on 1)

The method of claim 1, wherein said process level test coverage can be generated by one or more of testers and an automation tool before said testing is executed.
