Defect Assignment Method and System Based on Joint Optimization of Personality Preferences and Group Collaboration
By combining the defect distribution method of developers' personal preferences and group collaboration relationships in open source software development, the problem of inaccurate defect distribution in the existing technology is solved, the accuracy and repair efficiency of the dispatch model are improved, and the healthy development of the open source community is promoted.
Patent Information
- Application Number
- CN202210760304.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-30
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2042-06-30
AI Technical Summary
The defect distribution of existing technologies in open source software development is inaccurate, resulting in inaccurate repair efficiency and poor software quality, ignoring the impact of developers' personal preferences and group collaboration relationships.
Using a defect dispatch method based on personality preferences and group collaboration joint optimization, the defect report is embeddedly encoded through a pre-trained model. Combining the developer's personality preferences and group collaboration relationships, a linear fusion device is designed to realize the feature representation of the defect report, fusing the first and second dispatches to improve the accuracy of the dispatch model.
显著提升了缺陷自动分派的准确性,减少了缺陷分派抛掷频次,缩短了修复时间,提升了开源社区的管理水平和开发效能。
Smart Images

Figure CN115033796B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of automatic assignment of open-source software defect reports, in particular to a defect assignment method and system based on the joint optimization of personality preferences and group collaboration. Background Art
[0002] The statements in this section only mention the background art related to the present invention and do not necessarily constitute the prior art.
[0003] The community-based crowd-sourced open-source software development method has gradually become the mainstream development mode in the Internet era. Although this method enables developers to have a great degree of freedom and room for ability display, due to the difficulty in achieving the management level of commercial company models in project management, the quality of many open-source software is not satisfactory, resulting in a large number of defects. At the same time, due to the unreasonable defect assignment, the defect repair is not timely or cannot be repaired and is re-assigned (Tossing), resulting in low defect repair efficiency, which is also an important factor for low software quality and release delay. Therefore, accurate defect automatic assignment technology is an important guarantee for the healthy development of the open-source software ecosystem.
[0004] Currently, most open-source software projects adopt the method of defect tracking systems to track, analyze, and manage the generated defect reports. For example, public defect repair platforms such as Bugzilla. When developers or testers find defects, they can upload the defect reports to public platforms such as Bugzilla. Once the defects are confirmed, they officially enter the life cycle until a developer completes their repair. A large number of historical defect repair records lay a good data foundation for the application of various artificial intelligence technologies to defect intelligent repair.
[0005] Traditional defect assignment using information retrieval or machine learning mostly only considers how to construct developer characteristics through the description information of developers' Bug repairs and match new Bugs. Such methods ignore the influence of various factors on developers in the crowd-sourced development mode, so there is a phenomenon of low assignment accuracy. Through the statistical analysis of the historical defect Tossing relationship (the relationship between two developers in the re-assignment of defects), the collaboration relationship between developers can be mined. Existing literature has confirmed that considering this relationship during secondary assignment will effectively shorten the defect repair time and reduce the number of assignment tosses. However, such assignment methods consider the construction of developer characteristics and the collaboration relationship separately, which also affects the recommendation performance. Summary of the Invention
[0006] To solve the deficiencies of the prior art, the present invention provides a defect assignment method and system based on the joint optimization of personality preferences and group collaboration; by jointly optimizing the first assignment based on personality preferences and the second assignment based on group collaboration relationships, a bridge between the first assignment and the second assignment is constructed. As a result, not only can the personality ability information of developers be discovered, but also the role relationships of developers under different project organizational structures can be represented, accurately simulating the real environment of crowdsourcing development, forming an accurate construction of developers' ability characteristics, and thus more accurately assigning defect reports to suitable developers.
[0007] In a first aspect, the present invention provides a defect assignment method based on the joint optimization of personality preferences and group collaboration;
[0008] The defect assignment method based on the joint optimization of personality preferences and group collaboration includes:
[0009] Obtain the software defect report to be assigned;
[0010] Extract the vector representation of the metadata of the software defect report to be assigned;
[0011] Based on the vector representation of the software defect report to be assigned, determine the optimal set of k developer candidates;
[0012] Extract k vectors related to the optimal k developers from the developer ability matrix; perform an interaction operation on the k vectors and the vector representation of the software defect report to be assigned, and output the most suitable developer to be assigned.
[0013] In a second aspect, the present invention provides a defect assignment system based on the joint optimization of personality preferences and group collaboration;
[0014] The defect assignment system based on the joint optimization of personality preferences and group collaboration includes:
[0015] An acquisition module, which is configured to: obtain the software defect report to be assigned;
[0016] An extraction module, which is configured to: extract the vector representation of the metadata of the software defect report to be assigned;
[0017] A determination module, which is configured to: based on the vector representation of the software defect report to be assigned, determine the optimal set of k developer candidates;
[0018] A recommendation module, which is configured to: extract k vectors related to the optimal k developers from the developer ability matrix; perform an interaction operation on the k vectors and the vector representation of the software defect report to be assigned, and output the most suitable developer to be assigned.
[0019] In a third aspect, the present invention further provides an electronic device, including:
[0020] A memory for non - transiently storing computer - readable instructions; and
[0021] A processor for running the computer - readable instructions,
[0022] wherein, when the computer - readable instructions are run by the processor, the method described in the first aspect above is executed.
[0023] In a fourth aspect, the present invention further provides a storage medium that non - transiently stores computer - readable instructions, wherein when the non - transient computer - readable instructions are executed by a computer, instructions for executing the method described in the first aspect are executed.
[0024] In a fifth aspect, the present invention further provides a computer program product, including a computer program that, when run on one or more processors, is used to implement the method described in the first aspect above.
[0025] Compared with the prior art, the beneficial effects of the present invention are:
[0026] 1. The text description information of defect reports is embedded - encoded using a pre - trained model, and the metadata such as Product, Component, and Hardware of defect reports are one - hot encoded. A linear fuser for the two types of encodings is designed to achieve the feature representation of defect reports; a defect automatic assignment scheme based on the joint optimization of developer personality preferences and group collaboration is designed, which combines the first - time assignment based on personality preferences and the second - time assignment based on group collaboration relationships to reach a steady state, improving the accuracy of the assignment model.
[0027] 2. This patent can significantly improve the accuracy of defect automatic assignment, reduce the frequency of defect assignment throws, thereby shortening the defect repair time, and its implementation will improve the intelligence level of defect management in the defect tracking system of the open - source community.
[0028] 3. Integrating developer personality preferences and group collaboration relationships for defect assignment will help reduce the defect maintenance burden of the core team of open - source projects, improve the work efficiency of crowd - sourced development, improve the management level of the open - source community, and promote the healthy development of the open - source community. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The specification drawings forming a part of the present invention are used to provide a further understanding of the present invention. The schematic embodiments of the present invention and their descriptions are used to explain the present invention and do not constitute an improper limitation of the present invention.
[0030] Figure 1 is the software defect automatic assignment process based on the joint optimization of developer personality preferences and group collaboration proposed by the present invention;
[0031] Figure 2 is the software defect automatic assignment model proposed in the present invention based on the joint optimization of developer personality preferences and group collaboration;
[0032] Figure 3 is the set construction module in the software defect automatic assignment model proposed in the present invention based on the joint optimization of developer personality preferences and group collaboration. Detailed implementation manners
[0033] It should be noted that the following detailed descriptions are all exemplary and are intended to provide further explanations of the present invention. Unless otherwise specified, all technical and scientific terms used herein have the same meaning as commonly understood by those of ordinary skill in the technical field to which the present invention belongs.
[0034] It should be noted that the terms used herein are only for describing specific implementation manners and are not intended to limit the exemplary embodiments according to the present invention. As used herein, unless the context clearly indicates otherwise, the singular forms are also intended to include the plural forms. In addition, it should be understood that the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those clearly listed steps or units, but may include other steps or units not clearly listed or inherent to these processes, methods, products or devices.
[0035] In the case of no conflict, the embodiments in the present invention and the features in the embodiments can be combined with each other.
[0036] All data acquisition in this embodiment is based on compliance with laws, regulations and user consent, and is a legal application of the data.
[0037] Embodiment 1
[0038] This embodiment provides a defect assignment method based on the joint optimization of personality preferences and group collaboration;
[0039] As Figure 1 shown, the defect assignment method based on the joint optimization of personality preferences and group collaboration includes:
[0040] S101: Obtain the software defect report to be assigned;
[0041] S102: Extract the vector representation of the metadata of the software defect report to be assigned;
[0042] S103: Determine the optimal set of k developer candidates based on the vector representation of the software defect report to be assigned;
[0043] S104: Extract k vectors corresponding to the optimal k developers from the developer ability matrix; perform an interaction operation on the k vectors and the vector representation of the software defect report to be assigned, and output the most suitable developer to be assigned.
[0044] Further, the S101: Obtain the software defect report to be assigned;
[0045] Among them, the software, for example: large open-source software such as Firefox and Eclipse.
[0046] Among them, software defects are often also called bugs, which are defects in computer software or programs that cause the system or components to fail to run properly and do not meet user requirements.
[0047] Among them, the software defect report specifically includes: a document that identifies and describes the discovered defect and has the information required to clearly, completely, and reproducibly reproduce the problem. The information included in the defect report includes defect number, defect status, defect title, reproduction steps, severity, and other information.
[0048] Further, the S102: Extract the vector representation of the metadata of the software defect report to be assigned; specifically include:
[0049] S1021: Encode the metadata of the software defect report to be assigned to obtain a first encoding result;
[0050] S1022: Encode the text data of the software defect report to be assigned to obtain a second encoding result;
[0051] S1023: Concatenate the first encoding result and the second encoding result to obtain the vector representation of the software defect report to be assigned.
[0052] Further, S1021: Encode the metadata of the software defect report to be assigned to obtain a first encoding result; specifically include:
[0053] Perform one-hot encoding on the metadata of the software defect report to be assigned to obtain a first encoding result;
[0054] Among them, the metadata includes: product, component, hardware.
[0055] Further, S1022: Encode the text data of the software defect report to be assigned to obtain a second encoding result; specifically include:
[0056] Encode the text data of the software defect report to be assigned using the pre-trained model BERT to obtain a second encoding result.
[0057] BERT is the currently recognized best-performing model in natural language processing. BERT is pre-trained on a large amount of unlabeled text, including the entire Wikipedia (2.5 billion words) and the Book Corpus (800 million words). It was developed and open-sourced by Google's R & D team, and some pre-trained algorithm models on a large number of datasets are provided. In this embodiment, a trained model is used to encode the data.
[0058] The full name of BERT is Bidirectional Encoder Representation from Transformers, which is a pre-trained language representation model. It can be understood as a bidirectional encoding representation model with Transformers as the main framework.
[0059] Among them, the file data includes: title and description.
[0060] Furthermore, the step S1023: concatenate the first encoding result and the second encoding result to obtain the vector representation of the software defect report to be dispatched; specifically including:
[0061] Use a fully connected layer to concatenate the first encoding result and the second encoding result to obtain the vector representation of the software defect report to be dispatched.
[0062] Furthermore, the step S103: determine the optimal set of k developer candidates based on the vector representation of the software defect report to be dispatched; specifically including:
[0063] Input the vector representation of the software defect report to be dispatched into the trained first recommendation model, and output the optimal set of k developer candidates who can solve the software defects in the report to be dispatched.
[0064] Furthermore, the first recommendation model is implemented using a support vector machine or a Bayesian model.
[0065] Furthermore, the training process of the trained first recommendation model includes:
[0066] Construct a training set; the training set includes historical software defect reports with known assignment results;
[0067] Input the training set into the first recommendation model to train the model and obtain the trained first recommendation model;
[0068] Among them, the assignment result refers to assigning the historical software defect report to the software developers who can solve the software defects and assigning the historical software defect report to the software developers who cannot solve the software defects.
[0069] Further, S104: Extract k vectors corresponding to the optimal k developers from the developer ability matrix; wherein, the process of obtaining the developer ability matrix includes:
[0070] S1041: Obtain the software historical defect report;
[0071] S1042: Vectorize the software historical defect report to obtain the vector representation of the historical defect report;
[0072] S1043: Input the vector representation of the historical defect report into the trained first recommendation model, and output the set of the top K developers who can repair the defect report best; according to the set of the top K developers who can repair the defect report best, obtain the first toss graph of the current defect report;
[0073] S1044: Implement quadratic assignment based on group collaboration to obtain the quadratic toss graph of the current defect report;
[0074] S1045: Use the obtained first toss graph of the current defect report, the quadratic toss graph of the current defect report, and the initialized developer ability matrix to implement the learning of the aggregated graph representation; during the learning process, calculate the total loss function, and update the initialized developer ability matrix according to the value of the total loss function to obtain the final developer ability matrix.
[0075] Aggregation: It means that this method combines the advantages of the first and second assignments, and combines the two conditions through the Lagrange multiplier method.
[0076] Graph representation learning: Map the nodes into vector representations and retain as much topological information of the graph as possible.
[0077] Among them, the process is to map the nodes of the developers into vector representations by using the total loss function designed in this application.
[0078] Further, the S1044: Implement quadratic assignment based on group collaboration to obtain the quadratic toss graph of the current defect report; specifically includes:
[0079] S1044-1: According to the toss situation of the historical defect report, construct a bipartite graph of the existing developers and the i-th defect report collected; i is a positive integer;
[0080] Construct two types of sets based on the bipartite graph and the set of K developer candidates obtained by optimizing the first assignment model: one is the set of developers to whom the i-th defect report is secondarily assigned and can be repaired, and the other is the set of developers to whom the i-th defect report is secondarily assigned and cannot be repaired;
[0081] S1044-2: Construct a defect report throwing roadmap for all developers based on historical defect reports; based on the defect report throwing roadmap, extract the set of developers associated with the \(i\)-th defect report and the set of developers who are not the final fixers of the \(i\)-th defect report;
[0082] S1044-3: Based on the set of developers who can fix and the set of developers associated with the \(i\)-th defect report to which the \(i\)-th defect report is re-assigned, reconstruct the positive sample group collaboration relationship network for the \(i\)-th defect report;
[0083] Based on the set of developers who cannot fix and the set of developers who are not the final fixers of the \(i\)-th defect report to which the \(i\)-th defect report is re-assigned, reconstruct the negative sample group collaboration relationship network for the \(i\)-th defect report;
[0084] S1044-4: Based on the positive and negative sample group collaboration relationship networks, implement the re-assignment of the \(i\)-th defect report and construct the second throwing graph of the \(i\)-th defect report.
[0085] It should be understood that the bipartite graph: is a graph constructed for all developers and the defect reports collected by the developers according to the throwing roadmap of each defect report collected in the historical records; where both developers and defect reports are regarded as nodes, and the connection lines between the nodes indicate whether the developer node can solve the defects in the defect report. If the connection line is solid, it means that the developer node can solve the defects in the defect report; if the connection line is dashed, it means that the developer node cannot solve the defects in the defect report. Among them Figure 3 In the bipartite graph: \(u\) represents a person, and \(bug\) represents a defect; the solid line represents throwing to a person who can solve it, and the dashed line represents throwing the \(bug\) to a person who cannot solve it.
[0086] It should be understood that the second throwing graph of the \(i\)-th defect report contains a total of 3 types of nodes: The first type: developers who solve the defect; The second type: neighbor nodes of the developers who solve the defect; The third type: neighbor nodes of the second type of nodes (excluding the first type of nodes).
[0087] Furthermore, for S1045: Utilize the first throwing graph of the currently obtained defect report, the second throwing graph of the currently obtained defect report, and the initialized developer ability matrix to achieve the learning of the aggregated graph representation; during the learning process, calculate the total loss function, and update the initialized developer ability matrix according to the value of the total loss function to obtain the final developer ability matrix; where the total loss function includes the summation of four parts;
[0088] The first part means maximizing the difference between the probability that the \(i\)-th defect report is first assigned to a developer who can complete the repair and the probability that it is first assigned to other developers who cannot complete the repair;
[0089] The second part means maximizing the difference between the sum of the probabilities that the \(i\)-th defect report is secondarily assigned to a developer who can complete the repair and the sum of the probabilities that it is secondarily assigned to other developers who cannot complete the repair;
[0090] The third part means normalizing the probability of each initial assigned person to ensure that in a multi-classification task, the sum of the probabilities assigned to each developer is one;
[0091] The fourth part means ensuring that the probability of accurate first assignment based on developers' personality preferences is equal to the probability of accurate second assignment based on group collaboration through constraints.
[0092] Total loss function:
[0093] l(d i ) = l 1 (d i ) + l 2 (d i ) + l 3 (d i ) + l 4 (d i );
[0094] The first part means:
[0095]
[0096] The second part means:
[0097]
[0098] The third part means:
[0099]
[0100] The fourth part means:
[0101]
[0102] Among them, \(\alpha\), \(\beta\), \(\gamma\) are hyperparameters, and \(\lambda_1\), \(\lambda_2\) are training parameters; \(d i is a vector formed by concatenating the metadata and text information data of defect report \(i\) to form a vector about this defect; \(u e is the positive propagation sample of the final fixer in defect report \(i\); \(T i is the set of developers who can solve the defect report \(i\) when secondarily assigned; \(NT iis the set of developers who cannot solve the defect report i after the second toss; p(u j |d i ) is the defect report d i The probability of being initially assigned to developer u after one dispatch; p(u j |u k ,d j ) is the probability that after the second dispatch, the defect report d i is secondarily transferred from developer u i to developer u j . k The probability of
[0103]
[0104] The present invention adopts the core concept of the BPR Loss function (simply put: making the difference between the scores of positive and negative samples as large as possible), and designs the constraint formula of l 1 (d i ). Its purpose is to ensure that the difference between the probability that the defect report d i is first assigned to a developer who can complete the repair and the probability that it is first tossed to other personnel who cannot repair is large. The smaller the expectation of l 1 (d i ) in the overall constraint, the higher the probability p(u i |d e ) that the defect report d i is assigned to a suitable developer in the first toss based on personality preferences.
[0105]
[0106] According to the specific situation, the above formula only guarantees the first dispatch based on personality preferences. However, the real environment is complex and changeable, and the impact of the crowd wisdom relationship on the repair of defect reports is becoming more and more important. Therefore, following the core concept of the BPR Loss function, the constraint objective of l 2 (d i ) is designed. The key is to ensure that the difference between the sum of the probabilities that the defect report d i is secondarily assigned to a developer who can complete the repair and the sum of the probabilities that it is secondarily tossed to other personnel who cannot repair is large. The smaller the expectation of l 2 (d i ) in the overall constraint, the higher the sum of the probabilities i that the defect report d e is assigned to suitable repair personnel u in the second toss based on group collaboration.
[0107]
[0108] To reduce the negative impact of abnormal data on the trained model, normalize the probability of each initially assigned person to ensure that in a multi-classification task, the sum of the probabilities assigned to each person is one.
[0109]
[0110] Defect assignment is carried out in an environment with a complex personnel composition. It is not possible to constrain the model to reach an ideal state through the personality preferences of a single developer or single-group collaboration alone. Through two states, the present invention imitates the steady-state process when the entropy rate of the Markov chain converges in the two-state case, and designs l 4 (d i ), which essentially ensures that the probability of accurate first assignment based on the personality preferences of the developer is equal to the probability of accurate second assignment based on group collaboration, making the first state (the constraint l 1 (d i ) represents the first state) and the second state (the constraint l 2 (d i ) represents the second state) reach a steady state, ensuring the convergence of the entropy rate of the two-state Markov chain and preferably solving the problem of fragmentation during the aggregation of existing models.
[0111] For all defect reports, the total optimization objective is L.
[0112]
[0113] After the processed data jointly optimizes the overall optimization objective, a developer ability matrix is output.
[0114] Further, S104: Perform an interaction operation between the k vectors and the vector representation of the software defect report to be assigned, and output the most suitable developer for assignment; where the interaction operation is specifically a dot product operation.
[0115] The specific process of the present invention is to collect historical defect data from the network defect report repository by using the method of web crawlers, extract relevant developer information (historical defect Tossing relationships, defect report vector spaces), and then, based on the historical defect Tossing relationships and defect report vector spaces, through the way of joint training under the fusion of the first assignment based on personality preferences and the second assignment model based on group collaboration, project the developers into the defect report vector space to accurately construct the developer ability characteristics. When a new defect report is submitted, the present invention can compare and match the developer ability matrix to select the defect repair personnel by preference.
[0116] The present invention details how an automatic software defect assignment algorithm model based on the joint optimization of developers' personality preferences and group collaboration accurately simulates the crowdsourcing development real environment according to factors such as historical defect tossing relationships and environments, realizes the expression of developers' personality ability information, and can also express the role relationships of developers under different project organizational structures, forming an accurate construction of developers' ability characteristics, so that defect reports can be more accurately assigned to suitable developers. As Figure 2 shown, it is the overall process of the model.
[0117] Figure 2 The set construction module. The metadata information (product, component, hardware) and text data information (title, description) of the defect reports collected on the network are regarded as the input data of the first assignment model based on developers' personality preferences. First, the metadata information of the defect reports is processed by one-hot encoding, then the vector of the text information is obtained by using the pre-trained model BERT, and finally the metadata information and the text data information vector are compressed to 64 dimensions through a linear layer. The new 64-dimensional vector is used as the input of the first recommendation model, and the model is trained to recommend the best set of the top K developers who can repair the defect reports.
[0118] According to the tossing situation of the existing defect reports in history, a bipartite graph of the existing developers and the collected defect reports is constructed. Then, two types of sets are constructed based on the bipartite graph and the set of K candidate developers obtained by optimizing the first assignment model. One type is the set of developers to whom the defect reports are secondarily assigned and can repair them, and the other type is the set of developers to whom the defect reports are secondarily assigned and cannot repair them. The specific flowchart is as Figure 3 shown.
[0119] Construction of the defect report tossing roadmap: For any defect report, the present invention analyzes and extracts the Assignee field, where the removed in the field represents the defect report tosser, and the added field represents the defect report receiver. According to the collected defect reports, a defect report tossing roadmap for all developers is constructed.
[0120] Construction of the group collaboration relationship network. For a defect report, the set of developers to whom the defect report is secondarily assigned and can repair it is obtained, and the set of developers associated with the defect report is extracted from the obtained defect report tossing roadmap. The two types of developer sets reconstruct the group collaboration relationship network for the defect report (the first toss graph and the second toss graph for the defect report).
[0121] Dynamic construction of the developer ability matrix. By using the random initialization method, the initial developer ability matrix is obtained. Adopting a mode similar to the graph neural network, aggregative graph representation learning is performed on the first-throw graph based on developer personality preferences and the second-throw graph based on group collaboration relationships. For a defect report information, first, three processes of defect report vectorization, first dispatch based on developer personality preferences, and second dispatch based on group collaboration are carried out, obtaining two types of graph information on the first dispatch and the second dispatch of this defect report. Then, the aggregative graph representation is learned using the obtained two types of graph information and the initial developer matrix. The learned loss is returned, and the initial developer ability matrix is updated to generate a new developer ability matrix. Finally, a set of defect reports is iterated and incrementally learned to obtain the final developer ability matrix.
[0122] Negative sampling strategy based on the group collaboration relationship network. For a defect report, the set of developers who cannot fix it after the second dispatch of the defect report is obtained, and the set of developers who do not belong to the final fixers of the defect report is obtained from the defect report throwing roadmap. The two developer sets reconstruct the negative sample relationship collaboration information regarding the defect report.
[0123] Embodiment 2
[0124] This embodiment provides a defect assignment system based on the joint optimization of personality preferences and group collaboration;
[0125] A defect assignment system based on the joint optimization of personality preferences and group collaboration includes:
[0126] An acquisition module, which is configured to: acquire software defect reports to be assigned;
[0127] An extraction module, which is configured to: extract the vector representation of the metadata of the software defect reports to be assigned;
[0128] A determination module, which is configured to: determine the optimal set of k developer candidates based on the vector representation of the software defect reports to be assigned;
[0129] A recommendation module, which is configured to: extract k vectors related to the optimal k developers from the developer ability matrix; perform an interaction operation on the k vectors and the vector representation of the software defect reports to be assigned, and output the most suitable developer to be assigned.
[0130] It should be noted here that the above-mentioned acquisition module, extraction module, determination module, and recommendation module correspond to steps S101 to S104 in the first embodiment. The examples and application scenarios implemented by the above-mentioned modules and the corresponding steps are the same, but are not limited to the content disclosed in the first embodiment. It should be noted that the above-mentioned modules, as part of the system, can be executed in a computer system such as a set of computer-executable instructions.
[0131] In the above embodiments, the descriptions of each embodiment have their own focuses. For parts not detailed in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0132] The proposed system can be implemented in other ways. For example, the system embodiments described above are merely illustrative. For example, the above-mentioned module division is only a logical function division. In actual implementation, there can be other division methods. For example, multiple modules can be combined or integrated into another system, or some features can be ignored or not executed.
[0133] Embodiment Three
[0134] This embodiment also provides an electronic device, including: one or more processors, one or more memories, and one or more computer programs; wherein, the processor is connected to the memory, and the above-mentioned one or more computer programs are stored in the memory. When the electronic device runs, the processor executes the one or more computer programs stored in the memory so that the electronic device executes the method described in the first embodiment above.
[0135] It should be understood that in this embodiment, the processor can be a central processing unit CPU, and the processor can also be other general-purpose processors, digital signal processors DSP, application-specific integrated circuits ASIC, off-the-shelf programmable gate arrays FPGA, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
[0136] The memory can include a read-only memory and a random access memory, and provide instructions and data to the processor. A part of the memory can also include a non-volatile random access memory. For example, the memory can also store information about the device type.
[0137] In the implementation process, each step of the above method can be completed by the integrated logic circuit in the hardware of the processor or the instructions in the form of software.
[0138] The method in Embodiment 1 can be directly implemented by a hardware processor, or by a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the art such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, register, etc. This storage medium is located in the memory, and the processor reads the information in the memory and combines its hardware to complete the steps of the above method. To avoid repetition, it will not be described in detail here.
[0139] Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in conjunction with this embodiment can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered to exceed the scope of the present invention.
[0140] Embodiment 4
[0141] This embodiment also provides a computer-readable storage medium for storing computer instructions. When the computer instructions are executed by a processor, the method described in Embodiment 1 is completed.
[0142] The above are only the preferred embodiments of the present invention and are not used to limit the present invention. For those skilled in the art, the present invention can have various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. A defect assignment method based on the combined optimization of personal preferences and group collaboration, characterized in that Including: Obtain software defect reports to be dispatched; Extract the vector representation of the metadata of the software defect reports to be dispatched; Based on the vector representation of the software defect reports to be dispatched, determine the optimal set of k developer candidates; Extract k vectors corresponding to the optimal k developers from the developer ability matrix; perform an interaction operation on the k vectors and the vector representation of the software defect reports to be dispatched, and output the most suitable developer to be dispatched. Among them, the process of obtaining the developer ability matrix includes: Obtain software historical defect reports; Vectorize the software historical defect reports to obtain the vector representation of the historical defect reports; Input the vector representation of the historical defect reports into the trained first recommendation model, and output the best set of the top K developers who can repair the defect reports; according to the best set of the top K developers who can repair the defect reports, obtain the first toss graph of the current defect report; Implement secondary dispatching based on group collaboration to obtain the secondary toss graph of the current defect report; Use the obtained first toss graph of the current defect report, the secondary toss graph of the current defect report, and the initialized developer ability matrix to implement the learning of the aggregated graph representation; during the learning process, calculate the total loss function, and update the initialized developer ability matrix according to the value of the total loss function to obtain the final developer ability matrix.
2. The defect assignment method based on the combined optimization of personality preferences and group collaboration as described in claim 1, characterized in that, Extract the vector representation of the metadata of the software defect reports to be dispatched; specifically including: Encode the metadata of the software defect reports to be dispatched to obtain a first encoding result; Encode the text data of the software defect reports to be dispatched to obtain a second encoding result; Concatenate the first encoding result and the second encoding result, and obtain the vector representation of the software defect reports to be dispatched through a fully connected layer.
3. The defect assignment method based on joint optimization of personality preferences and group collaboration as described in claim 1, characterized in that, Based on the vector representation of the software defect reports to be dispatched, determine the optimal set of k developer candidates; specifically including: Input the vector representation of the software defect reports to be dispatched into the trained first recommendation model, and output the optimal set of k developer candidates who can solve the software defects in the reports to be dispatched; the first recommendation model is implemented using a support vector machine or a Bayesian model.
4. The defect assignment method based on joint optimization of personality preferences and group collaboration according to claim 3, characterized in that, The training process of the trained first recommendation model includes: Construct a training set; the training set includes software historical defect reports with known assignment results; Input the training set into the first recommendation model to train the model and obtain the trained first recommendation model; Among them, the assignment result refers to assigning software historical defect reports to software developers who can solve the software defects and assigning software historical defect reports to software developers who cannot solve the software defects.
5. The defect assignment method based on the joint optimization of personality preferences and group collaboration as described in claim 1, characterized in that, Implement secondary dispatching based on group collaboration to obtain the secondary toss graph of the current defect report; specifically including: Construct a bipartite graph of existing developers and the i-th defect report collected according to the tossing situation of the historical defect reports; i is a positive integer; Construct two types of sets based on the bipartite graph and the K - bit developer candidate set optimized by the first - dispatch model: one is the set of developers to whom the i - th defect report is second - dispatched and can fix it, and the other is the set of developers to whom the i - th defect report is second - dispatched and cannot fix it; Construct a defect - report throwing roadmap for all developers based on historical defect reports; based on the defect - report throwing roadmap, extract the set of developers associated with the i - th defect report and the set of developers who do not belong to the final fixers of the i - th defect report; Based on the set of developers to whom the i - th defect report is second - dispatched and can fix it and the set of developers associated with the i - th defect report, reconstruct the positive - sample group collaboration relationship network for the i - th defect report; based on the set of developers to whom the i - th defect report is second - dispatched and cannot fix it and the set of developers who do not belong to the final fixers of the i - th defect report, reconstruct the negative - sample group collaboration relationship network for the i - th defect report; Based on the positive and negative sample group collaboration relationship networks, implement the second - dispatch of the i - th defect report and construct the second - throwing graph of the i - th defect report.
6. The defect assignment method based on the joint optimization of personality preferences and group collaboration as described in claim 1, characterized in that, Utilize the first - throwing graph of the currently obtained defect report, the second - throwing graph of the currently obtained defect report, and the initialized developer ability matrix to achieve the learning of the aggregated graph representation; During the learning process, calculate the total loss function and update the initialized developer ability matrix according to the value of the total loss function to obtain the final developer ability matrix; among them, the total loss function includes the summation of four parts; The first part means: ensuring that the difference between the probability that the i - th defect report is first - dispatched to a developer who can complete the repair and the probability of being first - thrown to other developers who cannot repair is the largest; The second part means: ensuring that the difference between the sum of the probabilities that the i - th defect report is second - dispatched to a developer who can complete the repair and the sum of the probabilities of being second - thrown to other developers who cannot repair is the largest; The third part means: normalizing the probability of each initial - dispatch person to ensure that in a multi - classification task, the sum of the probabilities assigned to each developer is one; The fourth part means: ensuring that the probability of accurate first - dispatch based on developer personality preferences is equal to the probability of accurate second - dispatch based on group collaboration through constraints.
7. A defect assignment system based on the joint optimization of personal preferences and group collaboration, characterized in that Including: An acquisition module, which is configured to: acquire the software defect report to be dispatched; An extraction module, which is configured to: extract the vector representation of the metadata of the software defect report to be dispatched; A determination module, which is configured to: based on the vector representation of the software defect report to be dispatched, determine the optimal set of k developer candidates; A recommendation module, which is configured to: extract k vectors related to the optimal k developers from the developer ability matrix; perform an interaction operation on the k vectors and the vector representation of the software defect report to be dispatched, and output the most suitable developer to be dispatched. Among them, the process of obtaining the developer ability matrix includes: Acquire software historical defect reports; Vectorize the software historical defect reports to obtain the vector representation of the historical defect reports; Input the vector representation of historical defect reports into the trained first recommendation model, and output the set of the top K developers who can best repair the defect reports; obtain the first toss graph of the current defect report according to the set of the top K developers who can best repair the defect reports. Implement quadratic assignment based on group collaboration to obtain the second toss graph of the current defect report. Utilize the obtained first toss graph of the current defect report, the second toss graph of the current defect report, and the initialized developer ability matrix to implement the learning of aggregated graph representation; during the learning process, calculate the total loss function, and update the initialized developer ability matrix according to the value of the total loss function to obtain the final developer ability matrix.
8. An electronic device, comprising: A memory for non-temporarily storing computer-readable instructions; And A processor for running the computer-readable instructions, wherein, when the computer-readable instructions are run by the processor, the method according to any one of claims 1-6 above is executed.
9. A storage medium, characterized in that, Non-temporarily store computer-readable instructions, wherein when the non-temporary computer-readable instructions are executed by a computer, the instructions for executing the method according to any one of claims 1-6 are executed.
Citation Information
Patent Citations
Method for distributing bug reports based on multi-feature bug redistribution diagrams
CN102629230A
Defect automatic dispatching method and system fusing defect historical throwing relation
CN113157580A