Mining Issue Trackers: Concepts and Techniques
摘要
An issue tracker is a software tool used by organizations to interact with users and manage various aspects of the software development lifecycle. With the rise of agile methodologies, issue trackers have become popular in open- and closed-source settings alike. Internal and external stakeholders report, manage and discuss “issues”, which represent different information such as requirements and maintenance tasks. Issue trackers can quickly become complex ecosystems, with dozens of projects, hundreds of users, thousands of issues and often millions of issue evolutions. Finding and understanding the relevant issues for the task at hand and keeping an overview becomes difficult with time. Moreover, managing issue workflows for diverse projects becomes more difficult as organizations grow and more stakeholders get involved. To help address these difficulties, software and requirements engineering research has suggested automated techniques based on mining issue tracking data. Given the vast amount of textual data in issue trackers, many of these techniques leverage natural language processing. In this chapter, we present the fundamentals of issue trackers, including issue tracker details, examples and datasets. We then discuss four major use cases for algorithmically analysing issue data to assist stakeholders with the complexity and heterogeneity of information in issue trackers. This chapter contributes an introduction to mining issue trackers, including both high-level analyses and low-level details, as well as an accompanying follow-along demonstration package with Jupyter Notebooks.