Prioritizing resiliency tests of microservices
First Claim
Patent Images
1. A system, comprising:
- a memory that stores computer executable components; and
a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise;
a prioritization component that;
determines respective failure impact values of application program interface call subgraphs associated with a user interface of a microservices-based application based on a failure impact function employed on an annotated state transition graph, wherein the failure impact function comprises;
for respective edges of the state transition graph;
a determination of a set of nodes of the annotated state transition graph reachable from an edge,for respective nodes of the set of nodes, a determination of a count of user interface events, able to be triggered from a user interface state represented by a node, that fail to be able to be triggered from other user interface states represented by other nodes along a path from the edge to the node, anda determination of a failure impact value for the edge based on summing of counts for the nodes of the set of nodes; and
generates an ordered list of the application program interface call subgraphs, wherein the application program interface call subgraphs are ordered based on the respective failure impact values; and
a test execution component that iteratively performs in the order of the ordered list for respective application program interface call subgraphs of a subset of application program interface call subgraphs;
based on at least one resiliency test pattern, generation of at least one failure scenario for an application program interface call subgraph of the subset of application program interface call subgraphs; and
test of the application program interface call subgraph for the at least one resiliency pattern using the at least one failure scenario.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for automated resiliency testing. In one example, a computer-implemented method comprises analyzing, by a system operatively coupled to a processor, an annotated state transition graph of a user interface of a microservices-based application, wherein the annotated state transition graph has edges annotated with application program interface call subgraphs. The computer-implemented method also comprises generating, by the system, an ordered list of the application program interface call subgraphs based on the analyzing.
29 Citations
20 Claims
-
1. A system, comprising:
-
a memory that stores computer executable components; and a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise; a prioritization component that; determines respective failure impact values of application program interface call subgraphs associated with a user interface of a microservices-based application based on a failure impact function employed on an annotated state transition graph, wherein the failure impact function comprises; for respective edges of the state transition graph; a determination of a set of nodes of the annotated state transition graph reachable from an edge, for respective nodes of the set of nodes, a determination of a count of user interface events, able to be triggered from a user interface state represented by a node, that fail to be able to be triggered from other user interface states represented by other nodes along a path from the edge to the node, and a determination of a failure impact value for the edge based on summing of counts for the nodes of the set of nodes; and generates an ordered list of the application program interface call subgraphs, wherein the application program interface call subgraphs are ordered based on the respective failure impact values; and a test execution component that iteratively performs in the order of the ordered list for respective application program interface call subgraphs of a subset of application program interface call subgraphs; based on at least one resiliency test pattern, generation of at least one failure scenario for an application program interface call subgraph of the subset of application program interface call subgraphs; and test of the application program interface call subgraph for the at least one resiliency pattern using the at least one failure scenario. - View Dependent Claims (2, 3, 4, 5, 6, 7, 20)
-
-
8. A computer-implemented method, comprising:
-
analyzing, by a system operatively coupled to a processor, an annotated state transition graph of a user interface of a microservices-based application, wherein nodes of the annotated state transition graph respectively represent abstract user interface states of the user interface and edges of the annotated state transition graph respectively represent transitions between the abstract user interface states, and the edges are annotated with application program interface call subgraphs associated with the user interface, wherein nodes of the application program interface call graph respectively represent application program interfaces of the microservices-based application and edges of the application program interface call graph respectively represent calling relationships between the application program interfaces; generating, by the system, an ordered list of the application program interface call subgraphs based on the analyzing; and executing, by the system, within a defined amount of time prior to deploying the microservices-based application in a live environment, resiliency testing on a subset of the ordered list comprising a determined highest ordered amount of application program interface call subgraphs for which the resiliency testing can be completed in the defined amount of time. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for prioritizing application program interface call subgraphs associated with a user interface of a microservices-based application for resiliency testing, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processing component to cause the processing component to:
-
analyzing an annotated state transition graph of the user interface of the microservices-based application, wherein nodes of the annotated state transition graph respectively represent abstract user interface states of the user interface and edges of the annotated state transition graph respectively represent transitions between the abstract user interface states, and the edges are annotated with application program interface call subgraphs associated with the user interface, wherein nodes of the application program interface call graph respectively represent application program interfaces of the microservices-based application and edges of the application program interface call graph respectively represent calling relationships between the application program interfaces; generating an ordered list of the application program interface call subgraphs based on the analyzing; and executing within a defined amount of time prior to deploying the microservices-based application in a live environment, resiliency testing on a subset of the ordered list comprising a determined highest ordered amount of application program interface call subgraphs for which the resiliency testing can be completed in the defined amount of time. - View Dependent Claims (16, 17, 18, 19)
-
Specification