Representation-based automated software testing
AssigneeAmazon Technologies, Inc.
InventorsOsman Surkatty, Josh Phelan Dukes, Khai Tran, Oleg Mitrofanov
Life of this patent
Estimating the term…
Abstract
Systems and methods are disclosed herein for performing automated testing of software. Information characterizing a set of application programming interface (API) calls is associated with the software. Dependencies between the API calls are determined using the information and a representation is generated using the dependencies. The dependencies of the representation are verified by providing API requests to the API calls. The verified representation is provided for automated testing of an API and the associated API calls.
Claims20
A computer-implemented method, comprising:
- obtaining information describing a set of web service application programming interface (API) calls;
- using the information to match outputs of the set of web service API calls to inputs of the set of web service API calls to determine a set of matches by at least comparing an output schema of a first web service API call with an input schema of second web service API;
- using the set of matches to generate a graph representation of the set of web service API calls that indicates dependencies between the set of web service API calls, wherein the graph representation includes a set of edges that correspond to dependency relationships between a subset of the set of web service API calls;
- providing a set of API requests to the set of web service API calls to verify the graph representation;
- and
- using the graph representation to test a web service using a set of inputs generated based at least in part on the set of API requests.
A system, comprising:
- one or more processors;
- and
- memory that stores computer-executable instructions that, as a result of execution by the one or more processors, cause the system to:
- match output of a second set of API calls of a plurality of API calls to input of a first set of API calls of the plurality of API calls based at least in part on information characterizing the first set of API calls and second set of API calls to result in a set of matches by at least comparing an output schema of a first API call with an input schema of second API call;
- generate a representation of API call dependencies based at least in part on the set of matches, wherein the representation includes a set of edges, wherein the set of edges correspond to dependency relationships between a subset of the plurality API calls;
- generate a set of API requests based at least in part on the representation;
- and
- provide the set of API requests to be used by a second system to perform testing on a third system.
A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
- obtain information describing a set of API calls;
- analyze the information to determine a set of matches between inputs of the set of API calls and outputs of the set of API calls by at least comparing an output schema of a first API call with an input schema of second API call;
- generate a representation of API call dependencies based at least in part on the set of matches, wherein the representation includes a set of edges, wherein the set of edges correspond to dependency relationships between a subset of the set of API calls;
- and
- provide the representation to test a service comprising an API that includes the set of API calls.
Dependencies are inferred from the claim text.