IP Library › Granted Patent US 11,640,350
Granted Patent B2
US 11,640,350 · App. 17/401,618 · Granted May 2, 2023

Automated test input generation for integration testing of microservice-based web applications

Inventors: Shriram Rajagopalan (White Plains, NY); Saurabh Sinha (Danbury, CT)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/3664G06F3/0482G06F9/451G06F16/9024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,640,350
App. No.
17/401,618
Filed
Aug 13, 2021
Granted
May 2, 2023
Kind
B2
Examiner
LUU, CUONG V
Art Unit
2192
USPC
717/125
Abstract

Techniques for automated generation of inputs for testing microservice-based applications. In one example, a computer-implemented method includes: traversing, by a system operatively coupled to a processor, a user interface of a microservices-based application by performing actions on user interface elements of the user interface; and generating, by the system, an aggregated log of user interface event sequences and application program interface call sets based on the traversing. The computer-implemented method also includes: determining, by the system, respective user interface event sequences that invoke the application program interface call sets; and generating, by the system, respective test inputs based on the respective user interface event sequences that invoke the application program interface call sets.

Claims (29)

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:

an event sequence component that determines user interface event sequences that invoke application program interface call sets of an annotated application program interface call graph associated with a microservices-based application, wherein one or more edges of the annotated application program interface call graph are annotated with coverage indications of the user interface event sequences;

a coverage component that, based on a determination that the coverage indications do not cover a threshold amount of the annotated application program interface call graph, performs a traversal of a user interface of the microservices-based application with one or more mutated user interface event sequences based on one or more mutations of the user interface event sequences.

2. The system of claim 1 , wherein the coverage component further determines a user interface event sequence for mutation that is associated with an edge of the annotated application program interface call graph that is not annotated with a coverage indication.

3. The system of claim 1 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated to invoke an externally visible application program interface with at least one different parameter.

4. The system of claim 1 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated to invoke an externally visible application program interface with at least one different parameter value.

5. The system of claim 1 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by deletion of a user interface event of a user interface event sequence that contributes at least one parameter to invocation of an externally visible application program interface.

6. The system of claim 1 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by addition of an additional user interface event to a user interface event sequence that contributes at least one additional parameter to invocation of an externally visible application program interface.

7. The system of claim 1 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by modification of at least one data value of at least one user interface event of a user interface event sequence.

8. A computer-implemented method comprising:

determining, by a system operatively coupled to a processor, user interface event sequences that invoke application program interface call sets of an annotated application program interface call graph associated with a microservices-based application, wherein one or more edges of the annotated application program interface call graph are annotated with coverage indications of the user interface event sequences;

based on a determination that the coverage indications do not cover a threshold amount of the annotated application program interface call graph, performing, by the system, a traversal of a user interface of the microservices-based application with one or more mutated user interface event sequences based on one or more mutations of the user interface event sequences.

9. The computer-implemented method of claim 8 further comprising determining, by the system, a user interface event sequence for mutation that is associated with an edge of the annotated application program interface call graph that is not annotated with a coverage indication.

10. The computer-implemented method of claim 8 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated to invoke an externally visible application program interface with at least one different parameter.

11. The computer-implemented method of claim 8 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated to invoke an externally visible application program interface with at least one different parameter value.

12. The computer-implemented method of claim 8 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by deletion of a user interface event of a user interface event sequence that contributes at least one parameter to invocation of an externally visible application program interface.

13. The computer-implemented method of claim 8 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by addition of an additional user interface event to a user interface event sequence that contributes at least one additional parameter to invocation of an externally visible application program interface.

14. The computer-implemented method of claim 8 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by modification of at least one data value of at least one user interface event of a user interface event sequence.

15. A computer program product for automatically generating test inputs for testing of a microservices-based application, 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:

determine user interface event sequences that invoke application program interface call sets of an annotated application program interface call graph associated with the microservices-based application, wherein one or more edges of the annotated application program interface call graph are annotated with coverage indications of the user interface event sequences;

based on a determination that the coverage indications do not cover a threshold amount of the annotated application program interface call graph, perform a traversal of a user interface of the microservices-based application with one or more mutated user interface event sequences based on one or more mutations of the user interface event sequences.

16. The computer program product of claim 15 , wherein the program instructions are further executable by the processing component to cause the processing component to:

determine a user interface event sequence for mutation that is associated with an edge of the annotated application program interface call graph that is not annotated with a coverage indication.

17. The computer program product of claim 15 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated to invoke an externally visible application program interface with at least one different parameter.

18. The computer program product of claim 15 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated to invoke an externally visible application program interface with at least one different parameter value.

19. The computer program product of claim 15 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by deletion of a user interface event of a user interface event sequence that contributes at least one parameter to invocation of an externally visible application program interface.

20. The computer program product of claim 15 , wherein a mutated user interface event sequence of the one or more mutated user interface event sequences is mutated by addition of an additional user interface event to a user interface event sequence that contributes at least one additional parameter to invocation of an externally visible application program interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2021
From: RAJAGOPALAN, SHRIRAM; SINHA, SAURABH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057170/0216 →
Continuity (4)
Continuation 16587625 · Sep 30, 2019
Continuation 16381502 · Apr 11, 2019
Continuation 15229949 · Aug 5, 2016
Related Publication 20210374039A1 · Dec 2, 2021