# US 10,372,597 B2 · Software testing and verification

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

- Number: US 10,372,597 B2
- Document ID: US10372597B2
- Status: Granted
- Kind: B2
- Application number: 15/585,226
- Filed: 2017-05-03
- Published: 2018-11-08
- Granted: 2019-08-06
- Earliest claimed: 2017-05-03
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Afrina Alam; Vanisri Anil Kumar; Soumen Chatterjee; Rashmi M. Nagaraju
- Web page: https://patentgrep.com/patent/US10372597B2

## CPC

- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3604: Analysis of software for verifying properties of programs (testing of software G06F11/3668)
- G06F 11/3672: {Test management}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 16/24575: {using context}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and system for improving automated software testing is provided. The method includes identifying software elements of a software test specification executed by a hardware device of an IT system. Existing software objects associated with a software module for testing are mapped to the identified software elements and with physical operational values of the software module. The identified software elements of the software test specification and associated software parameters are verified and software values of the identified software elements are extracted. The software values are executed with respect to a library database and the software test specification in executed with respect to the software module. In response, software module test software for operationally testing software modules and associated hardware devices is generated resulting in improved operation of the software modules and associated hardware devices.

## Claims

### Claim 1

An automated software testing method comprising:
identifying, by a processor of a hardware device of an IT system, software elements of a software test specification derived from a readable domain specific software language;
first mapping, by said processor, existing software objects associated with a software module for testing with said identified software elements of said software test specification;
second mapping, by said processor, said existing software objects with physical operational values of said software module;
verifying, by said processor, said identified software elements of said software test specification and associated software parameters;
extracting, by said processor, software values of said identified software elements via execution of software fabrication code, object lookup code, extraction and mapping code, and data retrieval code;
first executing by said processor, said software values with respect to a library database;
second executing by said processor based on results of said first executing, said software test specification with respect to said software module;
generating, by said processor based on results of said second executing, software module test software for operationally testing software modules and associated hardware devices resulting in improved operation of said software modules and associated hardware devices, wherein said improved operation of said software modules and said associated hardware devices comprises an improved processing speed for a processor of said associated hardware devices; and
storing, by said processor, said software test specification within a storage device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
retrieving, by said processor from said storage device, said software test specification;
establishing, by said processor, a secure connection between said software test specification and a hardware test device;
registering, by said processor, said hardware test device with a distributed server system; and
initiating, by said processor via said hardware test device, said second executing.

### Claim 3 (depends on 1)

The method of claim 1, wherein said hardware test device comprises a device selected form the group consisting of a local hardware device, a remote physical hardware device, and a virtual test machine.

### Claim 4 (depends on 1)

The method of claim 1, wherein said identifying said software elements comprises:
identifying software features, said test steps, software improvement actions, said associated software parameters, and said existing software objects via execution of pattern matching software code.

### Claim 5 (depends on 1)

The method of claim 1, wherein said first mapping comprises:
executing global object mapping code, scenario matching code, index matching code, and context analysis technique code resulting in modification of existing transformation and mappings rules code.

### Claim 6 (depends on 1)

The method of claim 1, wherein said second mapping comprises:
automatically detecting software code elements of said software module by parsing and evaluating elements of said software module and applying object identification patterns each element of said elements for said software module with said software test specification.

### Claim 7 (depends on 1)

The method of claim 1, wherein said second executing comprises:
dynamically generating test data during runtime;
reading an actual value for an object of said existing software objects;
generating a database associated with said software module test application, said database comprising features and modules of said software module test application;
reading an actual value for a variable from current automation context of said software module test application; and
reading values of the data parameters from external hardware sources.

### Claim 8 (depends on 1)

The method of claim 1, wherein said improved operation of said software modules and said associated hardware devices further comprises an improved memory structure of said associated hardware devices, and wherein said improved memory structure enables an improved access speed for accessing data within said improved memory structure via an internal layered structure of said improved memory structure.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable code in the control hardware, said code being executed by the computer processor to implement: said identifying, said first mapping, said second mapping, said verifying, said extracting, said first executing, said second executing, said generating, and said storing.

