Software performance evaluation method and device, computer equipment and storage medium
By obtaining and analyzing various types of metric data during the software development process, a software performance evaluation method is provided, which solves the problem of insufficient measurement of software development security in the prior art, and comprehensively evaluates the quality, efficiency and security of software development, improving the overall efficiency and security of software development.
Patent Information
- Application Number
- CN202411761522.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-03
- Publication Date
- 2025-03-04
AI Technical Summary
The existing technology lacks a scientific and objective method to measure the security of software development during the software development process, making it difficult to ensure that software products have strong security while developing efficiently.
Provide a software performance evaluation method. By obtaining software metric data during the software development process, including code metric data, requirements data, compiled construction data, test data and production deployment data, it conducts statistical analysis on these data, determines quality metric values, efficiency metric values and security metric values, and conducts a comprehensive evaluation of the effectiveness of software development based on these values.
It has achieved a comprehensive measurement and evaluation of the quality, efficiency and security in the software development process, provided scientific and objective evaluation results, helping the development team to discover and solve problems in a timely manner, and improving the overall efficiency and security of software development.
Smart Images

Figure CN119557888A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of software development technology, and in particular to a software performance evaluation method, device, computer equipment and storage medium. Background Art
[0002] With the rapid development of information technology and the acceleration of enterprise digital transformation, software products have become a key factor in enterprise competitiveness. In the software development process, the emergence of the DevOps (Development and Operations) model has greatly improved the collaboration efficiency between development, testing and operation teams, shortened the time to market for software products, and reduced the failure rate.
[0003] However, as cybersecurity threats become increasingly severe, how to ensure that software products are developed efficiently while having strong security has become an important challenge facing the software development industry. In traditional technologies, there is a lack of methods to measure software development security during the software development process. Summary of the invention
[0004] Based on this, it is necessary to provide a software performance evaluation method, device, computer equipment and storage medium that can measure the security of software development in response to the above technical problems.
[0005] In a first aspect, the present application provides a software performance evaluation method, the method comprising:
[0006] Obtain software metric data during the target software development process; software metric data includes code metric data, requirement data, compilation and construction data, test data, and production deployment data;
[0007] Conduct statistical analysis on software measurement data to determine software measurement values; software measurement values include quality measurement values, efficiency measurement values, and safety measurement values;
[0008] Evaluate the effectiveness of target software development based on software metrics.
[0009] In one embodiment, statistical analysis is performed on software metric data to determine a security metric value, including:
[0010] Preprocessing the code metric data to obtain target code metric data; the target code metric data includes code vulnerability data, component vulnerability data of components that the code depends on, and vulnerability discovery time and vulnerability resolution time;
[0011] Perform statistical analysis on the target code measurement data to determine security measurement values; the security measurement values include the total number of code vulnerabilities, the number of vulnerabilities of different levels in the code and the number of vulnerabilities in a first preset number of lines of code, the total number of component vulnerabilities, the total number of vulnerabilities of different levels in components and the number of component vulnerabilities in a second preset number of lines of code and the security incident response time; a security incident refers to a vulnerability incident.
[0012] In one embodiment, the target code measurement data also includes code submission record data; performing statistical analysis on the software measurement data to determine the quality measurement value includes:
[0013] Statistical analysis is performed on the target code metric data to determine a first quality metric value; the first quality metric value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code repetition rate, the number of code smells, and the unit test coverage corresponding to the code.
[0014] In one embodiment, statistical analysis is performed on software metric data to determine a quality metric value, including:
[0015] Preprocess the compilation and construction data, test data, and production deployment data to obtain target quality measurement data;
[0016] Perform statistical analysis on the target quality metric data to determine the second quality metric value; the second quality metric value includes continuous integration success rate, continuous deployment success rate, test success ratio, defect discovery rate, code package archiving ratio and production deployment success rate.
[0017] In one embodiment, performing statistical analysis on software metric data to determine efficiency metric values includes:
[0018] Pre-process demand data and determine target efficiency measurement data;
[0019] Conduct statistical analysis on target efficiency measurement data to determine efficiency measurement values; efficiency measurement values include the number of demands undertaken, the frequency of demand changes, and the demand completion rate.
[0020] In one embodiment, evaluating the effectiveness of target software development according to software metrics includes:
[0021] Determine the evaluation result according to the software metric value and the historical metric threshold, and display the software metric value and the evaluation result on the display interface;
[0022] Based on the evaluation results, early warning information is sent and / or optimization measures are formulated.
[0023] In a second aspect, an embodiment of the present application provides a software performance evaluation device, the device comprising:
[0024] The acquisition module is used to obtain software measurement data in the target software development process; the software measurement data includes code measurement data, requirement data, compilation and construction data, test data and production deployment data;
[0025] A processing module is used to perform statistical analysis on software measurement data to determine software measurement values; software measurement values include quality measurement values, efficiency measurement values and safety measurement values;
[0026] The evaluation module is used to evaluate the effectiveness of target software development based on software metrics.
[0027] In a third aspect, an embodiment of the present application provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the steps of the method provided in the first aspect are implemented.
[0028] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps of the method provided in the first aspect above are implemented.
[0029] In a fifth aspect, an embodiment of the present application further provides a computer program product, including a computer program, which implements the steps of the method provided in the first aspect when executed by a processor.
[0030] The above-mentioned software performance evaluation method, device, computer equipment and storage medium obtain software metric data in the target software development process; the software metric data includes code metric data, requirement data, compilation and construction data, test data and production deployment data; statistical analysis is performed on the software metric data to determine the software metric value, which includes quality metric value, efficiency metric value and security metric value; the performance of the target software development is evaluated according to the software metric value. In this embodiment, by statistically analyzing the acquired software metric data, the determined software metric value may include quality metric value, efficiency metric value and security metric value, so that according to the determined software metric value, not only the quality and efficiency of the target software development process can be evaluated, but also the security of the target software development process can be evaluated, so that the performance of the entire target software development process can be comprehensively evaluated, and then the actual situation of the target software development process can be comprehensively and objectively reflected. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] FIG1 is a diagram of an application environment of a software performance evaluation method in one embodiment;
[0032] FIG2 is a schematic diagram of a process flow of a software performance evaluation method according to an embodiment;
[0033] FIG3 is a schematic diagram of a process flow of a software performance evaluation method according to another embodiment;
[0034] FIG4 is a schematic flow chart of the steps of a software performance evaluation method according to another embodiment;
[0035] FIG5 is a schematic diagram of a process flow of a software performance evaluation method according to another embodiment;
[0036] FIG6 is a schematic flow chart of the steps of a software performance evaluation method according to another embodiment;
[0037] FIG7 is a schematic flow chart of the steps of a software performance evaluation method according to another embodiment;
[0038] FIG. 8 is a schematic diagram of the structure of a software performance evaluation device in one embodiment. DETAILED DESCRIPTION
[0039] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application 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 application and are not used to limit the present application.
[0040] The serial numbers assigned in this article, such as "first", "second", etc., are only used to distinguish the objects described and do not have any order or technical meaning.
[0041] First, before specifically introducing the technical solutions of the embodiments disclosed in the present application, the background technology or technical evolution context based on the embodiments of the present application is introduced. In the field of software development, with the rapid development of information technology and the acceleration of digital transformation of enterprises, software products have become a key factor in the competitiveness of enterprises. In the process of software development, the emergence of the DevOps (Development and Operations) model has greatly improved the efficiency of collaboration between development, testing and operation and maintenance teams, shortened the time to market of software products, and reduced the failure rate. However, with the increasing severity of network security threats, how to ensure that software products have strong security while being efficiently developed has become an important challenge facing the software development industry. In the traditional software development process, security is often regarded as an independent environment, and security testing and repairs are usually carried out in the later stages of development or even after the product is released. This "hindsight" approach is not only inefficient, but also often difficult to eliminate security risks. Therefore, DevSecOps (Development, Security, and Operations) as an extension of DevOps incorporates security into the entire life cycle of software development, realizing the deep integration of security with development and operation. However, how to scientifically and objectively measure the R&D efficiency and quality of DevSecOps has become a hot topic in the current industry and academia. At present, although there are some R&D efficiency and quality measurement tools and methods on the market, they often focus on traditional development models and are difficult to fully reflect the characteristics and needs of DevSecOps. In this regard, this application provides a software efficiency evaluation method for DevSecOps, that is, to measure the efficiency, security and quality of software development in all aspects throughout the software development cycle.
[0042] The technical solution of the present application and how the technical solution of the present application solves the technical problem are described in detail below with specific embodiments.
[0043] The software performance evaluation method provided in the embodiment of the present application can be applied to computer equipment, which can be, but is not limited to, industrial computers, laptops, tablet computers, etc. The internal structure of the computer equipment can be shown in Figure 1. The computer equipment includes a processor, a memory, a communication interface, a display screen, and an input device connected through a system bus. Among them, the processor of the computer equipment is used to provide computing and control capabilities. The memory of the computer equipment includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The communication interface of the computer equipment is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a software performance evaluation method is implemented. The display screen of the computer equipment can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer equipment can be a touch layer covered on the display screen, or a key, trackball or touchpad set on the housing of the computer equipment, or an external keyboard, touchpad or mouse.
[0044] Those skilled in the art will understand that the structure shown in FIG. 1 is merely a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
[0045] In one embodiment, as shown in FIG2 , a method for evaluating software performance is provided. This embodiment uses the method applied to a computer device as an example for illustration. It is understandable that the method can also be applied to a server, and can also be applied to a system including a terminal and a server, and is implemented through the interaction between the terminal and the server. In this embodiment, the method includes the following steps:
[0046] Step 200: Obtain software metric data during the target software development process; the software metric data includes code metric data, requirement data, compilation and construction data, test data, and production deployment data.
[0047] The target software refers to the software that needs to be developed. The process of target software development includes various stages such as requirements, development, testing, and release. At each stage of the target software development process, the technician or technical team will send the recorded information to the computer device. In the requirements stage and the release (requirements completion) stage, the recorded requirements data will be uploaded to the computer device; the requirements data may include the number of requirements received by the technician or technical team, and the number of requirements completed, etc. In the development stage, the recorded code information, that is, the code measurement data, will be uploaded to the computer device; the code measurement data may include the code records submitted by the technician or technical team, the number of lines submitted, the number of lines deleted, the number of submissions, etc. In the testing stage, the compilation and construction data and test data will be uploaded to the computer device. The compilation and construction data refers to the relevant data of compiling and building the code into a code package after the code is completed, which may include the total number of builds, the number of successful builds, and the number of failed builds; the test data refers to the relevant data of testing the code using different test methods after the code is completed, which may include: the total number of tests corresponding to different test methods, the number of successful tests, the number of test uses, the number of defects found during the test, etc. In the release stage, the production deployment data will be uploaded to the computer device. Production deployment data refers to the data related to archiving and production of the built code packages after the code is completed and built into code packages. It can include the total number of production code packages, the number of archived code packages, the total number of deployments, the number of successful deployments, the number of failed deployments, etc.
[0048] The computer device obtains software metric data during the target software development process. This embodiment does not limit the specific method of obtaining software metric data during the target software development process, as long as its function can be achieved.
[0049] In an optional embodiment, the computer device can use the DevSecOps platform to collect software metric data. Specifically, the code submission data is collected using the version control system (Git), and the code submission record is associated with the requirements, and the number of lines submitted, the number of deleted lines, the number of submissions and other data are collected at the same time, so that relevant requirement data, code metric data and the like can be obtained. Use automated testing tools to collect test data in the testing phase. Use security scanning tools and log analysis tools to collect data related to code security, including vulnerabilities in the code and vulnerabilities in the components that the code depends on, and collect relevant data on open source component certificates. By relying on the relevant data of the open source component certificate, it can be determined whether the dependent component has vulnerabilities. Use the integration / deployment system to collect relevant data for automated collection and deployment. In this way, using the automated tools in the DevSecOps platform to obtain software metric data can improve the efficiency and accuracy of obtaining software metric data, thereby improving the efficiency and accuracy of subsequent evaluation of the effectiveness of target software development.
[0050] Step 210: Perform statistical analysis on the software measurement data to determine software measurement values; the software measurement values include quality measurement values, efficiency measurement values, and safety measurement values.
[0051] After acquiring the software metric data, the computer device performs statistical analysis on the software metric data to determine the software metric value for evaluating the software effectiveness, i.e., the software metric index. The software metric value may include a quality metric value related to the quality of the target software development, an efficiency metric value related to the efficiency of the target software development, and a security metric value related to the security of the target software switch. That is, the computer device may extract data related to the quality of the target software development from the acquired software metric data, and perform statistical analysis on the extracted data related to the quality of the target software development to determine the quality metric value; extract data related to the efficiency of the target software development from the acquired software metric data, and perform statistical analysis on the extracted data related to the efficiency of the target software switch to determine the efficiency metric value; extract data related to the security of the target software development from the acquired software metric data, and perform statistical analysis on the extracted data related to the security of the target software development to determine the security metric value. This embodiment does not limit the specific process of the computer device performing statistical analysis on the software metric data, as long as its function can be achieved.
[0052] Step 220: Evaluate the effectiveness of target software development based on the software metrics.
[0053] After obtaining the software metric value, the computer device can evaluate the effectiveness of the target software development process according to the software metric value. In other words, the quality of the target software development can be evaluated according to the quality metric value included in the software metric value; the efficiency of the target software development can also be evaluated according to the efficiency metric value included in the software metric value; and the security of the target software development can also be evaluated according to the security metric value included in the software metric value.
[0054] In an optional embodiment, the software metric data is transmitted to the computer device in real time during the target software development process. After receiving the software metric data, the computer device can directly perform statistical analysis on the received software metric data to determine the software metric value; and evaluate the effectiveness of the target software development based on the software metric value. In this way, the target software development process can be monitored in real time, so that when an abnormal situation occurs during the target software development process, early warning information can be sent to relevant personnel in a timely manner, so that relevant personnel can take corresponding treatment measures.
[0055] The software performance evaluation method provided in the embodiment of the present application is obtained by acquiring software metric data in the target software development process; the software metric data includes code metric data, requirement data, compilation and construction data, test data and production deployment data; statistical analysis is performed on the software metric data to determine the software metric value, which includes quality metric value, efficiency metric value and security metric value; the performance of the target software development is evaluated according to the software metric value. In this embodiment, by statistically analyzing the acquired software metric data, the determined software metric value may include quality metric value, efficiency metric value and security metric value, so that according to the determined software metric value, not only the quality and efficiency of the target software development process can be evaluated, but also the security of the target software development process can be evaluated, so that the performance of the entire target software development process can be comprehensively evaluated, and then the actual situation of the target software development process can be comprehensively and objectively reflected.
[0056] In one embodiment, as shown in FIG3 , a method for performing statistical analysis on software metric data to determine a security metric value includes the following steps:
[0057] Step 300: pre-process the code metric data to obtain target code metric data; the target code metric data includes code vulnerability data, component vulnerability data of components that the code depends on, and vulnerability discovery time and vulnerability resolution time.
[0058] Code vulnerability data can include Structured Query Language (SQL) injection, memory leaks, and account and password information in the code. Component vulnerabilities of components that the code depends on refer to defects in various external components that the code depends on during operation. Target code measurement data can also include the time when the vulnerability was discovered and the time it took the user to resolve the vulnerability.
[0059] The computer device obtains the code metric data in the software metric quantity and preprocesses the code metric data to obtain the target code metric data. The preprocessing may include at least one of cleaning, conversion and integration. That is, the computer device may clean the code metric data to remove duplicate and invalid data in the code metric data; it may also convert the code metric data to convert the code metric data into data in a unified format for subsequent analysis; it may also integrate the code metric data for subsequent analysis. This embodiment does not limit the specific method of preprocessing, as long as its function can be achieved.
[0060] Step 310: Statistically analyze the target code metric data to determine security metric values; the security metric values include code vulnerability data, component vulnerability data of components that the code depends on, and security incident response time; the code vulnerability data includes the total number of code vulnerabilities, the number of vulnerabilities at different levels of the code, and the number of vulnerabilities in a first preset number of lines of code; the component vulnerability data includes the total number of component vulnerabilities, the total number of vulnerabilities at different levels of the components, and the number of vulnerable components in a second preset number of lines of code; a security incident refers to an incident in which a vulnerability exists in the code.
[0061] After obtaining the target code measurement data, the computer device performs statistical analysis on the target code measurement data to determine the security measurement value. Specifically, the computer device can determine the total number of code vulnerabilities and the number of vulnerabilities in the first preset number of lines of code by performing statistical analysis on the code vulnerability data. The first preset number of lines can be one thousand lines, that is, the number of vulnerabilities in one thousand lines of code. In addition, the computer device can also analyze the code vulnerability data to determine the level of the code vulnerability, and determine the number of vulnerabilities of different levels of the code through statistics. The level of code vulnerabilities can include high-risk code vulnerabilities, medium-risk code vulnerabilities, and low-risk code vulnerabilities. That is, the number of vulnerabilities can obtain the number of high-risk vulnerabilities, medium-risk vulnerabilities, and low-risk vulnerabilities in the code.
[0062] The computer device can determine the total number of component vulnerabilities and the number of component vulnerabilities in the second preset number of lines of code by performing statistical analysis on the component vulnerability data. The second preset number of lines may be the same as the first preset number of lines, or may be different, and this embodiment is not limited to this. In addition, the computer device can also analyze the component vulnerability data to determine the level of the component vulnerability, and determine the total number of vulnerabilities of different levels of the component by statistics. The level of component vulnerabilities may include high-risk component vulnerabilities, medium-risk component vulnerabilities, and low-risk component vulnerabilities, that is, the number of component vulnerabilities may include the number of medium- and high-risk vulnerabilities in the component, medium-risk vulnerability data, and low-risk vulnerability data. The computer device can also determine the security incident response time based on the obtained vulnerability discovery time and vulnerability resolution time.
[0063] In this embodiment, target code measurement data is obtained by preprocessing the code measurement data in the software measurement data; security measurement values are determined by performing statistical analysis on the target code measurement data; thus, the efficiency of performing statistical analysis on the target code measurement data is improved by preprocessing the code measurement data first and then performing subsequent statistical analysis, thereby improving the efficiency of assessing security during the software development process.
[0064] In one embodiment, a method for performing statistical analysis on software metric data to determine a quality metric value includes the following steps:
[0065] Statistical analysis is performed on the target code metric data to determine a first quality metric value; the first quality metric value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code repetition rate, the number of code smells, and the unit test coverage corresponding to the code.
[0066] The target code metric data obtained after the computer device preprocesses the code metric data may also include relevant data of code submission. The relevant data of code submission may include code submitted by a technician or a technical team, and test data of the code. The computer device can determine the first quality metric value by statistically analyzing the target code metric data. The first quality metric value refers to a quality metric value that can evaluate the quality of the code itself submitted by a technician or a technical team during the software development process. Specifically, the computer device can determine the number of code submissions, the number of submitted code lines, and the number of submitted code files by counting the submitted code. In addition, the computer device analyzes the submitted code and can determine the number of defects, code repetition rate, and the number of code smells in the submitted code. The number of defects may refer to the number of defects such as null pointer references and uninitialized variables in the code; the code repetition rate refers to the proportion of repeated code lines in the code; the number of code smells in the code refers to the number of overly complex codes, unused variables and methods in the code. In addition, the computer device can also determine the unit test coverage corresponding to the code by the submitted test data, that is, the proportion of the number of code lines tested by the technician or the technical team in the submitted code to the total number of code lines.
[0067] In this embodiment, when the target code metric data also includes code submission related data, a first quality metric value may be determined by statistically analyzing the target code metric data. The quality of the code may be evaluated according to the first quality metric value.
[0068] In one embodiment, as shown in FIG. 4 , another implementation method for determining a quality metric value by statistically analyzing software metric data includes the following steps:
[0069] Step 400: pre-process the compilation and construction data, the test data, and the production deployment data to obtain target quality measurement data.
[0070] The computer device obtains the compilation and construction data, test data and generated deployment measurement data in the software measurement data; the compilation and construction data, test data and production deployment data are preprocessed to obtain the target quality measurement data. The description of the preprocessing can refer to the specific description in the above embodiment, which will not be repeated here. The target quality measurement data includes the preprocessed compilation and construction data, the preprocessed test data and the preprocessed production deployment data. The description of the target quality measurement data can refer to the specific description of the compilation and construction data, test data and production deployment data in the above example, which will not be repeated here.
[0071] Step 410: Statistically analyze the target quality metric data to determine a second quality metric value; the second quality metric value includes a continuous integration success rate, a continuous deployment success rate, a test success ratio, a defect discovery rate, a code package archiving ratio, and a production deployment success rate.
[0072] After obtaining the target quality metric data, the computer device analyzes the target quality metric data to determine a second quality metric value. The second quality metric value refers to a quality metric value that can evaluate the subsequent processing of the code after the code is completed during the software development process.
[0073] The computer device can determine the continuous integration success rate and the continuous deployment success rate by statistically analyzing the compiled build data in the target quality metric data. The continuous integration success rate refers to the ratio of the number of successful builds through the continuous integration (CI) process to the total number of builds. The continuous deployment success rate refers to the ratio of the number of successful deployments through the continuous deployment (CD) process to the total number of deployments. The computer device can determine the test success ratio and the defect discovery rate by statistically analyzing the test data in the target quality metric quantity. Specifically, the commonly used testing methods include smoke testing and full testing. The test success ratio can include the ratio of test cases that succeeded in smoke testing to all smoke test cases, and the ratio of test cases that succeeded in full testing to all full test cases. The defect discovery rate refers to the ratio of the number of defects found during the test process to the total number of code lines (or code function points). The computer device can determine the code package archiving ratio and the production deployment success ratio by statistically analyzing the number of production deployments in the target quality metric data. The code package archive ratio refers to the ratio of the number of code packages archived to the total number of code packages built after the code is completed and built into code packages. The production deployment success rate refers to the ratio of the number of code packages successfully deployed in production to the number of code packages that initiate production deployment; among which, the number of code packages that initiate production deployment and the total number of code packages built refer to the code packages compiled after the code passes the test.
[0074] In this embodiment, the target quality metric data is obtained by preprocessing the compilation and construction data, the test data, and the production deployment data; the target quality metric data is statistically analyzed to determine the second quality metric value. The obtained continuous integration success rate can measure the efficiency and stability of the automated build, and the obtained continuous deployment success rate can measure the efficiency and stability of the automated deployment; the obtained test success ratio can reflect the automation level of the technician or technical team in the testing phase; and the obtained defect discovery rate can reflect the quality of the product composed of the code constructed by the technician.
[0075] In one embodiment, as shown in FIG5 , a method for performing statistical analysis on software metric data to determine an efficiency metric value includes the following steps:
[0076] Step 500: pre-process the demand data to determine target efficiency measurement data.
[0077] The computer device obtains the demand data in the software measurement data and preprocesses the demand data to determine the target efficiency measurement data. The description of the preprocessing can refer to the specific description in the above embodiment, which will not be repeated here. The target efficiency measurement data includes the accepted demand data and completed demand data submitted by the technician or technical team after preprocessing.
[0078] Step 510: Statistically analyze the target efficiency measurement data to determine the efficiency measurement value; the efficiency measurement value includes the number of requirements undertaken, the frequency of requirement changes, and the requirement completion rate.
[0079] After obtaining the target efficiency measurement data, the computer equipment can determine the efficiency measurement value by statistically analyzing the target efficiency measurement data. By statistically analyzing the accepted demand data and completed demand data in the target efficiency measurement data, the number of demands undertaken by the technicians, the frequency of demand changes, and the demand completion rate can be obtained. The demand change frequency is used to characterize the number of times the demands in the accepted demand data are modified; the demand completion rate refers to the ratio of the number of completed demands to the number of accepted demands.
[0080] In this embodiment, the target efficiency measurement data is determined by preprocessing the demand data; the target efficiency measurement data is statistically analyzed to determine the efficiency measurement value; the efficiency measurement value includes demand acceptance data, demand change frequency and demand completion rate. In this way, the efficiency measurement value can reflect the completion of the requirements by the technicians or technical teams.
[0081] In one embodiment, as shown in FIG. 6 , an implementation method for evaluating the effectiveness of target software development according to software metrics is provided, and the steps of the implementation method include:
[0082] Step 600: Determine an evaluation result based on the software metric value and the historical metric threshold, and display the software metric value and the evaluation result on a display interface.
[0083] The historical measurement threshold may be a historical software measurement value obtained during a previous software development process completed by the technician or technical team, or may be a historical software measurement value obtained during a software development process completed by other technicians or technical teams.
[0084] The historical measurement threshold may be pre-stored in the computer device. After obtaining the software measurement value, the computer device compares the software measurement value with the historical measurement threshold to evaluate the software measurement value and obtain an evaluation result. The evaluation result may include an evaluation result of the efficiency of the target software development process, an evaluation result of the quality of the target software development process, and an evaluation result of the security of the target software development process.
[0085] Specifically, the computer device can determine whether the quality of the code submitted by the technician in the target software development process is improved by comparing the first quality metric value in the software metric value with the corresponding first quality metric threshold in the historical metric threshold. The computer device can determine whether the quality of the compilation, construction, testing, archiving, deployment and other processes after the code is completed in the target software development process is improved by comparing the second quality metric value in the software metric value with the corresponding second quality metric threshold in the historical metric threshold. The computer device can determine whether there are security anomalies in the target software development process, whether the response time of the technician or technical team to the security incident meets the requirements, etc. by comparing the security metric value in the software metric value with the corresponding security metric threshold in the historical metric threshold.
[0086] The computer device includes a display screen. After obtaining the software metric value and the evaluation result, the computer device can display the obtained software metric value and the evaluation result on the display interface of the display screen. This embodiment does not limit the display method of the display interface displaying the software metric value, as long as its function can be achieved. The evaluation result can be formed into an evaluation report for display.
[0087] In an optional embodiment, the computer device may display the obtained software metric values in a table format, or in a graphical format such as a column chart, a pie chart, or a bar chart.
[0088] Step 610: Send warning information and / or formulate optimization measures based on the evaluation results.
[0089] After obtaining the evaluation results, the computer device can send warning information to the technician or technical team based on the evaluation results, and can also formulate optimization measures. The warning information is used to prompt the technician that there is abnormal information in the evaluation results, so that the technician or technical team can deal with the abnormal information in time. Specifically, the computer device pre-stores the warning conditions, that is, if it is determined according to the evaluation results that the software metric value in the target software development process meets the warning conditions, the warning information will be sent. For example, if there is a high-risk code vulnerability in the code, a warning information will be sent; if there is a high-risk component vulnerability in the code, a warning information will be sent.
[0090] The computer device can also formulate optimization measures according to the evaluation results, that is, if the evaluation results show that the efficiency is reduced and the quality is poor, some measures that can improve the efficiency are provided, for example, the technician or technical team can be prompted to use automation tools to improve efficiency and quality. The computer device can display the formulated optimization measures on the display interface. If at least one of the test success ratio is low, the unit test coverage is low, and the defect discovery rate is low is determined according to the evaluation results, the formulated optimization measures may include prompting the technician or technical team to optimize the test strategy to improve the test success ratio, test coverage, and defect discovery rate. If it is determined according to the evaluation results that there are problems with the code quality, the formulated optimization measures may include prompting the technician or technical team to improve the code structure, reduce duplicate code, and repair the odor in the code. If it is determined according to the evaluation results that the production deployment success rate is low, the formulated optimization measures may include prompting the technician or technical team to strengthen the stability and reliability monitoring of the production environment. If it is determined according to the evaluation results that the demand completion rate is low, the formulated optimization measures may include prompting the technician or technical team to optimize the demand management process to improve the demand completion rate.
[0091] In this embodiment, the evaluation results are determined based on the software metrics and historical metrics, and the software metrics and evaluation results are displayed on the display interface, and warning information is sent and / or optimization measures are formulated. In this way, the software metrics and evaluation results are displayed, so that the technicians or technical teams can clearly and intuitively know the performance evaluation results of the target software. Sending warning information and / or formulating optimization strategies based on the evaluation results can provide optimization measures to the technicians and technical teams to improve the research and development efficiency of the technicians or technical teams.
[0092] Referring to FIG. 7 , an embodiment of the present application provides a method for evaluating software performance, the method comprising the following steps:
[0093] Step 700: In the demand phase, obtain demand acceptance data;
[0094] Step 710: During the development and testing phase, code submission data is obtained, component security scanning, code security scanning, and static quality scanning are performed, target code metric data is obtained, the target code metric data is analyzed, and a security metric value and a first quality metric value are determined;
[0095] Step 720: In the release phase, obtain the compilation and construction data, the test data, and the production and deployment data, perform statistical analysis on the compilation and construction data, the test data, and the production and deployment data, and determine a second quality metric value;
[0096] Step 730: In the demand completion stage, obtain demand completion data; perform statistical analysis on the demand acceptance data and demand completion data to determine the efficiency measurement value.
[0097] Step 730: Generate an evaluation result based on the safety metric value, the first quality metric value, the second quality metric value, and the efficiency metric value, and display the evaluation result in a report form.
[0098] In addition, by using the software performance evaluation method provided in this application to evaluate the quality, efficiency, and security of technical personnel or technical teams in completing the target software development, it can provide objective decision-making support for project managers, help them scientifically evaluate the applicability and value of DevSecOps, and formulate more reasonable project plans and resource allocation plans to ensure the smooth progress and successful implementation of the project.
[0099] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0100] Based on the same inventive concept, the embodiment of the present application also provides a device for correcting geometric parameters for implementing the method for correcting geometric parameters involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific definition in the embodiment of the device for correcting one or more geometric parameters provided below can refer to the definition of the method for correcting geometric parameters above, and will not be repeated here.
[0101] In one embodiment, as shown in FIG. 8 , a software performance evaluation device 10 is provided. The device includes: an acquisition module 11 , a processing module 12 , and an evaluation module 13 .
[0102] The acquisition module 11 is used to acquire software measurement data in the target software development process; the software measurement data includes code measurement data, requirement data, compilation and construction data, test data and production deployment data.
[0103] The processing module 12 is used to perform statistical analysis on the software measurement data to determine the software measurement value; the software measurement value includes the quality measurement value, the efficiency measurement value and the safety measurement value.
[0104] The evaluation module 13 is used to evaluate the effectiveness of target software development according to the software metrics.
[0105] In one embodiment, the processing module 12 includes a first preprocessing unit and a first analysis unit. The first preprocessing unit is used to preprocess the code metric data to obtain target code metric data; the target code metric data includes code vulnerability data, component vulnerability data of components that the code depends on, and vulnerability discovery time and vulnerability resolution time. The first analysis unit is used to perform statistical analysis on the target code metric data to determine the security metric value; the security metric value includes the total number of code vulnerabilities, the number of vulnerabilities of different levels of the code and the number of vulnerabilities in the first preset number of lines of code, the total number of component vulnerabilities, the total number of vulnerabilities of different levels of components and the number of component vulnerabilities in the second preset number of lines of code and the security incident response time; security incidents refer to vulnerability incidents.
[0106] In one embodiment, the first analysis unit is also used to perform statistical analysis on the target code metric data to determine a first quality metric value; the first quality metric value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code repetition rate, the number of smells in the code, and the unit test coverage corresponding to the code.
[0107] In one embodiment, the processing module 12 further includes a second preprocessing unit and a second analysis unit. The second preprocessing unit is used to preprocess the compilation and construction data, the test data, and the production deployment data to obtain the target quality measurement data. The second analysis unit is used to perform statistical analysis on the target quality measurement data to determine the second quality measurement value; the second quality measurement value includes the continuous integration success rate, the continuous deployment success rate, the test success ratio, the defect discovery rate, the code package archiving ratio, and the production deployment success rate.
[0108] In one embodiment, the processing module 12 further includes a third preprocessing unit and a third analysis unit. The third preprocessing unit is used to preprocess the demand data and determine the target efficiency measurement data. The third analysis unit is used to perform statistical analysis on the target efficiency measurement data and determine the efficiency measurement value; the efficiency measurement value includes the number of demand acceptances, the frequency of demand changes, and the demand completion rate.
[0109] In one embodiment, the evaluation module 13 is specifically used to determine the evaluation results according to the software metric values and the historical metric thresholds, and display the software metric values and the evaluation results on the display interface; according to the evaluation results, send warning information and / or formulate optimization measures.
[0110] Each module in the above-mentioned software performance evaluation device can be implemented in whole or in part by software, hardware or a combination thereof. Each of the above-mentioned modules can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules.
[0111] In one embodiment, a computer device is provided, and its internal structure diagram may be shown in FIG1 .
[0112] In one embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:
[0113] Obtain software metric data during the target software development process; software metric data includes code metric data, requirement data, compilation and construction data, test data, and production deployment data;
[0114] Conduct statistical analysis on software measurement data to determine software measurement values; software measurement values include quality measurement values, efficiency measurement values, and safety measurement values;
[0115] Evaluate the effectiveness of target software development based on software metrics.
[0116] In one embodiment, when the processor executes the computer program, the following steps are also implemented: preprocessing the code measurement data to obtain target code measurement data; the target code measurement data includes code vulnerability data, component vulnerability data of components on which the code depends, and vulnerability discovery time and vulnerability resolution time; statistical analysis is performed on the target code measurement data to determine security measurement values; the security measurement values include the total number of code vulnerabilities, the number of vulnerabilities at different levels of the code and the number of vulnerabilities in a first preset number of lines of code, the total number of component vulnerabilities, the total number of vulnerabilities at different levels of the components and the number of component vulnerabilities in a second preset number of lines of code and the security incident response time; a security incident refers to a vulnerability incident.
[0117] In one embodiment, when the processor executes the computer program, the following steps are also implemented: statistical analysis is performed on the target code measurement data to determine a first quality measurement value; the first quality measurement value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code repetition rate, the number of smells in the code, and the unit test coverage corresponding to the code.
[0118] In one embodiment, when the processor executes the computer program, the following steps are also implemented: preprocessing the compilation build data, test data and production deployment data to obtain target quality metric data; performing statistical analysis on the target quality metric data to determine a second quality metric value; the second quality metric value includes a continuous integration success rate, a continuous deployment success rate, a test success ratio, a defect discovery rate, a code package archiving ratio and a production deployment success rate.
[0119] In one embodiment, when the processor executes the computer program, the following steps are also implemented: preprocessing the demand data to determine the target efficiency measurement data; performing statistical analysis on the target efficiency measurement data to determine the efficiency measurement value; the efficiency measurement value includes the number of demands undertaken, the frequency of demand changes and the demand completion rate.
[0120] In one embodiment, when the processor executes the computer program, the following steps are also implemented: determining the evaluation results based on the software metric values and the historical metric thresholds, and displaying the software metric values and the evaluation results on the display interface; sending warning information and / or formulating optimization measures based on the evaluation results.
[0121] In one embodiment, 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 following steps are implemented:
[0122] Obtain software metric data during the target software development process; software metric data includes code metric data, requirement data, compilation and construction data, test data, and production deployment data;
[0123] Conduct statistical analysis on software measurement data to determine software measurement values; software measurement values include quality measurement values, efficiency measurement values, and safety measurement values;
[0124] Evaluate the effectiveness of target software development based on software metrics.
[0125] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: preprocessing the code measurement data to obtain target code measurement data; the target code measurement data includes code vulnerability data, component vulnerability data of components on which the code depends, and vulnerability discovery time and vulnerability resolution time; statistical analysis is performed on the target code measurement data to determine security measurement values; the security measurement values include the total number of code vulnerabilities, the number of vulnerabilities of different levels of the code and the number of vulnerabilities in a first preset number of lines of code, the total number of component vulnerabilities, the total number of vulnerabilities of different levels of components and the number of component vulnerabilities in a second preset number of lines of code and the security incident response time; a security incident refers to a vulnerability incident.
[0126] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: statistical analysis is performed on the target code measurement data to determine a first quality measurement value; the first quality measurement value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code repetition rate, the number of smells in the code, and the unit test coverage corresponding to the code.
[0127] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: preprocessing the compilation build data, test data and production deployment data to obtain target quality metric data; performing statistical analysis on the target quality metric data to determine a second quality metric value; the second quality metric value includes a continuous integration success rate, a continuous deployment success rate, a test success ratio, a defect discovery rate, a code package archiving ratio and a production deployment success rate.
[0128] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: preprocessing the demand data to determine the target efficiency measurement data; performing statistical analysis on the target efficiency measurement data to determine the efficiency measurement value; the efficiency measurement value includes the number of demands undertaken, the frequency of demand changes and the demand completion rate.
[0129] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: based on the software metric value and the historical metric threshold, the evaluation result is determined, and the software metric value and the evaluation result are displayed on the display interface; based on the evaluation result, early warning information is sent and / or optimization measures are formulated.
[0130] In one embodiment, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements the following steps:
[0131] Obtain software metric data during the target software development process; software metric data includes code metric data, requirement data, compilation and construction data, test data, and production deployment data;
[0132] Conduct statistical analysis on software measurement data to determine software measurement values; software measurement values include quality measurement values, efficiency measurement values, and safety measurement values;
[0133] Evaluate the effectiveness of target software development based on software metrics.
[0134] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: preprocessing the code measurement data to obtain target code measurement data; the target code measurement data includes code vulnerability data, component vulnerability data of components on which the code depends, and vulnerability discovery time and vulnerability resolution time; statistical analysis is performed on the target code measurement data to determine security measurement values; the security measurement values include the total number of code vulnerabilities, the number of vulnerabilities of different levels of the code and the number of vulnerabilities in a first preset number of lines of code, the total number of component vulnerabilities, the total number of vulnerabilities of different levels of components and the number of component vulnerabilities in a second preset number of lines of code and the security incident response time; a security incident refers to a vulnerability incident.
[0135] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: statistical analysis is performed on the target code measurement data to determine a first quality measurement value; the first quality measurement value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code repetition rate, the number of smells in the code, and the unit test coverage corresponding to the code.
[0136] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: preprocessing the compilation build data, test data and production deployment data to obtain target quality metric data; performing statistical analysis on the target quality metric data to determine a second quality metric value; the second quality metric value includes a continuous integration success rate, a continuous deployment success rate, a test success ratio, a defect discovery rate, a code package archiving ratio and a production deployment success rate.
[0137] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: preprocessing the demand data to determine the target efficiency measurement data; performing statistical analysis on the target efficiency measurement data to determine the efficiency measurement value; the efficiency measurement value includes the number of demands undertaken, the frequency of demand changes and the demand completion rate.
[0138] In one embodiment, when the computer program is executed by the processor, the following steps are also implemented: based on the software metric value and the historical metric threshold, the evaluation result is determined, and the software metric value and the evaluation result are displayed on the display interface; based on the evaluation result, early warning information is sent and / or optimization measures are formulated.
[0139] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0140] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0141] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A software performance evaluation method, characterized in that: The method comprises: Acquire software metric data during the target software development process; the software metric data includes code metric data, requirement data, compilation and construction data, test data, and production deployment data; Performing statistical analysis on the software measurement data to determine software measurement values; the software measurement values include quality measurement values, efficiency measurement values and safety measurement values; The effectiveness of the target software development is evaluated according to the software metric value.
2. The method according to claim 1, characterized in that Performing statistical analysis on the software measurement data to determine the security measurement value includes: Preprocessing the code metric data to obtain target code metric data; the target code metric data includes code vulnerability data, component vulnerability data of components that the code depends on, and vulnerability discovery time and vulnerability resolution time; The target code metric data is statistically analyzed to determine the security metric value; the security metric value includes the total number of code vulnerabilities, the number of vulnerabilities of different levels in the code and the number of vulnerabilities in a first preset number of lines of code, the total number of component vulnerabilities, the total number of vulnerabilities of different levels in the components and the number of component vulnerabilities in a second preset number of lines of code and the security incident response time; the security incident refers to a vulnerability incident.
3. The method according to claim 2, characterized in that The target code metric data also includes code submission record data; Performing statistical analysis on the software measurement data to determine the quality measurement value includes: Performing statistical analysis on the target code metric data to determine a first quality metric value; The first quality metric value includes the number of code submissions, the number of code lines, the number of code files, the number of defects in the code, the code duplication rate, the number of code smells and the unit test coverage corresponding to the code.
4. The method according to claim 1, characterized in that Performing statistical analysis on the software measurement data to determine the quality measurement value includes: Preprocessing the compilation and construction data, the test data, and the production deployment data to obtain target quality measurement data; Perform statistical analysis on the target quality metric data to determine a second quality metric value; the second quality metric value includes a continuous integration success rate, a continuous deployment success rate, a test success ratio, a defect discovery rate, a code package archiving ratio, and a production deployment success rate.
5. The method according to claim 1, characterized in that Performing statistical analysis on the software measurement data to determine the efficiency measurement value includes: Preprocessing the demand data to determine target efficiency measurement data; Statistical analysis is performed on the target efficiency measurement data to determine the efficiency measurement value; the efficiency measurement value includes the number of demands undertaken, the frequency of demand changes, and the demand completion rate.
6. The method according to any one of claims 1 to 5, characterized in that The evaluating the effectiveness of the target software development according to the software metric value includes: Determine an evaluation result according to the software metric value and the historical metric threshold, and display the software metric value and the evaluation result on a display interface; Based on the evaluation results, early warning information is sent and / or optimization measures are formulated.
7. A software performance evaluation device, characterized in that: The device comprises: An acquisition module is used to acquire software measurement data during the development process of the target software; the software measurement data includes code measurement data, requirement data, compilation and construction data, test data and production deployment data; A processing module, used to perform statistical analysis on the software measurement data to determine software measurement values; the software measurement values include quality measurement values, efficiency measurement values and safety measurement values; An evaluation module is used to evaluate the effectiveness of the target software development according to the software metric value.
8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.
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.
10. A computer program product, comprising a computer program, 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.