A method for checking software quality and related products
By generating inspection reports and matching them with the database, and utilizing fingerprint technology, the problem of high false alarm rates in automated inspection tools was solved, achieving efficient and accurate software quality inspection and reducing the workload of R&D personnel.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-26
- Publication Date
- 2026-03-24
AI Technical Summary
Existing automated inspection tools have a high false alarm rate in software quality checks, which requires developers to spend a lot of time verifying the inspection results, increasing their workload.
By generating inspection reports and matching them with issues in the database, the system can directly determine the confirmation results or present them to the user for confirmation, reducing the need for repeated confirmations by the user. It also utilizes fingerprint matching to improve accuracy and avoid errors caused by code or log formats.
It reduced the workload of R&D personnel, improved the efficiency and accuracy of software problem identification, and reduced the false alarm rate.
Smart Images

Figure CN115964260B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of computer, and in particular, to a software quality checking method and related products. BACKGROUND
[0002] In software engineering, in order to improve software quality, an automatic checking tool is used in the software development process to periodically and continuously check the software quality, so as to find functional defects, security vulnerabilities, sensitive information leakage and other software problems in the software, and then the checking results are fed back to the developers for processing and repairing, so as to improve the software quality.
[0003] However, the current automatic checking tool is not completely accurate in checking the software quality, and some checks also require the automatic checking tool to find as many suspicious problems (for example, sensitive information leakage) in the software as possible, both of which result in a high false positive rate of the checking results generated by the automatic checking tool, that is, the problems checked may not be software problems, so that the developers need to invest a lot of time and effort to confirm whether the checking results are false positives. Therefore, how to ensure software quality while reducing the workload of developers is a problem that needs to be solved at present. SUMMARY
[0004] The present application discloses a software quality checking method and related products, which can ensure software quality while reducing the workload of developers.
[0005] In a first aspect, the present application provides a software quality checking method, which comprises the following steps: generating a checking report of a first software, the checking report comprising a first problem, and then matching the first problem with a plurality of problems in a database, wherein the database comprises the plurality of problems and the confirmation result of each problem. In the case that the first problem matches any one of the plurality of problems, the confirmation result of the first problem is determined as the confirmation result of the matched problem; in the case that the first problem does not match any of the plurality of problems, the first problem is presented to a user for confirmation of a software problem, so as to determine whether the first problem is a problem in the first software.
[0006] In the above method, by matching the first problem with the plurality of problems in the database, when the first problem matches a certain problem in the database, the confirmation result of the first problem can be directly determined according to the database, without the need for the user to confirm the software problem of the first problem, so as to reduce the workload of the user.
[0007] In a possible implementation, after the first question is presented to the user for confirmation of the software problem, the method further includes: obtaining the confirmation result of the user on the first question, and then storing the first question and the confirmation result of the first question in association to the database. Through the implementation, when the first question is checked in the subsequent quality check process of the first software, the database can be directly referred to to confirm whether the first question is a software problem, thereby further reducing the workload of the user.
[0008] In a possible implementation, the check report further includes a second question, and the method further includes: in a case where the first question does not match the plurality of questions and the first question matches the second question, presenting the first question and the second question to the user for confirmation of the software problem. In this way, the user does not need to repeatedly confirm the same question, the efficiency of the software problem confirmation is improved, and the workload of the user is reduced.
[0009] In a possible implementation, the database further includes a fingerprint of each question, and the matching of the first question with the plurality of questions includes: extracting the fingerprint of the first question, where the fingerprint of the first question is used to identify the first question, and then matching the fingerprint of the first question with the fingerprint of each question in the database. Through the matching of the fingerprints, whether the first question matches the question in the database can be determined, and the accuracy of the question matching can be improved.
[0010] In a possible implementation, the generation of the check report of the first software includes: obtaining the code of the first software, and then checking the code of the first software to obtain the check report of the first software. The extraction of the fingerprint of the first question includes: pre-processing the code associated with the first question according to a preset format, and then performing feature extraction on the processed code to obtain the fingerprint of the first question. Through the implementation, the inaccuracy of the fingerprint of the question caused by the format of the code can be avoided, and the accuracy of the question matching can be improved.
[0011] In a possible implementation, the generation of the check report of the first software includes: obtaining the running log of the first software, and then checking the running log of the first software to obtain the check report of the first software. The extraction of the fingerprint of the first question includes: obtaining log information associated with the first question, and then performing feature extraction on non-format information in the log information to obtain the fingerprint of the first question. Through the implementation, the inaccuracy of the fingerprint of the question caused by the format information (for example, time, line number, etc.) of the log information can be avoided, and the accuracy of the question matching can be improved.
[0012] In a second aspect, the present application provides a software quality checking device, which comprises a checking report generating unit, a problem matching unit and a problem determining unit. The checking report generating unit is configured to generate a checking report of a first software, the checking report comprising a first problem. The problem matching unit is configured to match the first problem with a plurality of problems in a database, wherein the database comprises the plurality of problems and a confirmation result of each problem. The problem determining unit is configured to determine, in a case that the first problem matches any one of the plurality of problems, the confirmation result of the first problem as the confirmation result of the matched problem. The problem determining unit is further configured to present the first problem to a user for confirmation of a software problem, in a case that the first problem does not match any of the plurality of problems, to determine whether the first problem is a problem in the first software.
[0013] In a possible implementation, the problem determining unit is further configured to obtain a confirmation result of the first problem from the user, and then store the first problem and the confirmation result of the first problem in the database.
[0014] In a possible implementation, the checking report further comprises a second problem, and the problem determining unit is further configured to present the first problem and the second problem to the user for confirmation of a software problem, in a case that the first problem does not match any of the plurality of problems, and the first problem matches the second problem.
[0015] In a possible implementation, the database further comprises a fingerprint of each problem, and the problem matching unit is specifically configured to extract a fingerprint of the first problem, wherein the fingerprint of the first problem is used to identify the first problem, and then match the fingerprint of the first problem with the fingerprint of each problem in the database.
[0016] In a possible implementation, the checking report generating unit is specifically configured to obtain a code of the first software, and then check the code of the first software to obtain the checking report of the first software. The problem matching unit is specifically configured to pre-process a code associated with the first problem according to a preset format, and then extract a feature of the pre-processed code to obtain the fingerprint of the first problem.
[0017] In a possible implementation, the checking report generating unit is specifically configured to obtain a running log of the first software, and then check the running log of the first software to obtain the checking report of the first software. The problem matching unit is specifically configured to obtain log information associated with the first problem, and then extract a feature of non-format information in the log information to obtain the fingerprint of the first problem.
[0018] In a third aspect, the present application provides a computing device, comprising a processor and a memory, the memory storing computer instructions, and the processor executing the computer instructions to cause the computing device to perform the method provided by the first aspect or any possible implementation of the first aspect.
[0019] In a fourth aspect, the present application provides a computer-readable storage medium storing computer instructions, when the computer instructions are executed by a computing device, the computing device performs the method provided by the first aspect or any possible implementation of the first aspect. BRIEF DESCRIPTION OF DRAWINGS
[0020] Figure 1 is a structural schematic diagram of a software quality monitoring system provided by the present application;
[0021] Figure 2 is a functional schematic diagram of a software quality checking device 110 provided by the present application;
[0022] Figure 3 is a schematic diagram of a GUI provided by the present application;
[0023] Figure 4 is a flowchart of a software quality checking method provided by the present application;
[0024] Figure 5 is a structural schematic diagram of a software quality checking device provided by the present application;
[0025] Figure 6 is a structural schematic diagram of a computing device provided by the present application. DETAILED DESCRIPTION
[0026] The technical solutions provided by the present application will be described below in conjunction with the accompanying drawings.
[0027] In order to make the technical solutions provided by the present application clearer, before specifically describing the technical solutions provided by the present application, first introduce the application scenarios applicable to the present application: software quality checking.
[0028] The software quality checking refers to detecting the software code, the software compiling parameter, the data (for example, the sensitive information such as the user name and the password) saved in the software running process, the running environment of the software, the running log of the software and the like, determining whether the software code has the functional defects such as the infinite loop, the array out of bounds and the stack overflow, whether the sensitive information leakage problem exists, and whether the security weak point exists, and thus determining whether the software product meets the quality requirement. In the case that the software product meets the quality requirement, the software product can be used; in the case that the software product does not meet the quality requirement, the software code with the problem needs to be corrected and processed correspondingly, so as to meet the quality requirement.
[0029] Please refer to Figure 1 , Figure 1 The software quality monitoring system provided by the present application is shown, which can check the quality of the software and correct and process the problems in the software. As shown in Figure 1 The software quality monitoring system 100 provided by the present application includes the software quality checking device 110 and the software problem correction device 120. The functions of the software quality checking device 110 and the software problem correction device 120 are briefly introduced below by taking the first software as an example.
[0030] The software quality checking device 110 is used for checking the problems in the first software and sending the checked software problems to the software problem correction device 120. Specifically, as shown in Figure 2 The software quality checking device 110 generates the checking report of the first software, and then matches the problems in the checking report with the problems in the database. The database includes a plurality of problems and the confirmation result of each problem, and the confirmation result of the problem is used for indicating whether the problem is the software problem (i.e., the problem needing to be corrected by the user). Taking one problem (hereinafter referred to as the first problem) in the checking report as an example, when the software quality checking device 110 determines that the first problem matches any one of the problems in the database, and the confirmation result of the first problem indicates that the problem is the software problem, the software quality checking device 110 sends the first problem to the software problem correction device 120. When the software quality checking device 110 determines that the first problem does not match the plurality of problems in the database, the software quality checking device 110 presents the first problem to the user and acquires the confirmation result of the first problem by the user, when the confirmation result of the first problem indicates that the problem is the software problem, the software quality checking device 110 sends the first problem to the software problem correction device 120.
[0031] In an embodiment, after obtaining the confirmation result of the first problem, the software quality checking device 110 stores the first problem and the confirmation result of the first problem in the database, so that when the first problem is checked in the subsequent quality checking process of the first software, the database can be directly referred to determine whether the first problem is a software problem.
[0032] It should be understood that the checking report of the first software can include a plurality of problems that do not match the database, and there can be identical problems in the plurality of problems. For example, the checking report includes a first problem and a second problem, and the first problem and the second problem are identical. The first problem (i.e., the second problem) does not match the problem in the database. As described above, the software quality checking device 110 determines whether the first problem is a software problem by presenting the first problem to the user. Then, for the second problem, if the software quality checking device 110 still determines whether the second problem is a software problem in the above manner, it means that the user confirms the first problem twice, thereby increasing the workload of the user. Therefore, in order to avoid the increase of the workload of the user caused by the above situation, the software quality checking device 110 can present the first problem and the second problem to the user for confirmation of the software problem, so that the user only needs to confirm the first problem once.
[0033] The software problem correction device 120 is configured to receive the software problem sent by the software quality checking device 110, present the software problem to the user, receive the correction input by the user for the software problem, and obtain the first software after correction. The software problem correction device 120 is further configured to send the first software after correction to the software quality checking device 110, so that the software quality checking device 110 checks the quality of the first software after correction.
[0034] In an embodiment, the software problem correction device 120 uses a graphical user interface (GUI) to implement the functions of the software problem correction device 120. Taking the first software as an example, the code of the software problem is described as follows. Figure 3As shown, the GUI 200 includes a software problem display area 210 and a software problem correction area 220, wherein the software problem correction area 220 further includes a toolbar 221 (providing a save option, a undo option, an edit option, etc.) and a code display area 222. In a specific implementation, a plurality of software problems (including: software problem 1, software problem 2, …, software problem N, N is a positive integer) are presented on the software problem display area 210, when the user clicks the software problem 1, the code display area 222 displays the code associated with the software problem 1, then the user can modify the code by clicking the edit option in the toolbar 221, and the modified code can be saved by clicking the save option in the toolbar 221. By analogy, the user can correct all the software problems displayed on the GUI, thereby obtaining the corrected first software, and then the software problem correction device 120 sends the corrected first software to the software quality checking device 110 for further checking.
[0035] It should be understood that the software problem can also be a parameter of a running environment of the first software, a compilation parameter, etc., and the software problem correction device 120 can use different GUIs for different software problems, which will not be described here.
[0036] In the embodiments of the present application, in order to improve the software quality of the first software, the software quality monitoring system 100 periodically performs the above-mentioned operation on the first software, that is, the software quality checking device 110 periodically checks the software problems in the first software and sends the checked software problems to the software problem correction device 120 for correction.
[0037] The software quality checking method provided by the present application will be described below in combination with Figure 4 , so as to more specifically describe the function of the software quality checking device 110.
[0038] Please refer to Figure 4 , Figure 4 Fig. 1 shows a flow diagram of a software quality checking method provided by the present application. As shown in Figure 4 , the method includes but is not limited to the following steps:
[0039] S101: The software quality checking device 110 generates a checking report of the first software.
[0040] In a particular implementation, the object checked by the software quality checking apparatus 110 can be the code of the first software, can be the running log of the first software, can be the running environment of the first software, can be the compiling parameter of the first software, can be the data generated in the running process of the first software, etc., which is not limited in the present application. Then, the above checking report can be generated after the software quality checking apparatus 110 checks the code of the first software, can be generated after the software quality checking apparatus 110 checks the running log of the first software, can be generated after the software quality checking apparatus 110 checks the running environment of the first software, the compiling parameter of the first software, the data generated in the running process of the first software, etc.
[0041] The above checking report includes a plurality of problems, and the problems in the checking report are suspected software problems of the first software checked by the software quality checking apparatus 110. The above suspected software problems of the first software means that the problems can be software problems of the first software, or can not be software problems of the first software. Therefore, in order to determine whether the problems (taking the first problem as an example) in the checking report are software problems of the first software, the software quality checking apparatus 110 further performs S102-S107.
[0042] It should be noted that the software problem in the embodiment of the present application means a problem that needs to be corrected by the user in association with the code of the problem, including: functional defects, sensitive information leakage, security vulnerabilities, etc. The functional defects means errors in the software code that affect the normal operation of the software, for example, the code that causes infinite loop, stack overflow, array out-of-bounds.
[0043] S102: The software quality checking apparatus 110 matches the first problem in the checking report with the plurality of problems in the database. If the first problem matches any one of the problems in the database, S103 is performed, and if the first problem does not match any of the problems in the database, S104-S106 are performed.
[0044] The software quality checking apparatus 110 stores a database, and the database includes a plurality of problems and the confirmation result of each problem. The confirmation result of the problem is used to indicate whether the problem is a software problem.
[0045] In a specific embodiment, the database further comprises a fingerprint of each of the above-mentioned problems. The software quality checking device 110 matches the first problem in the checking report with the plurality of problems in the database by: the software quality checking device 110 extracts the fingerprint of the first problem, and then matches the fingerprint of the first problem with the fingerprint of each of the problems in the database, and in the case that the fingerprint of the first problem does not match the fingerprint of any of the problems in the database, determines that the first problem does not match any of the problems in the database. In the case that the fingerprint of the first problem matches the fingerprint of a problem in the database, determines that the first problem matches the problem in the database.
[0046] In a specific embodiment, the fingerprint of the first problem is used to identify the first problem. The fingerprint of the first problem is different when the object of the checking by the software quality checking device 110 is different, and the way of extracting the fingerprint of the first problem is different when the object of the checking by the software quality checking device 110 is different.
[0047] (1) The object of the checking is the code of the first software
[0048] It is considered that the habits of different users in writing code can be different, for example, the user who writes the first software habitually uses the space key to indent the code, while the user who corrects the first software habitually uses the tab key to indent the code. In addition, different integrated development environments (IDE) have different requirements for the format of the code. Since the software quality checking device 110 periodically checks the quality of the first software, when the software quality checking device 110 performs the Mth (M is a positive integer) quality check on the first software, if the user adjusts the format of the code associated with the first problem, then when the software quality checking device 110 performs the (M+1)th quality check on the first software, the first problem obtained after the (M+1)th quality check is consistent with the first problem obtained after the Mth quality check in terms of the description of the software problem, but the code segment associated with the first problem is inconsistent, resulting in the fingerprints of the first problems extracted before and after being inconsistent. In this case, the user needs to reconfirm whether the first problem obtained after the (M+1)th quality check is a software problem.
[0049] Therefore, the software quality checking apparatus 110 can extract the fingerprint of the first problem in the following manner: the software quality checking apparatus 110 acquires the code associated with the first problem, then processes the code associated with the first problem into code typeset in a preset format, then performs feature extraction on the processed code, and takes the extracted features as the fingerprint of the first problem. The preset format can be a format preset by a user (e.g., a user who wrote the first software), and is used to specify the format of the code of the first software, for example, all spaces are used for code indentation, or for example, one space is reserved before and after the equal sign. In this way, the code to be extracted can be unified into the same format, so as to avoid inaccurate fingerprints of problems caused by the format of the code. In addition, the embodiments of the present application do not limit the manner in which the software quality checking apparatus 110 performs feature extraction on the processed code, for example, a hash function, a neural network model, etc.
[0050] (2) The checking object is the running log of the first software
[0051] The running log of the first software refers to the log generated during the running of the first software, and is composed of multiple lines of logs, each line of log including the time when the line of log is generated, the file name of the code that generates the line of log, the line number of the line of log, and the business content, etc. It should be understood that the modification of the code will cause the time of the generated log to change, and may also cause the line number of the generated log to change. Therefore, if the software quality checking apparatus 110 directly performs feature extraction on the entire line of log associated with the first problem to obtain the fingerprint of the first problem, the fingerprints of the first problem extracted by the software quality checking apparatus 110 before and after may not be consistent, in which case the user needs to reconfirm whether the first problem is a software problem.
[0052] Therefore, the software quality checking apparatus 110 can extract the fingerprint of the first problem in the following manner: the software quality checking apparatus 110 acquires the log information associated with the first problem, then performs feature extraction on the non-format information in the log information, and takes the extracted features as the fingerprint of the first problem. The format information of the log information refers to the information in the log information that affects problem matching, and can specifically include the generation time of the log, the file name of the code that generates the line of log, the line number of the line of log, etc. The non-format information of the log information refers to the part of the log information excluding the format information, and can specifically include the business content of the log. In this way, the problem fingerprint can be avoided due to the format information (e.g., time, line number, etc.) of the log.
[0053] Further, considering that the software problem in practical application includes leakage of sensitive information, such as leakage of phone number, email and other information, for this kind of software problem, in order to avoid privacy leakage, it is usually required to check as many suspected sensitive information leakage problems as possible. In this case, in order to reduce the workload of the user, the fingerprint of the problem extracted by the software quality checking device 110 needs to accurately identify the problem, so that the user does not need to repeatedly confirm the same problem. Therefore, in the embodiment of the present application, the fingerprint related to this kind of software problem, the software quality checking device 110 can take the sensitive information and the K characters before and after it in the log as the fingerprint of the first problem (K is a positive integer, for example, K is 6). In this way, the matching rate of the first problem and the problems in the database can be increased while ensuring that the sensitive information is not leaked, and the workload of the user can be reduced.
[0054] It should be understood that in practical application, the object checked by the software quality checking device 110 can also be the running environment of the first software, the compilation parameters of the first software, etc. When the object is the running environment of the first software, the software quality checking device 110 can obtain the environment parameter value of the running environment associated with the first problem, and then take the above environment parameter value as the fingerprint of the first problem. When the object is the compilation parameter of the first software, the software quality checking device 110 can obtain the compilation parameter value associated with the first problem, and then take the above compilation parameter value as the fingerprint of the first problem.
[0055] S103: The software quality checking device 110 determines the confirmation result of the first problem according to the database, and in the case where the confirmation result of the first problem indicates that the problem is a software problem, executes S107.
[0056] Specifically, when the first problem matches any one of the problems in the database, the software quality checking device 110 determines that the confirmation result of the first problem is the confirmation result of the problem matched by the first problem, and then the software quality checking device 110 can query the confirmation result of the problem matched by the first problem from the database, thereby obtaining the confirmation result of the first problem. It should be understood that the confirmation result of the first problem can indicate that the first problem is a software problem, or can indicate that the first problem is not a software problem, and then when the confirmation result of the first problem indicates that the problem is not a software problem, it means that no corresponding modification is needed for the first problem, and the software quality checking device 110 can not need to send the first problem to the software problem modification device 120 for processing. When the confirmation result of the first problem indicates that the problem is a software problem, it means that a corresponding modification is needed for the first problem, and the software quality checking device 110 executes S107.
[0057] S104: The software quality checking device 110 presents the first problem to the user for confirmation of the software problem.
[0058] In a specific embodiment, the software quality checking apparatus 110 is provided with a GUI for presenting the first issue to the user for confirmation of the software issue.
[0059] It should be understood that in actual application, the checking report of the first software can include a plurality of issues identical to the first issue (e.g., a second issue), when the first issue does not match any of the plurality of issues in the database, it means that the second issue also does not match any of the plurality of issues in the database, in this case, if the software quality checking apparatus 110 presents both the first issue and the second issue to the user for confirmation of the software issue, it will increase the workload of the user. Therefore, the software quality checking apparatus 110 can perform the following steps: the software quality checking apparatus 110 extracts the fingerprint of the second issue, then matches the fingerprint of the second issue with the fingerprint of the first issue, determines that the second issue is the same issue as the first issue, and then presents both the first issue and the second issue to the user for confirmation of the software issue. In this way, the user does not need to repeatedly confirm the issues identical to the first issue, thereby reducing the workload of the user. It should be noted that the above-mentioned first issue and the second issue identical means that the software issue represented by the first issue is consistent with the software issue represented by the second issue, for example, the first issue represents that an infinite loop occurs in a certain piece of code, then the second issue also represents that an infinite loop occurs in the piece of code.
[0060] Optionally, the software quality checking apparatus 110 can also handle the above-mentioned situation in the following way: after the user confirms the software issue of the first issue, the software quality checking apparatus 110 determines the issue (e.g., the second issue) in the checking report that matches the first issue, and then determines that the confirmation result of the second issue is consistent with the confirmation result of the first issue. In this way, the workload of the user can also be reduced.
[0061] S105: The software quality checking apparatus 110 obtains the confirmation result of the user on the first issue, and in the case that the confirmation result of the first issue indicates that the first issue is a software issue, performs S107.
[0062] It should be understood that when the confirmation result of the user on the first issue indicates that the first issue is not a software issue, it means that no corresponding correction needs to be made for the first issue, then the software quality checking apparatus 110 can not need to send the first issue to the software issue correction apparatus 120 for processing.
[0063] S106: The software quality checking apparatus 110 stores the first issue and the confirmation result of the first issue in association in the database.
[0064] Optionally, the execution sequence of S106 and S107 can be interchanged or executed simultaneously in the case that the confirmation result of the first question indicates the first question in S105, and the software quality checking device 110 is not limited in this application.
[0065] It should be understood that the database described above can be built by the software quality checking device 110 in the process of continuously checking the first software. Specifically, when the software quality checking device 110 checks the first software for the first time, an inspection report corresponding to the first inspection is obtained, and then each question in the report is presented to the user for confirmation. Then, each question obtained by the first inspection, the fingerprint of each question, and the confirmation result of each question are stored in association to obtain an initial database. After that, the software quality checking device 110 will present the questions that do not match the database to the user for confirmation of the software question each time the first software is checked, and store the confirmation result, the question, and the fingerprint of the question in association in the database, so as to continuously enrich the questions in the database.
[0066] S107: The software quality checking device 110 sends the first question to the software question correction device 120, so that the software question correction device 120 performs corresponding correction and processing on the first question.
[0067] It should be understood that in actual application, the inspection report obtained after the quality inspection of the first software will include a plurality of questions, and a part of the questions have appeared in the previous inspection. The method provided by the present application can store the above-mentioned questions and their confirmation results into the database, so that when the question is checked again, the confirmation result of the question can be directly determined according to the database without the need for the user to confirm, thereby reducing the workload of the user.
[0068] The software quality checking device 110 will be further introduced below in combination with Figure 5 and Figure 6 .
[0069] Please refer to Figure 5 , Figure 5 Fig. 1 shows a structural schematic diagram of a software quality checking device provided by the present application. It should be understood that Figure 5 only an exemplary structural division manner of the software quality checking device 110 according to the function is shown, and the specific division manner of the structure of the software quality checking device 110 is not limited in the present application.
[0070] As Figure 5As shown, the device 110 includes a check report generation unit 111, a problem matching unit 112, and a problem determination unit 113. The functions of the units of the software quality check device 110 are exemplarily described below. It should be understood that the functions of the units described below are only some functions that the software quality check device 110 can have in some embodiments of the present application, and the present application does not limit the functions of the units.
[0071] The check report generation unit 111 is configured to generate a check report of the first software, and the check report includes the first problem.
[0072] Optionally, the check report generation unit 111 is specifically configured to obtain the code of the first software, and then check the code of the first software to obtain the check report of the first software.
[0073] Optionally, the check report generation unit 111 is specifically configured to obtain the running log of the first software, and then check the running log of the first software to obtain the check report of the first software.
[0074] The problem matching unit 112 is configured to match the first problem with a plurality of problems in a database, and the database includes the plurality of problems and the confirmation result of each problem.
[0075] In a specific embodiment, the database further includes the fingerprint of each problem, and the problem matching unit 112 is specifically configured to extract the fingerprint of the first problem, wherein the fingerprint of the first problem is used to identify the first problem, and then match the fingerprint of the first problem with the fingerprint of each problem in the database.
[0076] Optionally, if the check report is obtained by the check report generation unit 111 checking the code of the first software, then the problem matching unit 112 is specifically configured to pre-process the code associated with the first problem according to a preset format, and then extract features from the processed code to obtain the fingerprint of the first problem.
[0077] Optionally, if the check report is obtained by the check report generation unit 111 checking the running log of the first software, then the problem matching unit 112 is specifically configured to obtain log information associated with the first problem, and then extract features from non-format information in the log information to obtain the fingerprint of the first problem.
[0078] The problem determining unit 113 is configured to determine the confirmation result of the first problem as the confirmation result of the matched problem when the first problem matches any of the problems in the database. The problem determining unit 113 is further configured to present the first problem to the user for confirmation of the software problem to determine whether the first problem is a problem in the first software when the first problem does not match any of the problems in the database.
[0079] In an embodiment, the problem determining unit 113 is further configured to obtain the confirmation result of the first problem, and then store the first problem and the confirmation result of the first problem in the database.
[0080] In an embodiment, the check report further includes a second problem, and the problem determining unit 113 is further configured to present the first problem and the second problem to the user for confirmation of the software problem when the first problem does not match any of the problems in the database and the first problem matches the second problem.
[0081] For simplicity, the embodiments of the present application do not introduce each unit in the software quality checking device 110 in detail, and the specific functions of each unit can be referred to the above S101-S107. The check report generating unit 111 is configured to perform the above S101, the problem matching unit 112 is configured to perform the step of matching the first problem in the check report with the problems in the database in the above S102, and the problem determining unit 113 is configured to perform the above S103-S107.
[0082] Due to the functions of the above units, the software quality checking device 110 provided by the present application can determine the confirmation result of the first problem according to the database when the first problem matches a problem in the database after the software quality checking device 110 performs quality checking on the first software, without the need of the user to confirm the first problem, thereby reducing the workload of the user.
[0083] Please refer to Figure 6 , Figure 6 The present application provides a structure diagram of a computing device. The computing device is configured to perform the above software quality checking method, and when the software quality checking device 110 is a software device, the computing device can further deploy the software quality checking device 110 to realize the functions of the software quality checking device 110.
[0084] As shown in Figure 6 , the computing device 300 includes a memory 310, a processor 320, a communication interface 330, and a bus 340. The memory 310, the processor 320, and the communication interface 330 are communicatively connected to each other through the bus 340.
[0085] The memory 310 can be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 310 can store computer instructions, such as computer instructions in the check report generating unit 111, computer instructions in the question matching unit 112, computer instructions in the question determining unit 113, and the like. When the computer instructions stored in the memory 310 are executed by the processor 320, the processor 320 and the communication interface 330 are used to execute part or all of the methods described in steps S101-S107. The memory 310 can also store data, such as intermediate data or result data generated by the processor 320 during execution, such as the fingerprint of the first question, the fingerprint of the second question, and the like.
[0086] The processor 320 can be a central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), a graphics processing unit (GPU), or one or more integrated circuits.
[0087] The processor 320 can also be an integrated circuit chip with a processing capability of signals. In the implementation process, part or all of the functions of the above-mentioned compilation optimization device 100 can be completed by the integrated logic circuit of hardware in the processor 320 or the instructions in the form of software. The processor 320 can also be a general-purpose processor, a digital signal processor (DSP), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, so as to realize or execute the methods, steps and logic block diagrams disclosed in the present application. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc., which can directly embody the steps of the methods disclosed in the present application as hardware decoding processor execution, or execute the combination of hardware and software modules in the decoding processor. The software module can be located in a random access memory, a flash memory, a read only memory, a programmable read only memory, an electrically erasable programmable memory, a register, or other mature storage medium in the art. The storage medium is located in the memory 310, and the processor 320 reads the information in the memory 310, and combines the hardware to complete part or all of the functions of the software quality checking device 110.
[0088] The communication interface 330 uses a module such as, but not limited to, a transceiver, to enable communication between the computing device 300 and other devices or communication networks. For example, the code of the first software or the running log of the first software can be obtained through the communication interface 330, and the checked software problem can also be sent to the software problem correction device 120 through the communication interface 330.
[0089] The bus 340 can include a pathway that transmits information between various components (e.g., the memory 310, the processor 320, the communication interface 330) in the computing device 300.
[0090] The descriptions of the corresponding processes of the various figures above each have their own focuses, and the parts not described in detail in a certain process can be referred to the related descriptions of other processes.
[0091] In the above embodiments, all or part of the processes can be implemented by software, hardware, or a combination thereof. When implemented by software, all or part of the processes can be implemented in the form of a computer program product. The computer program product for providing the model training system includes one or more computing instructions executed by the model training system, and when the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated.
[0092] The above computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The above computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center through a wired (e.g., coaxial cable, optical fiber, twisted pair, or wireless (e.g., infrared, wireless, microwave) method, etc.). The above computer-readable storage medium stores computer program instructions for providing the model training system. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. integrated with one or more medium sets. The above available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., an optical disk), or a semiconductor medium (e.g., a solid state disk (SSD)).
Claims
1. A method for checking software quality, characterized in that, include: Generate an inspection report for the first software, the inspection report including a first problem; The first question is matched with multiple questions in a database, the database including the multiple questions and the confirmation result of each question; If the first question matches any one of the plurality of questions, the confirmation result of the first question is determined to be the confirmation result of the matched question; If the first problem does not match any of the multiple problems, the first problem will be presented to the user for confirmation of the software problem, in order to determine whether the first problem is a problem in the first software; The database also includes a fingerprint of each question, matching the first question with the plurality of questions, including: Extract the fingerprint of the first problem, which is used to identify the first problem; Match the fingerprint of the first question with the fingerprint of each of the other questions; When the object of inspection is the code of the first software, the extraction of the fingerprint of the first problem includes: The code associated with the first problem is preprocessed according to a preset format, and the code associated with the first problem is processed into code formatted according to the preset format; the preset format is used to specify the format of the code of the first software. Feature extraction is performed on the preprocessed code to obtain the fingerprint of the first problem.
2. The method according to claim 1, characterized in that, After presenting the first problem to the user for confirmation of the software problem, the method further includes: Obtain the user's confirmation result for the first question; The first question and its confirmation result are associated and stored in the database.
3. The method according to claim 1 or 2, characterized in that, The inspection report also includes a second question, and the method further includes: If the first problem does not match any of the multiple problems, but the first problem matches the second problem, the first problem and the second problem are presented to the user for confirmation of the software problem.
4. The method according to claim 1, characterized in that, When the object of inspection is the code of the first software, generating an inspection report for the first software includes: Obtain the code of the first software; The code of the first software is inspected, and an inspection report of the first software is obtained.
5. The method according to claim 1, characterized in that, When the object of inspection is the runtime log of the first software, generating an inspection report for the first software includes: Obtain the runtime logs of the first software; The operation log of the first software is checked to obtain the inspection report of the first software; Extracting the fingerprint of the first problem includes: Obtain the log information associated with the first problem; Feature extraction is performed on the non-formatted information in the log information to obtain the fingerprint of the first problem.
6. A software quality inspection device, characterized in that, The device includes: An inspection report generation unit is used to generate an inspection report for the first software, the inspection report including a first problem; A problem matching unit is used to match the first problem with multiple problems in a database, the database including the multiple problems and the confirmation result of each problem; The problem determination unit is configured to determine the confirmation result of the first problem as the confirmation result of the matched problem when the first problem matches any one of the plurality of problems; The problem determination unit is further configured to present the first problem to the user for confirmation of the software problem when the first problem does not match any of the plurality of problems, so as to determine whether the first problem is a problem in the first software; The database also includes a fingerprint of each question, and the question matching unit is specifically used for: Extract the fingerprint of the first problem, which is used to identify the first problem; Match the fingerprint of the first question with the fingerprint of each of the other questions; When the object of inspection is the code of the first software, the problem matching unit is specifically used to: preprocess the code associated with the first problem according to a preset format, and process the code associated with the first problem into code formatted according to the preset format; the preset format is used to specify the format of the code of the first software; Feature extraction is performed on the preprocessed code to obtain the fingerprint of the first problem.
7. The apparatus according to claim 6, characterized in that, The problem-determining unit is also used for: Obtain the user's confirmation result for the first question; The first question and its confirmation result are associated and stored in the database.
8. The apparatus according to claim 6 or 7, characterized in that, The inspection report also includes a second issue, and the issue determination unit is further configured to: If the first problem does not match any of the multiple problems, but the first problem matches the second problem, the first problem and the second problem are presented to the user for confirmation of the software problem.
9. The apparatus according to claim 6, characterized in that, When the object of inspection is the code of the first software, the inspection report generation unit is specifically used for: Obtain the code of the first software; The code of the first software is inspected, and an inspection report of the first software is obtained.
10. The apparatus according to claim 6, characterized in that, When the object of inspection is the runtime log of the first software, the inspection report generation unit is specifically used for: Obtain the runtime logs of the first software; The operation log of the first software is checked to obtain the inspection report of the first software; The problem matching unit is specifically used for: Obtain the log information associated with the first problem; Feature extraction is performed on the non-formatted information in the log information to obtain the fingerprint of the first problem.
11. A computing device, characterized in that, The computing device includes a processor and a memory, the memory storing computer instructions, and the processor executing the computer instructions to cause the computing device to perform the method according to any one of claims 1-5.
12. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions, which, when executed by a computing device, perform the method described in any one of claims 1-5.
13. A computer program product, comprising a computer program, characterized in that, The computer program, when executed by a processor, is used to implement the method as described in any one of claims 1-5.
Citation Information
Patent Citations
Abnormal program analysis method and device and computer readable storage medium
CN110825611A
Code quality and defect analysis method, server and storage medium
CN111837109A