# US 12,007,878 B2 · Testing and deploying targeted versions of application libraries within a software application

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

- Number: US 12,007,878 B2
- Document ID: US12007878B2
- Status: Granted
- Kind: B2
- Application number: 17/713,459
- Filed: 2022-04-05
- Published: 2023-10-05
- Granted: 2024-06-11
- Earliest claimed: 2022-04-05
- Assignees: Fmr LLC
- Applicants: Fmr LLC
- Inventors: Jon Freitag; Fatih Ergin; Ravi Shankar; Pogachetla Amjad Ahamed
- Web page: https://patentgrep.com/patent/US12007878B2

## CPC

- G06F 11/368: {for test version control, e.g. updating test cases to a new software version}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/3616: {using software metrics}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and apparatuses are described for testing and deploying targeted versions of application libraries within a software application. A computing device selects a software application comprising application libraries each associated with a current version identifier. The computing device identifies a target version of one or more application libraries, the target version associated with a different version identifier than the current identifier. The computing device defines a software application build for the software application incorporating the identified target versions of the application libraries, and deploys the application build to a test computing environment. The computing device executes tests of the software application build in the test environment, and captures test execution data for the target versions of the libraries in the software application build. The computing device deploys the software application build including the target versions of the application libraries to a production computing environment based upon the test execution data.

## Claims

### Claim 1

A system for testing and deploying targeted versions of application libraries within a software application, the system comprising a computing device with a memory for storing computer-executable instructions and a processor that executes the computer-executable instructions to:
select a software application comprising one or more application libraries each associated with a current version identifier;
identify a target version of one or more of the application libraries, the target version associated with a different version identifier than the current version identifier, comprising:
generating one or more target version scenarios for display on a remote computing device, each target version scenario comprising a definition of which target version of an application library to include in the software application build,
receiving a selection of one of the target version scenarios from the remote computing device, and
retrieving, from a library database, the target version of the application library for use in the software application build based upon an attribute in the selected target version scenario;
define a software application build for the software application, the software application build incorporating the identified target versions of the application libraries;
deploy the software application build to a test computing environment;
execute one or more tests of the software application build in the test computing environment;
capture test execution data for one or more target versions of the application libraries in the software application build; and
deploy the software application build including the target versions of the application libraries to a production computing environment based upon the test execution data.

### Claim 2 (depends on 1)

The system of claim 1, wherein generating one or more target version scenarios comprises:
determining one or more common attributes for a plurality of application libraries; and
generating the target version scenarios based upon the common attributes.

### Claim 3 (depends on 2)

The system of claim 2, wherein the common attributes comprise an end of life attribute, a critical vulnerability attribute, a deprecation attribute, or a dependency attribute.

### Claim 4 (depends on 3)

The system of claim 3, wherein the definition of which target version to include in the software application build comprises a latest version of the application library, a latest sub-version of the application library, or a latest version of the application library with no critical vulnerabilities.

### Claim 5 (depends on 1)

The system of claim 1, wherein the test execution data comprises an error generated by one or more of the target versions of the application libraries in the software application build, a missing data value generated by one or more of the target versions of the application libraries in the software application build, or a test failure message generated by one or more of the target versions of the application libraries in the software application build.

### Claim 6 (depends on 1)

The system of claim 1, wherein deploying the software application build including the target versions of the application libraries to a production computing environment based upon the test execution data comprises determining that one or more of the tests had successful execution for the software application build in the test computing environment.

### Claim 7 (depends on 1)

The system of claim 1, wherein the computing device determines that one or more of the tests did not have successful execution for the software application build in the test computing environment and reverses deployment of the software application build including the target versions of the application libraries to the production computing environment.

### Claim 8 (depends on 1)

The system of claim 1, wherein deploying the software application build to a test computing environment comprises provisioning the test computing environment, including initializing one or more virtual machines for execution of the software application build.

### Claim 9 (depends on 8)

The system of claim 8, wherein the computing device tears down the test computing environment upon conclusion of the test execution and results capture.

### Claim 10

A computerized method of testing and deploying targeted versions of application libraries within a software application, the method comprising:
selecting, by a computing device, a software application comprising one or more application libraries each associated with a current version identifier;
identifying, by the computing device, a target version of one or more of the application libraries, the target version associated with a different version identifier than the current version identifier, comprising:
generating one or more target version scenarios for display on a remote computing device, each target version scenario comprising a definition of which target version of an application library to include in the software application build,
receiving a selection of one of the target version scenarios from the remote computing device, and
retrieving, from a library database, the target version of the application library for use in the software application build based upon an attribute in the selected target version scenario;
defining, by the computing device, a software application build for the software application, the software application build incorporating the identified target versions of the application libraries;
deploying, by the computing device, the software application build to a test computing environment;
executing, by the computing device, one or more tests of the software application build in the test computing environment;
capturing, by the computing device, test execution data for one or more target versions of the application libraries in the software application build; and
deploying, by the computing device, the software application build including the target versions of the application libraries to a production computing environment based upon the test execution data.

### Claim 11 (depends on 10)

The method of claim 10, wherein generating one or more target version scenarios comprises:
determining one or more common attributes for a plurality of application libraries; and
generating the target version scenarios based upon the common attributes.

### Claim 12 (depends on 11)

The method of claim 11, wherein the common attributes comprise an end of life attribute, a critical vulnerability attribute, a deprecation attribute, or a dependency attribute.

### Claim 13 (depends on 12)

The method of claim 12, wherein the definition of which target version to include in the software application build comprises a latest version of the application library, a latest sub-version of the application library, or a latest version of the application library with no critical vulnerabilities.

### Claim 14 (depends on 10)

The method of claim 10, wherein the test execution data comprises an error generated by one or more of the target versions of the application libraries in the software application build, a missing data value generated by one or more of the target versions of the application libraries in the software application build, or a test failure message generated by one or more of the target versions of the application libraries in the software application build.

### Claim 15 (depends on 10)

The method of claim 10, wherein deploying the software application build including the target versions of the application libraries to a production computing environment based upon the test execution data comprises determining that one or more of the tests had successful execution for the software application build in the test computing environment.

### Claim 16 (depends on 10)

The method of claim 10, wherein the computing device determines that one or more of the tests did not have successful execution for the software application build in the test computing environment and reverses deployment of the software application build including the target versions of the application libraries to the production computing environment.

### Claim 17 (depends on 10)

The method of claim 10, wherein deploying the software application build to a test computing environment comprises provisioning the test computing environment, including initializing one or more virtual machines for execution of the software application build.

### Claim 18 (depends on 17)

The method of claim 17, wherein the computing device tears down the test computing environment upon conclusion of the test execution and results capture.