### Claim 10

A computer program product, comprising a non-transitory computer readable hardware storage device storing a computer readable program code, said computer readable program code comprising an algorithm that when executed by a processor of a hardware device of an IT system implements an automated software testing method, said method comprising:
identifying, by said processor, software elements of a software test specification derived from a readable domain specific software language;
first mapping, by said processor, existing software objects associated with a software module for testing with said identified software elements of said software test specification;
second mapping, by said processor, said existing software objects with physical operational values of said software module;
verifying, by said processor, said identified software elements of said software test specification and associated software parameters;
extracting, by said processor, software values of said identified software elements via execution of software fabrication code, object lookup code, extraction and mapping code, and data retrieval code;
first executing by said processor, said software values with respect to a library database;
second executing by said processor based on results of said first executing, said software test specification with respect to said software module;
generating, by said processor based on results of said second executing, software module test software for operationally testing software modules and associated hardware devices resulting in improved operation of said software modules and associated hardware devices, wherein said improved operation of said software modules and said associated hardware devices comprises an improved processing speed for a processor of said associated hardware devices; and
storing, by said processor, said software test specification within a storage device.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein said method further comprises:
retrieving, by said processor from said storage device, said software test specification;
establishing, by said processor, a secure connection between said software test specification and a hardware test device;
registering, by said processor, said hardware test device with a distributed server system; and
initiating, by said processor via said hardware test device, said second executing.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein said hardware test device comprises a device selected form the group consisting of a local hardware device, a remote physical hardware device, and a virtual test machine.

### Claim 13 (depends on 10)

The computer program product of claim 10, wherein said identifying said software elements comprises:
identifying software features, said test steps, software improvement actions, said associated software parameters, and said existing software objects via execution of pattern matching software code.

### Claim 14 (depends on 10)

The computer program product of claim 10, wherein said first mapping comprises:
executing global object mapping code, scenario matching code, index matching code, and context analysis technique code resulting in modification of existing transformation and mappings rules code.

### Claim 15 (depends on 10)

The computer program product of claim 10, wherein said second mapping comprises:
automatically detecting software code elements of said software module by parsing and evaluating elements of said software module and applying object identification patterns each element of said elements for said software module with said software test specification.

### Claim 16 (depends on 10)

The computer program product of claim 10, wherein said second executing comprises:
dynamically generating test data during runtime;
reading an actual value for an object of said existing software objects;
generating a database associated with said software module test application, said database comprising features and modules of said software module test application;
reading an actual value for a variable from current automation context of said software module test application; and
reading values of the data parameters from external hardware sources.

### Claim 17 (depends on 10)

The computer program product of claim 10, wherein said improved operation of said software modules and said associated hardware devices further comprises an improved memory structure of said associated hardware devices, and wherein said improved memory structure enables an improved access speed for accessing data within said improved memory structure via an internal layered structure of said improved memory structure.

### Claim 18

A hardware device of an IT system comprising a hardware processor coupled to a hardware computer-readable memory unit, said memory unit comprising instructions that when executed by the computer processor implements an automated software testing method comprising:
identifying, by said hardware processor, software elements of a software test specification derived from a readable domain specific software language;
first mapping, by said hardware processor, existing software objects associated with a software module for testing with said identified software elements of said software test specification;
second mapping, by said hardware processor, said existing software objects with physical operational values of said software module;
verifying, by said hardware processor, said identified software elements of said software test specification and associated software parameters;
extracting, by said hardware processor, software values of said identified software elements via execution of software fabrication code, object lookup code, extraction and mapping code, and data retrieval code;
first executing by said hardware processor, said software values with respect to a library database;
second executing by said hardware processor based on results of said first executing, said software test specification with respect to said software module;
generating, by said hardware processor based on results of said second executing, software module test software for operationally testing software modules and associated hardware devices resulting in improved operation of said software modules and associated hardware devices, wherein said improved operation of said software modules and said associated hardware devices comprises an improved processing speed for a processor of said associated hardware devices; and
storing, by said hardware processor, said software test specification within a storage device.
