A bug quantity estimation method, device, equipment and storage medium
By comparing and screening data on projects on the same platform and the same R&D team, the BUG curve prediction that does not depend on the number of codes in vehicle computer software testing is achieved, solving the disadvantages of relying on experience in the existing technology, and improving the scientificity and accuracy of the prediction.
Patent Information
- Application Number
- CN202310849643.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-11
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2043-07-11
AI Technical Summary
The prior art relies on the number of codes in vehicle computer software testing to estimate the BUG curve, resulting in the fact that when a thousand lines of code cannot be obtained, the BUG estimate depends on experience and lacks scientificity and accuracy.
Data comparison is performed through iterative projects on the same platform and R&D projects on the same R&D team, reference projects are screened, project bug data that meets the screening conditions are collected, and the bug curves of new projects are sorted and estimated.
The BUG curve prediction that does not depend on the number of thousands of lines of code is realized, which improves the scientificity and accuracy of the prediction, and can effectively predict the BUG distribution and number without obtaining the number of codes.
Smart Images

Figure CN116909893B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of automobile software testing, and more specifically, relates to a bug curve prediction method, device, equipment and storage medium. Background Art
[0002] The modern car software testing industry is booming, and the requirements for car software testing are gradually increasing. For example, in the early stages of car project development, how to submit the testing manpower required for the project must be considered based on multiple dimensions such as the complexity of project functions, development cycle, and bug curve. Among them, most current bug curve estimates rely on the number of thousands of lines of code to make judgments, and many companies are currently conducting secondary development based on open source code, so it is difficult to obtain thousands of lines of code, which leads to the fact that bug estimates are generally verbally fabricated based on the experience of senior personnel. Summary of the invention
[0003] In response to the above defects or improvement needs of the prior art, the present invention proposes a method, device, equipment and storage medium for estimating the BUG curve without relying on the number of thousands of lines of code, and compares data through iterative projects on the same platform and R&D projects of the same R&D team, so as to achieve the purpose of estimating the BUG curve.
[0004] To achieve the above object, according to one aspect of the present invention, a bug curve prediction method is provided, comprising:
[0005] When establishing a new project, screen reference projects from multiple dimensions and collect project BUG data that meets the screening criteria from each reference project;
[0006] Sort the reference projects by the time between the reference project and the current R&D project, and select the reference project with the shortest time between the reference project and the current R&D project;
[0007] Estimate the total number of new project bugs based on the project bug data of the sorted reference projects, the project bug data of the reference projects with the shortest development time from the current one, and the total number of reference projects;
[0008] Estimate the distribution of bugs of different levels in the entire cycle of the new project based on the proportion of various bug data in the sorted reference projects and the total number of reference projects;
[0009] Estimate the number of bugs at different stages of a new project and estimate the percentage of bug levels at different stages of a new project.
[0010] In some optional implementation schemes, when a new project is established, reference projects are screened from multiple dimensions, including:
[0011] When a new project is established, reference projects are screened from four dimensions. The first dimension includes: products with the same underlying framework platform and secondary development of the same underlying framework; the second dimension includes: R&D team reuse above the first preset value; the third dimension includes: project development cycle similarity to the second preset value; the fourth dimension includes: functional complexity above the third preset value.
[0012] In some optional implementation schemes, the reference projects are sorted according to the time between the reference project and the current development, and the reference project with the shortest time between the reference project and the current development is selected, including:
[0013] Sort the reference projects into project A, project B, project C, project D, ... according to the time from the reference project to the current R&D, and take the reference project with the shortest time from the current R&D as reference project X;
[0014] Invalid bugs in the bug data of each reference project are eliminated to obtain the total number of bugs in each reference project, and the remaining bugs after elimination in each reference project are sorted according to the time of submission, submission stage, bug level and total number of stages.
[0015] In some optional implementation schemes, the total number of bugs in the new project is estimated by (total number of bugs in reference project B / total number of bugs in reference project A + total number of bugs in reference project C / total number of bugs in reference project B + total number of bugs in reference project D / total number of bugs in reference project C + ...) * total number of bugs in reference project X / total number of reference projects.
[0016] In some optional implementation schemes, the distribution of bugs of different levels in the entire cycle of the new project is estimated by (the proportion of a certain type of bugs in reference project A + the proportion of a certain type of bugs in reference project B + the proportion of a certain type of bugs in reference project C + ...) / the total number of reference projects.
[0017] In some optional implementation schemes, estimating the number of bugs in different stages of the new project includes:
[0018] Compare the bug distribution of all reference projects to get the ratio of bugs in different stages of the new project. Then multiply the ratio of bugs in different stages of the new project by the total number of bugs in the new project to get the estimated number of bugs in different stages of the new project.
[0019] Eliminate the bugs that do not meet the preset requirements in the reference project X, combine the bug proportions of project A, project B, project C, ... at different stages and take the average value, and intercept the average value of the bug proportion in the reference project X for the remaining part;
[0020] Use the combined mean of the bug ratios of project A, project B, project C, ... at different stages * the estimated number of bugs in the corresponding stage of the new project, as well as the average of the bug ratios in the reference project X * the estimated number of bugs in the corresponding stage of the new project to obtain the estimated number of bugs at different stages in the new project.
[0021] In some optional implementation schemes, the estimated BUG level ratios at different stages in the new project include:
[0022] Compare the bug level distribution of all reference projects at different stages to get the bug level ratio corresponding to different stages in the new project. Use the bug level ratio corresponding to different stages in the new project * the estimated number of bugs in the corresponding stage in the new project to get the estimated number of bugs of different levels in different stages.
[0023] Eliminate the bugs that do not meet the preset requirements in the reference project X, combine the proportions of different levels of bugs in different stages of project A, project B, project C, etc. and take the average value. The remaining part is the average proportion of the distribution of different levels of bugs in the reference project X.
[0024] The proportion of bug levels in different stages of the new project is obtained by combining the average of the proportions of bugs at different levels in projects A, B, C, ... at different stages * the estimated number of bugs in the corresponding stage in the new project, as well as the average of the proportions of bugs at different levels in the reference project X * the estimated number of bugs in the corresponding stage in the new project.
[0025] According to another aspect of the present invention, a bug curve prediction device is provided, comprising:
[0026] The screening and collection module is used to screen reference projects from multiple dimensions when establishing a new project, and collect project BUG data that meets the screening criteria in each reference project;
[0027] A sorting module is used to sort the reference projects according to the length of time between the reference projects and the current development, and select the reference project with the shortest development time between the reference projects and the current development;
[0028] The estimation module is used to estimate the total number of bugs in the new project based on the project bug data in the sorted reference projects, the project bug data in the reference project with the shortest development time from the current one, and the total number of reference projects; estimate the distribution of bugs of different levels in the entire cycle of the new project based on the proportion of various types of bug data in the sorted reference projects and the total number of reference projects; estimate the number of bugs in different stages of the new project and estimate the proportion of bug levels in different stages of the new project.
[0029] According to another aspect of the present invention, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of any one of the above methods when executing the computer program.
[0030] According to another aspect of the present invention, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the steps of any one of the above methods are implemented.
[0031] In general, the above technical solutions conceived by the present invention can achieve the following beneficial effects compared with the prior art:
[0032] The method for estimating the BUG curve without relying on the number of thousands of lines of code proposed in the present invention is mainly to achieve the purpose of estimating the BUG curve by comparing data of the iterative vehicle computer project on the same platform and the R&D projects of the same R&D team when the number of thousands of lines of code cannot be counted for the vehicle computer project. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] Figure 1 It is a flowchart of a bug curve prediction method provided by an embodiment of the present invention;
[0034] Figure 2 1 is a reference diagram of BUG prediction provided by an embodiment of the present invention, wherein (a) is a table diagram, and (b) is a curve diagram of each stage;
[0035] Figure 3 It is a structural schematic diagram of a bug curve prediction device provided by an embodiment of the present invention;
[0036] Figure 4 It is a structural schematic diagram of a computer device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0037] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0038] like Figure 1 FIG. 1 is a flow chart of a bug curve prediction method provided by an embodiment of the present invention, comprising the following steps:
[0039] S101: When establishing a new project, screen reference projects from multiple dimensions and collect project BUG data that meets the screening criteria from each reference project;
[0040] S102: Sort the reference projects according to the time between the reference projects and the current development time, and select the reference project with the shortest time between the reference projects and the current development time;
[0041] S103: estimating the total number of new project bugs based on the project bug data of the sorted reference projects, the project bug data of the reference projects with the shortest development time from the current one, and the total number of reference projects;
[0042] S104: Estimate the distribution of bugs of different levels in the entire cycle of the new project based on the proportion of various bug data in the sorted reference projects and the total number of reference projects;
[0043] S105: Estimate the number of bugs at different stages in new projects and the proportion of bug levels at different stages in new projects.
[0044] In the embodiment of the present invention, step S101 can be specifically implemented in the following manner:
[0045] When a new project is established, reference projects are screened from four dimensions: The first dimension includes: the same underlying framework platform, such as secondary development based on Android and Linux, etc. For products with secondary development of the same underlying framework, the applicability of this method will become higher, which is determined by the characteristics of the product architecture in the software development link. For products currently on the market that are secondary developed based on open source code, the complexity of the underlying architecture determines to a certain extent the quality of secondary development of upper-level applications. The second dimension includes: the R&D team reuses more than the first preset value (such as 70%). This is to ensure that the developers' coding ability and writing style are highly similar. The third dimension includes: the second preset value of the project development cycle similarity (such as 90%). The length of the R&D cycle and the quality requirements for products at different cycle nodes are different, and the test manpower invested is different, which will cause certain interference to the test output and the number of bugs. Therefore, the higher the similarity of the development cycle, the more accurate it is. The fourth dimension includes: the functional complexity is above the third preset value (such as 80%). The development of new functions may cause some unexpected quality problems. Controlling the degree of functional complexity within a certain range can reduce the error of the final estimated data. When the functional differences are too large, the quality risks cannot be controlled.
[0046] In the embodiment of the present invention, step S102 can be specifically implemented in the following manner:
[0047] Collect the project BUG data that meets the above four-dimensional screening conditions from the reference projects in step S101, and sort the reference projects in step S101 into project A, project B, project C, project D, etc. according to the time from the reference projects in step S101 to the current research and development, and so on, where the reference project with the shortest time from the current time is taken as project X. The more reference projects in this part, the more accurate the final prediction result. Eliminate invalid BUGs in the BUG data of each reference project, such as duplicates, non-BUGs, etc., and screen and sort the remaining BUGs after elimination according to the time of proposal, proposal stage, BUG level, and total number of stages, where the BUG levels are uniformly classified into four categories: A+, A, B, and C.
[0048] In the embodiment of the present invention, step S103 can be specifically implemented in the following manner:
[0049] The reference number of bugs in the new project is: [total number of bugs in reference project B / total number of bugs in reference project A + total number of bugs in reference project C / total number of bugs in reference project B + total number of bugs in reference project D / total number of bugs in reference project C +…, and so on] * total number of bugs in reference project X / total number of reference projects.
[0050] In the embodiment of the present invention, step S104 can be specifically implemented in the following manner:
[0051] The distribution of bugs of different levels during the entire cycle of a new project is: [the proportion of a certain type of bug in reference project A + the proportion of a certain type of bug in reference project B + the proportion of a certain type of bug in reference project C +…, and so on] / the total number of reference projects.
[0052] In the embodiment of the present invention, step S104 can be specifically implemented in the following manner:
[0053] Number of bugs in different stages of the new project: Compare the bug distribution of all reference projects (i.e. the bug ratio at different stages) to obtain the bug ratio corresponding to different stages of the new project, and then multiply the bug ratio at different stages of the new project by the total number of bugs in the new project to obtain the estimated number of bugs in different stages of the new project, such as project stages such as function dredging, full-function version, DV stage, ET stage, PV stage, SOP stage, etc., exclude some extreme, explosively growing or decreasing stage bug totals in reference project X, merge the bug ratios (percentages) of reference projects A, B, C, ... at different stages and take the average value, intercept the average bug ratio in reference project X for the remaining relatively smooth growth and decrease, and use the combined average of the bug ratios of reference projects A, B, C, ... at different stages * the estimated number of bugs in the corresponding stage of the new project, and the average bug ratio of the intercepted reference project X * the estimated number of bugs in the corresponding stage of the new project to obtain the number of bugs in different stages of the new project.
[0054] The bug level ratio of different stages in the new project: Compare the bug level distribution of different stages of all reference projects to obtain the bug level ratio of different stages in the new project. Use the bug level ratio of different stages in the new project * the estimated number of bugs in the corresponding stage of the new project obtained in step S104 to obtain the estimated number of bugs of different levels in the stage, such as function dredging, full-function version, DV stage, ET stage, PV stage, SOP stage and other project stages, and eliminate some extreme, explosive growth or reduced stage bugs in reference project X. Data, combine the proportions (percentages) of different levels of bugs in different stages of reference projects A, B, C, ... and take the average value. For the remaining relatively smooth growth and decrease parts, intercept the average value of the proportions of different levels of bugs in reference project X. Use the combined average of the proportions of different levels of bugs in different stages of reference projects A, B, C, ... * the estimated number of bugs in the corresponding stage in the new project, and the average value of the proportions of different levels of bugs in the intercepted reference project X * the estimated number of bugs in the corresponding stage in the new project, to obtain the proportions of bug levels in different stages of the new project.
[0055] After the above-mentioned data is calculated, the new project's new bug and total bug curves can be formed, thereby helping the R&D manager to determine the changes in manpower invested in the project through the estimation of new bugs at different stages. The BUG curve calculated by this method has a deviation of less than 20% in the early stage and about 10% in the late stage of the project. Figure 2 As shown, (a) is a table diagram, and (b) is a curve diagram of each stage.
[0056] like Figure 3FIG. 1 is a schematic diagram of a bug curve prediction device provided by an embodiment of the present invention, comprising:
[0057] The screening and collection module 301 is used to screen reference projects from multiple dimensions when a new project is established, and collect project BUG data that meets the screening conditions in each reference project;
[0058] A sorting module 302 is used to sort the reference projects according to the length of time between the reference projects and the current development, and select the reference project with the shortest time between the reference projects and the current development;
[0059] The estimation module 303 is used to estimate the total number of bugs in the new project based on the project bug data in the sorted reference projects, the project bug data in the reference project with the shortest development time from the current one, and the total number of reference projects; estimate the distribution of bugs of different levels in the entire cycle of the new project based on the proportion of each type of bug data in the sorted reference projects and the total number of reference projects; estimate the number of bugs in different stages of the new project and estimate the proportion of bug levels in different stages of the new project.
[0060] The specific implementation of each module can refer to the description of the above method embodiment, and the embodiment of the present invention will not be repeated.
[0061] like Figure 4 The figure is a schematic diagram of the structure of a computer device provided by an embodiment of the present invention, such as a smart phone, tablet computer, laptop computer, desktop computer, rack server, blade server, tower server or cabinet server (including an independent server, or a server cluster composed of multiple servers) that can execute programs. The computer device 20 of this embodiment includes at least but is not limited to: a memory 21 and a processor 22 that can communicate with each other via a system bus, such as Figure 4 It should be pointed out that Figure 4 Only computer device 20 is shown with components 21 - 22 , but it should be understood that implementing all of the components shown is not a requirement, and more or fewer components may alternatively be implemented.
[0062] In this embodiment, the memory 21 (i.e., readable storage medium) includes flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM). The memory 21 may also be an external storage device of the computer device 20, such as a plug-in hard disk, a smart memory card (Smart Media Card, SMC), a secure digital (Secure Digital, SD) card, a flash card (Flash Card), etc. equipped on the computer device 20. Of course, the memory 21 may also include both the internal storage unit of the computer device 20 and its external storage device. In this embodiment, the memory 21 is generally used to store the operating system and various application software installed on the computer device 20, such as the program code of the bug curve prediction device in the method embodiment. In addition, the memory 21 may also be used to temporarily store various data that have been output or are to be output.
[0063] The processor 22 may be a central processing unit (CPU), a controller, a microcontroller, a microprocessor, or other data processing chips in some embodiments. The processor 22 is generally used to control the overall operation of the computer device 20. In this embodiment, the processor 22 is used to run the program code stored in the memory 21 or process data, such as running the bug curve prediction device to implement the bug curve prediction method in the method embodiment.
[0064] The present application also provides a computer-readable storage medium, such as a flash memory, a hard disk, a multimedia card, a card-type memory (e.g., an SD or DX memory, etc.), a random access memory (RAM), a static random access memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM), a magnetic memory, a disk, an optical disk, a server, an App application store, etc., on which a computer program is stored, and the program implements the corresponding function when executed by the processor. The computer-readable storage medium of this embodiment is used to store a bug curve prediction device, and when executed by the processor, implements the bug curve prediction method of the method embodiment.
[0065] It should be pointed out that, according to the needs of implementation, the various steps / components described in this application can be split into more steps / components, and two or more steps / components or partial operations of steps / components can be combined into new steps / components to achieve the purpose of the present invention.
[0066] It will be easily understood by those skilled in the art that the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the present invention.
Claims
1. A bug quantity estimation method, characterized in that: include: When establishing a new project, screen reference projects from multiple dimensions and collect project BUG data that meets the screening criteria from each reference project; Sort the reference projects by the time between the reference project and the current R&D project, and select the reference project with the shortest time between the reference project and the current R&D project; Estimate the total number of new project bugs based on the project bug data of the sorted reference projects, the project bug data of the reference projects with the shortest development time from the current one, and the total number of reference projects; Estimate the distribution of bugs of different levels in the entire cycle of the new project based on the proportion of various bug data in the sorted reference projects and the total number of reference projects; Estimate the number of bugs in different stages of the new project and the proportion of bug levels in different stages of the new project; When establishing a new project, reference projects are screened from multiple dimensions, including: When a new project is established, reference projects are screened from four dimensions. The first dimension includes: products with the same underlying framework platform and secondary development of the same underlying framework; the second dimension includes: R&D team reuse above the first preset value; the third dimension includes: project development cycle similarity to the second preset value; the fourth dimension includes: functional complexity above the third preset value.
2. The method according to claim 1, characterized in that The reference projects are sorted according to the time between the reference project and the current development time, and the reference project with the shortest time between the reference project and the current development time is selected, including: Sort the reference projects into project A, project B, project C, project D, ... according to the time from the reference project to the current R&D, and take the reference project with the shortest time from the current R&D as reference project X; Invalid bugs in the bug data of each reference project are eliminated to obtain the total number of bugs in each reference project, and the remaining bug data after elimination in each reference project are screened and sorted according to the time of submission, submission stage, bug level and total number of stages.
3. The method according to claim 2, characterized in that Estimate the total number of bugs in the new project by (total number of bugs in reference project B / total number of bugs in reference project A + total number of bugs in reference project C / total number of bugs in reference project B + total number of bugs in reference project D / total number of bugs in reference project C + …) * total number of bugs in reference project X / total number of reference projects.
4. The method according to claim 2, characterized in that: The distribution of bugs of different levels in the entire cycle of the new project can be estimated by (the proportion of a certain type of bug in reference project A + the proportion of a certain type of bug in reference project B + the proportion of a certain type of bug in reference project C + …) / the total number of reference projects.
5. The method according to claim 2, characterized in that: The estimated number of bugs in different stages of the new project includes: Compare the bug distribution of all reference projects to get the ratio of bugs in different stages of the new project. Then multiply the ratio of bugs in different stages of the new project by the total number of bugs in the new project to get the estimated number of bugs in different stages of the new project. Eliminate the bugs that do not meet the preset requirements in the reference project X, combine the bug proportions of project A, project B, project C, ... at different stages and take the average value, and intercept the average bug proportion in the reference project X for the remaining part; Use the combined mean of the bug ratios of project A, project B, project C, ... at different stages * the estimated number of bugs in the corresponding stage of the new project, as well as the average of the bug ratios in the reference project X * the estimated number of bugs in the corresponding stage of the new project to obtain the estimated number of bugs at different stages in the new project.
6. The method according to claim 2, characterized in that The estimated proportion of bug levels at different stages in new projects includes: Compare the bug level distribution of all reference projects at different stages to get the bug level ratio corresponding to different stages in the new project. Use the bug level ratio corresponding to different stages in the new project * the estimated number of bugs in the corresponding stage in the new project to get the estimated number of bugs of different levels in different stages. Eliminate the bugs that do not meet the preset requirements in the reference project X, combine the proportions of different levels of bugs in different stages of project A, project B, project C, etc. and take the average value. The remaining part is the average proportion of the distribution of different levels of bugs in the reference project X. The proportion of bug levels in different stages of the new project is obtained by combining the average of the proportions of bugs at different levels in projects A, B, C, ... at different stages * the estimated number of bugs in the corresponding stage in the new project, as well as the average of the proportions of bugs at different levels in the reference project X * the estimated number of bugs in the corresponding stage in the new project.
7. A bug quantity estimation device, characterized in that: include: The screening and collection module is used to screen reference projects from multiple dimensions when establishing a new project, and collect project BUG data that meets the screening criteria in each reference project; Among them, when establishing a new project, reference projects are screened from multiple dimensions, including: When a new project is established, reference projects are screened from four dimensions. The first dimension includes: products with the same underlying framework platform and secondary development of the same underlying framework; the second dimension includes: the R&D team reuses more than the first preset value; the third dimension includes: the similarity of the project development cycle to the second preset value; the fourth dimension includes: the degree of functional complexity is more than the third preset value; A sorting module is used to sort the reference projects according to the length of time between the reference projects and the current development, and select the reference project with the shortest development time between the reference projects and the current development; The estimation module is used to estimate the total number of bugs in the new project based on the project bug data in the sorted reference projects, the project bug data in the reference project with the shortest development time from the current one, and the total number of reference projects; estimate the distribution of bugs of different levels in the entire cycle of the new project based on the proportion of various types of bug data in the sorted reference projects and the total number of reference projects; estimate the number of bugs in different stages of the new project and estimate the proportion of bug levels in different stages of the new project.
8. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method according to any one of claims 1 to 6 when executing the computer program.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.
Citation Information
Patent Citations
Software system research and development quality evaluation method and system, storage medium and electronic equipment
CN112328490A
Software project quality prediction method, prediction system and medium
CN114238080A