Software reliability analysis using alerts, asserts and user interface controls
First Claim
1. A method performed by a computer, the method comprising:
- analyzing a set of software instrumentation data collected and stored by software instrumentation during software program usage sessions to identify potential problems with at least one software program corresponding to the software instrumentation data, wherein a usage session comprises a session of use of the software program by a user, wherein the potential problems are identified based on frequency of occurrence of asserts during the usage sessions, wherein the software instrumentation data is collected at least in part by executing the asserts in the program, where each assert comprises a statement including a logical condition that is evaluated when the assert is executed, wherein when the logical condition evaluates to true the assert statement has no effect on the program and when the assert statement evaluates to false corresponding indicia is recorded in the software instrumentation data; and
accessing failure data additionally collected during the usage sessions, the failure data having been collected by a crash handling system separate from the software instrumentation, the failure data comprising one or more crash dumps captured by the crash handling system when the software program crashed, and locating, within the failure data, portions thereof that correspond to the identified potential problems, and obtaining details of the potential problems from the portions of failure data that correspond to the potential problems.
2 Assignments
0 Petitions
Accused Products
Abstract
Described is a technology by which software instrumentation data collected during software program usage sessions is analyzed to identify potential problems with software program usage, such as based on frequency of problem occurrence during the usage sessions. Reliability metrics may be calculated from the information. Failure data additionally collected during the usage sessions may be accessed to derive details that correspond to the potential problems. In one example, the information may be analyzed to determine which alerts and/or asserts occurred most often, and/or to determine a relationship between user interface control operations (e.g., clicks and usage of commands) and alerts or asserts.
34 Citations
20 Claims
-
1. A method performed by a computer, the method comprising:
-
analyzing a set of software instrumentation data collected and stored by software instrumentation during software program usage sessions to identify potential problems with at least one software program corresponding to the software instrumentation data, wherein a usage session comprises a session of use of the software program by a user, wherein the potential problems are identified based on frequency of occurrence of asserts during the usage sessions, wherein the software instrumentation data is collected at least in part by executing the asserts in the program, where each assert comprises a statement including a logical condition that is evaluated when the assert is executed, wherein when the logical condition evaluates to true the assert statement has no effect on the program and when the assert statement evaluates to false corresponding indicia is recorded in the software instrumentation data; and accessing failure data additionally collected during the usage sessions, the failure data having been collected by a crash handling system separate from the software instrumentation, the failure data comprising one or more crash dumps captured by the crash handling system when the software program crashed, and locating, within the failure data, portions thereof that correspond to the identified potential problems, and obtaining details of the potential problems from the portions of failure data that correspond to the potential problems. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable medium having computer executable instructions, which when executed by a computer cause the computer to perform steps comprising:
-
using recorded session data stored by the computer to form a set of users determined to be having problems with a software product the session data comprising execution traces generated and recorded by the software product while the software product was being operated by the users, and determining from the recorded session data one or more reliability metrics comprising at least one of;
crash information corresponding to a number of sessions of a user that crashed, failure information corresponding to a number of sessions that failed of a user, mean time to crash information corresponding to session length and sessions of a user that crashed, mean time to failure information corresponding to session length and number of sessions of a user that failed, mean commands to crash information, or mean commands to failure information, or any combination of crash information, failure information, mean time to crash information, mean commands to crash information, or mean commands to failure information, andFor the set of users, determining, using a crash handling system separate from the trace generating system, whether each user belongs to a class of users for which failure data was recorded, and if so, accessing the failure data to derive details from the failure data that correspond to the recorded session data for that user, the failure data comprising crash dumps of the software product. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer comprising:
-
an analyzer that processes software instrumentation trace data recorded from user software program usage sessions to determine which alerts or asserts, or both alerts and asserts, occurred during sessions of a user using the software program, the asserts and alerts comprising statements of the software program, the software instrumentation trace data having been captured by software instrumentation facilities on the computer, the software instrumentation facilities being available for any arbitrary software program to use to trace execution thereof; a locator component that accesses failure data for at least one alert or assert determined by the analyzer, the failure data comprising or derived from one or more crash dumps of the software program, the locator component obtaining from the failure data failure information that corresponds to a trace or alert determined by the analyzer; and a storage component storing results corresponding to alert or assert, or alert and assert occurrences, and any located failure data for each alert or assert. - View Dependent Claims (18, 19, 20)
-
Specification