# A Survey on Bug Deduplication and Triage Methods from Multiple Points of View
## 1 Introduction
This is not aligned with the topic of our article and is therefore beyond the scope of discussion. Bug deduplication and bug triage play a crucial role in improving the efficiency of bug fixes. The former helps reduce redundancy in bugs, alleviating the current situation of a large number of bug submissions awaiting analysis. The latter classifies bugs based on certain logical similarities and transfers them to the corresponding developers. This approach maximizes the chances of pushing bugs to potential experts who can effectively improve bug-fixing efficiency. Bug deduplication and bug triage can be performed based on two types of information. The first type is the bug report, which includes the bug's category, the platform it occurred on, the components involved, priority, the personnel involved, and some real-time records. Typical bug reports, as shown in Figure 2, are generally semistructured files that contain various information [9; 10]. The content includes the context of the crashing thread, such as the stack trace and processor registers, as well as a subset of the machine memory contents at the time of the crash. It also includes basic information about the bug, such as the system,  
Figure 1: Bug management process. version, system components, description, fix comments, and a sequence of developers who may have worked on the bug (tossing sequence), among other details [11]. The life cycle of a bug report is illustrated in Figure 3. Once a bug is generated, its corresponding bug report is generated, deduplicated, and triaged. It is initially marked as \"unconfirmed\", then assigned to an appropriate developer at the right time (referred to as triage). If the developer cannot fix the bug correctly, the bug report is tossed back into the bug pool and remarked as \"unconfirmed\". Otherwise, it is marked as \"resolved\" and awaits verification. Once a verifier confirms that the bug has been fixed, the bug report is marked as \"verified\", and the case is closed. If it is not confirmed, the bug report is tossed. Figure 3: The life cycle of a bug report. Figure 2: Information contained in a typical bug report. The second type is the runtime information triggered by the bug, such as stack trace, coverage, control flow, crash point, etc. Achieving precise bug deduplication and triage is challenging. Both concepts rely on similarity, with deduplication primarily focusing on content similarity, while triage may also consider the characteristics of the fixer. Figure 4 illustrates the process of feature extraction and similarity calculation for bug reports, taking bug reports as an example. The upper part of the figure shows a process using information retrieval methods. It involves feature extraction using topic modeling techniques, followed by similarity calculation using mathematical models such as Cosine similarity and Jaccard similarity. The lower part of the figure presents a process using machine learning methods. It starts by extracting the control flow graph from the crash code snippets in the bug report. The control flow graph is then used as input to a neural network to compute the likelihood of duplicated or similar bug reports. Bug deduplication and bug triage have been hot topics in recent years. Figure 5 illustrates the trend of related works in recent years, showing an increasing number of studies in this area. We conducted a survey of relevant works, summarized the research methods and their effectiveness, analyzed the drawbacks of current approaches, and proposed possible research directions for the future. This paper focuses on the following research questions:  
Figure 4: Process of feature extraction and similarity calculation for bug reports. Figure 5: The number and trend of bug-deduplication- and triage-related work in recent years. What is the roadmap of deduplication- and triage-related work? What mathematical methods are commonly used to address these problems? What are the main approaches currently used for deduplication and triage?