TECHNICAL FIELD

Various embodiments of the present disclosure relate generally to systems and methods for managing software error resolution, and more particularly to methods and systems for optimizing assignment of contributors to address errors in software.

BACKGROUND

Software development and support, especially when involving the work of multiple contributors, may be very complex. Tools have been developed to address such complexity, and/or to express software development issues in ways that are human-understandable. For example, version control tools have been developed in order to track how software code has been changed, by whom, and when. Debugging tools have been developed in order to facilitate identifying portions of computer code contributing to an error. However, familiarity and experience with portions of code in a project, as well as techniques for addressing errors, may vary greatly from contributor to contributor.

Given that each contributor also may have their own time commitments and responsibilities, finding a particular contributor with time available as well as familiarity and/or experience with an error in a portion of code may be difficult. Moreover, this problem may be quickly compounded, since many contributors may be working on more than one project or portion of code simultaneously, and because more than one error in various portions of code may also arise simultaneously.

The present disclosure is directed to addressing one or more of these above-referenced challenges. The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art, or suggestions of the prior art, by inclusion in this section.

SUMMARY

According to certain aspects of the disclosure methods, systems, and non-transitory computer-readable media are disclosed for managing software error resolution. Each of the examples disclosed herein may include one or more of the features described in connection with any of the other disclosed examples.

In one example, a method for managing debugging may include: monitoring execution of a code to detect an error in the code; in response to the monitoring detecting the error in the code, initiating an error resolution process to identify one or more contributors to address the error, the error resolution process including: obtaining information associated with the error; obtaining revision history for the code from a version control system; obtaining a predetermined list of contributors associated with the code; obtaining task management statistics information for the predetermined list of contributors from a task management system; obtaining an urgency value for the error; and analyzing the information associated with the error, the revision history, the task management statistics, and the urgency value to determine the one or more contributors to address the error; generating an error report for the error; and transmitting the error report to the identified one or more contributors.

In another example, a system for managing debugging may include: a memory storing instructions; and a processor executing the instructions to perform a process. The process may include: monitoring execution of a code to detect an error in the code; in response to the monitoring detecting the error in the code, initiating an error resolution process to identify one or more contributors to address the error, the error resolution process including: obtaining information associated with the error; obtaining revision history for the code from a version control system; obtaining a predetermined list of contributors associated with the code; obtaining task management statistics information for the predetermined list of contributors from a task management system; obtaining an urgency value for the error; and analyzing the information associated with the error, the revision history, the task management statistics, and the urgency value to determine the one or more contributors to address the error; generating an error report for the error; and transmitting the error report to the identified one or more contributors.

In a further example, a method for managing debugging may include: monitoring execution of a code to detect an error in the code; in response to the monitoring detecting the error in the code, initiating an error resolution process to identify one or more contributors to address the error based on revision history associated with the code, the error resolution process including: analyzing, by performing a ranking process or using a ranking machine learning model, the revision history, task management statistics for a predetermined list of contributors, and an urgency value to determine the one or more contributors to address the error; generating an error report; and transmitting the error report to the identified one or more contributors.

Additional objects and advantages of the disclosed embodiments will be set forth in part in the description that follows, and in part will be apparent from the description, or may be learned by practice of the disclosed embodiments.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosed embodiments, as claimed.

