TECHNIQUES FOR AUTOMATICALLY TRIAGING AND DESCRIBING ISSUES DETECTED DURING USE OF A SOFTWARE APPLICATION
Described herein are techniques that use machine learning to triage issues by classifying the issues into impact levels. Described herein are also techniques for generating a natural language description of issues that occur in sessions of a software application. The techniques collect data during sessions in which a user is interacting with the software application. The techniques process the data collected during the sessions using a language model to obtain natural language descriptions of issues that occur in the sessions.
1 . A system for detecting and triaging potential issues that occur during interactions of a plurality of users with a software application, the system comprising:
a processor; and
a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the processor to:
collect, during each of a plurality of sessions in which a user of the plurality of users is interacting with the software application, data from a device being used to interact with the software application;
detect occurrences of a plurality of potential issues in at least some of the plurality of sessions;
generate, in a graphical user interface (GUI), visual indications of impact levels of the plurality of potential issues, the generating comprising, for each of the plurality of potential issues:
obtain data collected during one or more of the plurality of sessions in which the issue occurred;
determine a classification of the issue into one of a plurality of impact levels using the data collected during the one or more sessions; and
generate, in the GUI, a visual indication of the impact level into which the issue was classified
2 . The system of claim 1 , wherein determining the classification of the issue into one of the plurality of impact levels using the data collected during the one or more sessions comprises:
determining values of one or more parameters indicating reaction of one or more users in one or more respective GUIs of the software application in response to occurrence of the issue; and
determining the classification of the issue into one of the plurality of impact levels using the values of the one or more parameters.
3 . The system of claim 2 , wherein the one or more parameters include at least one of:
density of user activity in the respective GUI of the software application before and/or after occurrence of the issue;
change in frequency of user activity in the respective GUI of the software application before and/or after occurrence of the issue;
count of mouse moves and/or touch interactions before and/or after occurrence of the issue;
count of repeated mouse clicks and/or repeated touch interactions before and/or after occurrence of the issue;
area of a convex hull encompassing coordinates of mouse moves, mouse clicks, and/or touch interactions in the respective GUI of the software application before and/or after occurrence of the issue;
scrolling distance in the respective GUI of the software application before and/or after occurrence of the issue; and
frequency of hypertext markup language (HTML) document object model (DOM) tree changes before and/or after occurrence of the issue.
4 . The system of claim 1 , wherein determining the classification of the issue into one of a plurality of impact levels using the data collected during the one or more sessions comprises:
determining, for the issue, a plurality of scores corresponding to respective ones of the plurality of impact levels, the plurality of scores including a first score corresponding to a first impact level of the plurality of impact levels; and
determining a classification of the issue into the first impact level when the first score is greater than a threshold score.
5 . The system of claim 4 , wherein the one or more sessions in which the occurrence of the issue was detected comprise multiple ones of the plurality of sessions and determining the plurality of scores corresponding to respective ones of the plurality of impact levels comprises:
determining, for each of the multiple sessions in which the occurrence of the issue was detected, a respective score corresponding to the first impact level to obtain a plurality of scores; and
determining the first score corresponding to the first impact level for the issue using the plurality of scores.
6 . The system of claim 1 , wherein the data collected during the one or more sessions comprises information indicating at least one of:
HTML DOM tree changes during the one or more sessions;
CSS styles and stylesheets;
navigation history;
client viewport dimensions;
a type of device being used to interact with the software application;
a type of browser application being used to interact with the software application;
user activity within a respective GUI of the software application;
network requests and responses generated by the device;
exceptions;
processor and memory usage of a device being used to interact with the software application; and
a status of a network connection of the device being used to interact with the software application.
7 . The system of claim 1 , wherein the plurality of issues comprise of one thousand or more issues and generating, in the GUI, the visual indications of the impact levels of the plurality of potential issues comprises:
generating, for a subset of the plurality of issues consisting of 100 or fewer issues, visual indications of a first impact level of the plurality of impact levels.
8 . The system of claim 1 , wherein the plurality of impact levels includes a high impact level and a low impact level.
9 . The system of claim 1 , wherein determining the classification of the issue into the one of the plurality of impact levels comprises:
generating at least one set of feature values associated with the issue using the data collected during the one or more sessions in which the occurrence of the issue was detected;
providing the at least one set of feature values associated with the issue as input to a trained machine learning model to obtain at least one output; and
determining the classification of the issue into the one of the plurality of impact levels using the at least one output.
10 . The system of claim 9 , wherein the instructions further cause the processor to:
obtain, through the GUI, user input indicating an impact designation for a first issue of the plurality of potential issues;
generate a plurality of sets of feature values associated with the first issue using data collected during a plurality of sessions in which the first issue occurred;
label each of the plurality of sets of feature values with one of the plurality of impact levels based on the impact designation for the first issue to obtain a plurality of labeled sets of feature values; and
train a machine learning model using the plurality of labeled sets of feature values to obtain the trained machine learning model.
11 . The system of claim 9 , wherein the data collected during the one or more sessions comprises values of a plurality of parameters, and generating the set of feature values associated with the issue using the data collected during the at least one session comprises:
obtaining values of at least some of the plurality of parameters; and
generating the feature values using the values of the at least some parameters.
12 . The system of claim 22 , wherein the set of feature values comprises values of one or more parameters indicating user activity in a respective GUI of the software application in a period of time before and/or after occurrence of the issue.
13 . The system of claim 22 , wherein the plurality of potential issues includes a first issue classified into a first impact level of the plurality of impact levels, and the instructions further cause the processor to:
receive, through the GUI, user input indicating a classification of the first issue into a second one of the plurality of impact levels;
assign the second impact level as a label for one or more sets of feature values associated with the first issue; and
retrain the trained machine learning model using the one or more sets of feature values assigned the second impact level as the label.
14 . The system of claim 1 , wherein the plurality of impact levels includes a first impact level; and the instructions further cause the processor to:
identify, using impact level classifications determined for the plurality of potential issues, one or more issues classified into the first impact level; and
transmit, to a computing device, an alert for the one or more issues classified into the first impact level.
15 . The system of claim 1 , wherein the plurality of impact levels includes a first impact level; and the instructions further cause the processor to:
identify, using impact level classifications determined for the plurality of potential issues, one or more issues classified into the first impact level; and
generate, in the GUI, a listing of the one or more issues classified into the first impact level.
16 . The system of claim 1 , wherein the instructions further cause the processor to:
generate, using data collected during at least one of the at least some sessions, at least one representation of the at least one session, wherein the at least one representation of the at least one session indicates a sequence of events that occurred in the at least one session; and
process the at least one representation of the at least one session using a trained language model to obtain a natural language description of at least one issue that occurred in the at least one session.
17 . A method for detecting and triaging potential issues that occur during interactions of a plurality of users with a software application, the method comprising:
using a processor to perform:
collecting, during each of a plurality of sessions in which a user of the plurality of users is interacting with the software application, data from a device being used to interact with the software application;
detecting occurrences of a plurality of potential issues in at least some of the plurality of sessions;
generating, in a graphical user interface (GUI), visual indications of impact levels of the plurality of potential issues, the generating comprising, for each of the plurality of potential issues:
obtaining data collected during one or more of the plurality of sessions in which the issue occurred;
determining a classification of the issue into one of a plurality of impact levels using the data collected during the one or more sessions; and
generating, in the GUI, a visual indication of the impact level into which the issue was classified.
18 . The method of claim 17 , wherein determining the classification of the issue into one of the plurality of impact levels using the data collected during the one or more sessions comprises:
determining values of one or more parameters indicating reaction of one or more users in one or more respective GUIs of the software application in response to occurrence of the issue; and
determining the classification of the issue into one of the plurality of impact levels using the values of the one or more parameters.
19 . The method of claim 18 , wherein determining the classification of the issue into one of a plurality of impact levels using the data collected during the one or more sessions comprises:
determining a plurality of scores corresponding to respective ones of the plurality of impact levels, the plurality of scores including a first score corresponding to a first impact level of the plurality of impact levels; and
determining a classification of the issue into the first impact level when the first score is greater than a threshold score.
20 . The method of claim 17 , wherein the plurality of impact levels includes a high impact level and a low impact level, and the first impact level is the high impact level.
21 . The method of claim 17 , wherein determining the classification of the issue into the one of the plurality of impact levels comprises:
generating at least one set of feature values associated with the issue using the data collected during the one or more sessions in which the occurrence of the issue was detected; and
providing the at least one set of feature values associated with the issue as input to a trained machine learning model to obtain at least one output; and
determining the classification of the issue into the one of the plurality of impact levels using the at least one output.
22 . The method of claim 21 , wherein the method further comprises:
obtaining, through the GUI, user input indicating an impact designation for a first issue of the plurality of potential issues;
generating a plurality of sets of feature values associated with the first issue using data collected during a plurality of sessions in which the first issue occurred;
labeling each of the plurality of sets of feature values with one of the plurality of impact levels based on the impact designation for the first issue to obtain a plurality of labeled sets of feature values; and
training a machine learning model using the plurality of labeled sets of feature values to obtain the trained machine learning model.
23 . The method of claim 21 , wherein the plurality of potential issues includes a first issue classified into a first impact level of the plurality of impact levels, and the method further comprises:
receiving, through the GUI, user input indicating a classification of the first issue into a second one of the plurality of impact levels;
assigning the second impact level as a label for a set of feature values associated with the first issue; and
retraining the trained machine learning model using the set of feature values and the assigned label.
24 . The method of claim 17 , wherein the plurality of impact levels includes a first impact level, and the method further comprises:
identifying, using impact level classifications determined for the plurality of potential issues, one or more issues classified into the first impact level; and
transmitting, to a computing device, an alert for the one or more issues classified into the first impact level.
25 . The method of claim 17 , wherein the plurality of impact levels includes a first impact level, and the method further comprises:
identifying, using impact level classifications determined for the plurality of potential issues, one or more issues classified into the first impact level; and
generating, in the GUI, a listing of the one or more issues classified into the first impact level.
26 . The method of claim 17 , further comprising:
generating, using data collected during at least one of the at least some sessions, at least one representation of the at least one session, wherein the at least one representation of the at least one session indicates a sequence of events that occurred in the at least one session; and
processing the at least one representation of the at least one session using a trained language model to obtain a natural language description of at least one issue that occurred in the at least one session.
27 . A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform:
collecting, during each of a plurality of sessions in which a user of the plurality of users is interacting with the software application, data from a device being used to interact with the software application;
detecting occurrences of a plurality of potential issues in at least some of the plurality of sessions;
generating, in a graphical user interface (GUI), visual indications of impact levels of the plurality of potential issues, the generating comprising, for each of the detected plurality of issues:
obtaining data collected during one or more of the plurality of sessions in which the issue occurred;
determining a classification of the issue into one of a plurality of impact levels using the data collected during the one or more sessions; and
generating, in the GUI, a visual indication of the impact level into which the issue was classified.
28 . The non-transitory computer-readable storage medium of claim 27 , wherein the instructions, when executed by the processor, further cause the processor to perform:
generating, using data collected during at least one of the at least some sessions, at least one representation of the at least one session, wherein the at least one representation of the at least one session indicates a sequence of events that occurred in the at least one session; and
processing the at least one representation of the at least one session using a trained language model to obtain a natural language description of at least one issue that occurred in the at least one session.