Code submission method, code submission system, computer equipment and storage medium
By using key encryption and encryption and decryption technologies in the software development process, we ensure that R&D personnel complete all necessary code verifications, solving the problem of inability to monitor code verification in the existing technology, and improving the quality of code submissions and project stability.
Patent Information
- Application Number
- CN202411391204.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-01-10
AI Technical Summary
The existing technology cannot effectively monitor whether R&D personnel have truly completed the verification and verification of the code in the software development process, resulting in potential problems that may be missed and affect the stability and reliability of the project.
By encrypting the ID number of the newly submitted code with a key, generating a new key, and having a high priority program built into the patch build, executing a set of test verification projects that must be verified, encrypting the verification results with the key and decrypt, monitor the completeness and accuracy of verification results, ensuring that code merging is allowed only after each test verification project is successful.
It significantly improves the quality and efficiency of code submission, ensures that each stage of development work is fully verified and monitored, reduces problems caused by code submission errors, and improves the overall stability and reliability of the project.
Smart Images

Figure CN119293797A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer software technology, and in particular to a code submission method, a code submission system, a computer device and a storage medium. Background Art
[0002] In the current complex and large-scale project development scenarios, such as the in-depth development of Android system-level software and the construction of highly integrated car cockpit interfaces, dozens or even hundreds of R&D personnel are often required to participate in the development. The success of such projects is highly dependent on the accuracy and efficient integration of each piece of code. Any slight error in code submission may cause system crashes and malfunctions like a domino effect, which will cause serious delays in the project timeline.
[0003] What is more serious is that if some deep-seated problems are not discovered and corrected in time, they may directly cause the machines in the test or other fields to become "bricked", that is, they cannot be started or upgraded normally, and even need to be physically disassembled for restoration when necessary, and the cost and time consumption of repair are extremely considerable. Especially when such problems occur in field tests abroad, the economic losses and social impact will be more significant.
[0004] At present, in order to prevent such problems from happening, the industry generally requires developers to verify their code when submitting it. Specifically, after developers finish writing the code, they need to submit it to the code management system (such as Gerrit, Github, Gitlab, etc.), and then compile it based on the latest software version and the new code submitted this time to generate a specific patch build version, namely patch build. Next, this generated software version needs to be verified to confirm whether the new code is effective as expected and to check whether there are other serious problems.
[0005] However, although this traditional method guarantees code quality to a certain extent, it still has limitations that cannot be ignored:
[0006] (1) Opaqueness of the verification process: The system can only confirm whether the R&D personnel have completed the compilation of the patch build version, but cannot know whether the R&D personnel have verified the patch build version after burning it into the device. This "black box" state may cause potential problems to be missed.
[0007] (2) Limitation of verification scope: Even if the developer has verified the patch build version burned into the device, the existing mechanism makes it difficult to monitor whether the developer has verified other functions. This localized verification strategy may introduce unknown risks by ignoring the interactions between systems. For example, the developer has only verified the functions of the submitted code, but the submitted code may cause the system to fail to boot after the system OTA (Over-The-Air) upgrade.
[0008] Therefore, it is particularly urgent to innovate and optimize existing technologies.
[0009] The above information is presented as background information only to assist with understanding the present disclosure and no determination or admission is made as to whether any of the above may be used as prior art with respect to the present disclosure. Summary of the invention
[0010] The present invention provides a code submission method, a code submission system, a computer device and a storage medium to solve the problem in the prior art that it is impossible to effectively monitor whether the R&D personnel have truly completed the verification and impact verification work of the submitted code in the software development process.
[0011] To achieve the above object, the present invention provides the following technical solutions:
[0012] In a first aspect, the present invention provides a code submission method, the method comprising:
[0013] Use the key to encrypt the ID number corresponding to the newly submitted code to generate a new key;
[0014] Compile the latest software version and the newly submitted code to obtain a compiled patch build version, and embed the new key into the patch build version;
[0015] A high priority program is built into the patch build version, and the high priority program is configured to: when the R&D personnel execute each test verification item in the set of test verification items for the patch build version, encrypt the verification result corresponding to each test verification item respectively using the new key, and write it into a special file;
[0016] Decrypting each verification result in the special file using the new key;
[0017] Monitoring whether a verification result is missing, or a verification result decryption fails, or at least one verification result after decryption fails;
[0018] If so, it is determined that the new submitted code is allowed to be merged;
[0019] If not, it is determined that the new submitted code is not allowed to be merged.
[0020] Furthermore, in the code submission method, before the step of using the key to encrypt the ID number corresponding to the newly submitted code to generate a new key, the method further includes:
[0021] A new submission code submitted by a developer is obtained, and a unique ID number is assigned to the new submission code.
[0022] Furthermore, in the code submission method, the test verification item set includes a system power on / off test verification item, an OTA upgrade test verification item, a system sleep / wake-up test verification item, and a multi-application startup test verification item.
[0023] Furthermore, in the code submission method, before the step of using the new key to decrypt each verification result in the special file, the method further includes:
[0024] Obtain the special file submitted by the R&D personnel.
[0025] In a second aspect, the present invention provides a code submission system, the system comprising:
[0026] The ID number encryption module is used to encrypt the ID number corresponding to the newly submitted code using a key to generate a new key;
[0027] A software compiling module, used for compiling the latest software version and the newly submitted code to obtain a compiled patch build version, and embedding the new key into the patch build version;
[0028] A program built-in module, used to embed a high-priority program in the patch build version, wherein the high-priority program is configured to: when the R&D personnel execute each test verification item in the set of test verification items for the patch build version, encrypt the verification result corresponding to each test verification item using the new key and write it into a special file;
[0029] A result decryption module, used to decrypt each verification result in the special file using the new key;
[0030] The verification monitoring module is used to monitor whether the verification result is missing, or the verification result decryption fails, or at least one verification result after decryption fails; if so, it is determined that the newly submitted code is allowed to be merged; if not, it is determined that the newly submitted code is not allowed to be merged.
[0031] Furthermore, in the code submission system, the system further includes a first acquisition module, which is used before the step of encrypting the ID number corresponding to the newly submitted code using the key to generate a new key:
[0032] A new submission code submitted by a developer is obtained, and a unique ID number is assigned to the new submission code.
[0033] Furthermore, in the code submission system, the test verification project set includes a system power on / off test verification project, an OTA upgrade test verification project, a system sleep / wake-up test verification project, and a multi-application startup test verification project.
[0034] Furthermore, in the code submission system, the system further includes a second acquisition module, which is used before the step of decrypting each verification result in the special file using the new key:
[0035] Obtain the special file submitted by the R&D personnel.
[0036] In a third aspect, the present invention provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the code submission method provided in the first aspect is implemented.
[0037] In a fourth aspect, the present invention provides a storage medium comprising computer executable instructions, wherein the computer executable instructions are executed by a computer processor to implement the code submission method provided in the first aspect above.
[0038] Compared with the prior art, the present invention has the following beneficial effects:
[0039] The present invention provides a code submission method, a code submission system, a computer device and a storage medium. By setting a set of to-be-tested verification items that must be verified, and setting the use of a key generated by an ID number corresponding to a newly submitted code to encrypt and decrypt the verification result, the authenticity and accuracy of the verification result can be ensured. Only when the R&D personnel have truly completed each test verification item and the verification result corresponding to each test verification item is successful, is it determined that the newly submitted code is allowed to be merged. This can not only significantly improve the quality and efficiency of code submission, while ensuring that the development work at each stage can be fully verified and monitored, but also effectively reduce various problems caused by code submission errors, thereby improving the overall stability and reliability of the project and ensuring the smooth progress of the project.
[0040] The present invention has other features and advantages, which will be apparent from or will be described in detail in the accompanying drawings and the following detailed description incorporated herein, which together serve to explain the specific principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0042] Figure 1 This is a flowchart of a code submission method provided in Embodiment 1 of the present invention;
[0043] Figure 2 This is a functional module diagram of a code submission system provided by Embodiment 2 of the present invention;
[0044] Figure 3 It is a structural diagram of a computer device provided in Embodiment 3 of the present invention. DETAILED DESCRIPTION
[0045] In order to explain in detail the possible application scenarios, technical principles, specific schemes that can be implemented, and the purposes and effects that can be achieved, the following is a detailed description of the specific embodiments listed in conjunction with the accompanying drawings. The embodiments described herein are only used to more clearly illustrate the technical solutions of the present application, and are therefore only used as examples, and cannot be used to limit the scope of protection of the present application.
[0046] Reference to "embodiment" herein means that the specific features, structures or characteristics described in conjunction with the embodiment may be included in at least one embodiment of the present application. The term "embodiment" appearing in various places in the specification does not necessarily refer to the same embodiment, nor does it particularly limit its independence or association with other embodiments. In principle, in the present application, as long as there is no technical contradiction or conflict, the various technical features mentioned in the embodiments can be combined in any way to form a corresponding implementable technical solution.
[0047] Unless otherwise defined, the technical terms used in this document have the same meanings as those generally understood by those skilled in the art to which this application belongs; the use of relevant terms in this document is only for describing specific embodiments and is not intended to limit this application.
[0048] In the description of this application, the term "and / or" is an expression used to describe the logical relationship between objects, indicating that three relationships may exist, for example, A and / or B, which means: A exists, B exists, and A and B exist at the same time. In addition, the character " / " in this article generally indicates that the objects before and after are in an "or" logical relationship.
[0049] In the present application, terms such as “first” and “second” are merely used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship of quantity, priority or sequence between these entities or operations.
[0050] Without further limitations, in this application, the words "include", "comprises", "has" or other similar expressions used in the sentences are intended to cover non-exclusive inclusion. These expressions do not exclude the presence of additional elements in the process, method or product including the elements, so that the process, method or product including a series of elements may include not only those limited elements, but also other elements not explicitly listed, or also include elements inherent to such process, method or product.
[0051] In this application, expressions such as "greater than", "less than", "exceed" and the like are understood to exclude the number itself; expressions such as "above", "below", "within" and the like are understood to include the number itself. In addition, in the description of the embodiments of this application, "multiple" means more than two (including two), and similar expressions related to "multiple" are also understood in this way, such as "multiple groups", "multiple times", etc., unless otherwise clearly and specifically limited.
[0052] In the description of the embodiments of the present application, space-related expressions used, such as "center", "longitudinal", "lateral", "length", "width", "thickness", "up", "down", "front", "back", "left", "right", "vertical", "horizontal", "vertical", "top", "bottom", "inside", "outside", "clockwise", "counterclockwise", "axial", "radial", "circumferential", etc., indicate the orientation or position relationship based on the orientation or position relationship shown in the specific embodiments or drawings, and are only for the convenience of describing the specific embodiments of the present application or facilitating the reader's understanding, and do not indicate or imply that the referred device or component must have a specific position, a specific orientation, or be constructed or operated in a specific orientation, and therefore cannot be understood as a limitation on the embodiments of the present application.
[0053] Unless otherwise expressly specified or limited, in the description of the embodiments of the present application, the terms such as "install", "connect", "connect", "fix", "set", etc. used should be understood in a broad sense. For example, the "connection" can be a fixed connection, a detachable connection, or an integrated setting; it can be a mechanical connection, an electrical connection, or a communication connection; it can be a direct connection, or it can be indirectly connected through an intermediate medium; it can be the internal connection of two elements or the interaction relationship between two elements. For technicians in the technical field to which the present application belongs, the specific meanings of the above terms in the embodiments of the present application can be understood according to the specific circumstances.
[0054] Embodiment 1
[0055] Embodiment 1 of the present invention effectively improves the quality and efficiency of code submission by constructing a strict code verification process and combining key management and encryption technology. At the same time, it strengthens the monitoring and verification links in the development process, significantly reduces the project risks caused by code errors, and provides a solid guarantee for the steady advancement of the project.
[0056] Please refer to Figure 1 , Figure 1 This is a flowchart of a code submission method provided in Embodiment 1 of the present invention. The method is applicable to monitoring whether the R&D personnel have truly completed the verification of the submitted code and the impact verification work. The method is executed by a code submission system, which can be implemented by software and / or hardware. The method specifically includes the following steps:
[0057] S101. Use a key to encrypt the ID number corresponding to the newly submitted code to generate a new key.
[0058] It should be noted that this step involves the use of advanced encryption algorithms (such as symmetric encryption algorithms such as AES) to encrypt the ID number corresponding to the newly submitted code with a specific key to generate a new key that is closely associated with it and unique. This is intended to provide a true, accurate and secure foundation for the subsequent data protection and verification process.
[0059] In one implementation of this embodiment, in order to further improve the code submission and verification process and ensure that each step of the operation can be performed accurately, the following key steps are added before step S101, namely:
[0060] A new submission code submitted by a developer is obtained, and a unique ID number is assigned to the new submission code.
[0061] It should be noted that, first of all, the system will receive the new code submitted by the R&D personnel from the code management system (such as Gerrit, Github, Gitlab, etc.). These codes are an indispensable part of the project progress and carry the improvements or additions of software functions by the developers.
[0062] Next, the system will assign a globally unique identifier (i.e., ID number) to the newly submitted code. This ID number is not only the unique "identity card" of the code, but also an important reference for all subsequent verification, compilation, merging, and other operations. By assigning a unique ID to each code submission, the system can accurately track the status, change history, and verification results of each code segment, ensuring the traceability and transparency of the entire development process.
[0063] After completing the above steps, the system will continue to execute step S101 and its subsequent steps according to the established process, that is, use the key to encrypt the ID number corresponding to the newly submitted code, and then carry out a series of compilation, verification and evaluation work.
[0064] In summary, by adding the steps of receiving newly submitted codes and allocating unique IDs, this embodiment not only strengthens the standardization of code management, but also provides a more solid data foundation for subsequent verification and merging operations, further improving the overall level of code quality and project management.
[0065] S102: Compile the latest software version and the newly submitted code to obtain a compiled patch build version, and embed the new key into the patch build version.
[0066] It should be noted that this step is to compile the latest software version with the newly submitted code to form a new software version, namely the compiled patch build version (i.e., patch build). In this process, the new key generated in step S101 is built into the patch build version, ensuring the continuity and convenience of encryption operations in the subsequent verification process.
[0067] It is understandable that in the actual development environment, the compilation work is undertaken by a dedicated build server (BuildServer). The build server is a high-performance computer or server cluster that is specially configured and optimized for compiling code. They can efficiently handle a large number of compilation tasks and ensure that the code can be correctly converted into executable files or library files.
[0068] When the developer submits the newly submitted code through the code management system, the system will send the compilation request to the compilation server. After receiving the request, the compilation server will integrate the newly submitted code with the latest software version according to the predetermined configuration and process, perform the compilation operation, and generate a compiled patch build version. During this process, the compilation server may perform a series of checks and optimization operations to ensure that the compiled software version meets the quality requirements and has good performance.
[0069] It should be noted that while the compilation server is executing the compilation work, it will also work closely with the code management system, version control system, etc. to ensure the traceability of the compilation process and the effectiveness of version control. In this way, R&D personnel can easily view the compilation results, download the compiled software version, and perform subsequent testing and verification work through the code management system.
[0070] S103. A high priority program is built into the patch build version, and the high priority program is configured as follows: when the R&D personnel execute each test verification item in the set of test verification items on the patch build version, the verification result corresponding to each test verification item is encrypted using the new key and written into a special file.
[0071] It should be noted that, in order to strengthen the rigor of the verification process, this embodiment has a high-priority program built into the patch build version. The program is explicitly configured to: when the R&D personnel test and verify each item in the set of items to be tested and verified, the new key built into the patch build version is automatically used to encrypt the result of each verification, and the encrypted verification result is securely written into a preset special file, such as patch_build_verified, to prevent data tampering or loss.
[0072] In one implementation of this embodiment, in order to comprehensively and meticulously verify the impact of the newly submitted code on the overall function of the system, a set of test verification items that must be verified is set. This set not only covers the basic functions of the system, but also goes deep into complex scenarios such as system upgrades, sleep wake-up, and multi-application interaction, ensuring the comprehensiveness and effectiveness of the verification.
[0073] Specifically, the test verification project set includes the following:
[0074] System startup and shutdown test verification project: This project aims to verify whether the newly submitted code has an adverse effect on the system startup and shutdown process. By simulating the normal startup and shutdown process of the system, check whether the system can smoothly enter and exit the working state, and whether there are any abnormalities or errors.
[0075] OTA upgrade test verification project: With the continuous development of software technology, OTA upgrade has become an essential function for many devices. This project simulates the OTA upgrade process to verify whether the newly submitted code can be executed correctly during the upgrade process, and whether the system can run normally after the upgrade without functional abnormalities or performance degradation.
[0076] System sleep and wakeup test verification project: System sleep and wakeup are important functions for device energy saving and fast response. This project simulates the system sleep and wakeup process to verify whether the newly submitted code interferes with or affects these two functions. At the same time, it also checks the power consumption performance of the system in sleep and wakeup states to ensure that the system can run efficiently and energy-saving.
[0077] Multi-application launch test verification project: In actual use, users often run multiple applications at the same time. This project verifies whether the newly submitted code has an impact on the system's multi-tasking capabilities by simulating the scenario of multiple applications being launched at the same time. At the same time, it also checks whether the interaction between various applications is normal, and whether the allocation of system resources (such as CPU, memory, etc.) is reasonable.
[0078] By executing the above test verification project set, we can comprehensively evaluate the impact of the newly submitted code on the overall function of the system and ensure that the quality of the code meets the project requirements. At the same time, these test verification projects also provide valuable feedback information for R&D personnel, helping them to discover and fix potential problems and defects in a timely manner.
[0079] S104: Use the new key to decrypt each verification result in the special file.
[0080] It should be noted that after the R&D personnel complete all test verification projects, the system will use the same key to decrypt all encrypted verification results stored in the special file one by one to restore the original verification results for subsequent analysis and evaluation.
[0081] In one implementation of this embodiment, before executing step S104, a pre-step is added, namely:
[0082] Obtain the special file submitted by the R&D personnel.
[0083] It should be noted that R&D personnel will submit these special files on code management systems (such as Gerrit, Github, Gitlab, etc.).
[0084] By adding this pre-step, you can ensure that the entire development process can proceed smoothly. This step not only helps maintain the integrity and consistency of the project, but also improves development efficiency and quality, ensuring that the final delivered product meets user needs and expectations.
[0085] S105, monitoring whether there is a lack of verification results, or the verification result decryption fails, or at least one verification result after decryption fails; if so, executing step S106, if not, executing step S107.
[0086] It should be noted that in this step, the system will conduct a detailed analysis of the decrypted verification results.
[0087] Missing verification results means that during the expected verification process, the system failed to detect a complete set of verification results in a specific file. Possible reasons include but are not limited to:
[0088] (1) R&D personnel did not perform all test verification items.
[0089] (2) Problems with the test environment or test tools resulted in some verification results not being generated or recorded.
[0090] (3) The verification result file is lost or damaged during transmission or storage.
[0091] When the system detects missing verification results, it usually considers the verification process incomplete, which may affect the evaluation and merging decisions of newly submitted code.
[0092] Failure to decrypt verification results means that when the system uses the key corresponding to the newly submitted code to decrypt the encrypted verification results stored in the special file, a problem occurs during the decryption process, resulting in the inability to correctly restore the original verification data. Possible reasons include but are not limited to:
[0093] (1) The key is wrong or does not match, that is, the key used for decryption is not the key used for encryption. This is because the R&D personnel forged the verification results.
[0094] (2) Encrypted data is tampered with or damaged during storage or transmission.
[0095] Decryption failure means that the system cannot obtain valid verification results, and therefore cannot accurately evaluate the newly submitted code.
[0096] At least one verification result after decryption failed means that after successfully decrypting the verification result, when the system checks the results of each verification item one by one, it is found that any verification item has failed (i.e., failed to pass the expected test standard or requirement). This indicates that the newly submitted code has problems in some aspects and may not work properly or meet project requirements.
[0097] Understandably, this step is key to ensuring code quality, and any abnormal conditions will trigger different response paths.
[0098] In addition, this step is performed by the CI (Continuous Integration) system. Through the automated processing of the CI system, not only can the efficiency and quality of software development be greatly improved, but also human errors and duplication of work can be reduced.
[0099] S106: Determine whether the newly submitted code is allowed to be merged.
[0100] It should be noted that if a comprehensive assessment confirms that all verification items have been completed and the verification results are successful, the system will determine that the newly submitted code meets the merge criteria and authorize the code merge operation, thereby advancing the project progress.
[0101] S107: Determine that the newly submitted code is not allowed to be merged.
[0102] It should be noted that if any verification missing, verification failure or decryption failure is found, the system will immediately determine that the newly submitted code does not meet the merge conditions and reject the merge request to ensure the overall quality and stability of the code base.
[0103] Although the terms such as code, ID number, encryption, etc. are used more frequently in this application, the possibility of using other terms is not excluded. These terms are used only to more conveniently describe and explain the essence of the present invention; interpreting them as any additional restrictions is contrary to the spirit of the present invention.
[0104] A code submission method provided by the present invention sets a set of test verification items that must be verified, and sets the use of a key generated by an ID number corresponding to a newly submitted code to encrypt and decrypt the verification result, so as to ensure the authenticity and accuracy of the verification result. Only when the R&D personnel have truly completed each test verification item and the verification result corresponding to each test verification item is successful, is it determined that the newly submitted code is allowed to be merged. This can not only significantly improve the quality and efficiency of code submission, but also ensure that the development work at each stage can be fully verified and monitored. In addition, it can effectively reduce various problems caused by code submission errors, thereby improving the overall stability and reliability of the project and ensuring the smooth progress of the project.
[0105] Embodiment 2
[0106] Please refer to Figure 2 , Figure 2 This is a functional module diagram of a code submission system provided in Embodiment 2 of the present invention, which is suitable for executing the code submission method provided in Embodiment 1 of the present invention. The system specifically includes the following modules:
[0107] ID number encryption module 201, used to encrypt the ID number corresponding to the newly submitted code using a key to generate a new key;
[0108] A software compiling module 202, used to compile the latest software version and the newly submitted code to obtain a compiled patch build version, and embed the new key into the patch build version;
[0109] A program built-in module 203 is used to embed a high-priority program in the patch build version, and the high-priority program is configured to: when the R&D personnel execute each test verification item in the set of test verification items for the patch build version, use the new key to encrypt the verification result corresponding to each test verification item respectively, and write it into a special file;
[0110] A result decryption module 204, used to decrypt each verification result in the special file using the new key;
[0111] The verification monitoring module 205 is used to monitor whether there is a lack of verification results, or the verification result decryption fails, or at least one verification result after decryption fails; if so, it is determined that the newly submitted code is allowed to be merged; if not, it is determined that the newly submitted code is not allowed to be merged.
[0112] Preferably, the system further comprises a first acquisition module, which is used, before the step of encrypting the ID number corresponding to the newly submitted code using the key to generate a new key:
[0113] A new submission code submitted by a developer is obtained, and a unique ID number is assigned to the new submission code.
[0114] Preferably, the test verification item set includes a system power on / off test verification item, an OTA upgrade test verification item, a system sleep / wake-up test verification item, and a multi-application startup test verification item.
[0115] Preferably, the system further comprises a second acquisition module, which is used for, before the step of decrypting each verification result in the special file using the new key:
[0116] Obtain the special file submitted by the R&D personnel.
[0117] A code submission system provided by the present invention sets a set of test verification items that must be verified, and sets the use of a key generated by an ID number corresponding to a newly submitted code to encrypt and decrypt the verification result, so as to ensure the authenticity and accuracy of the verification result. Only when the R&D personnel have truly completed each test verification item and the verification result corresponding to each test verification item is successful, is it determined that the newly submitted code is allowed to be merged. This can not only significantly improve the quality and efficiency of code submission, but also ensure that the development work at each stage can be fully verified and monitored. In addition, it can effectively reduce various problems caused by code submission errors, thereby improving the overall stability and reliability of the project and ensuring the smooth progress of the project.
[0118] The above system can execute the method provided by any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of the execution method.
[0119] Embodiment 3
[0120] Figure 3 A schematic diagram of the structure of a computer device provided in Embodiment 3 of the present invention. Figure 3 A block diagram of an exemplary computer device 12 suitable for use in implementing embodiments of the present invention is shown. Figure 3 The computer device 12 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0121] like Figure 3 As shown, the computer device 12 is in the form of a general-purpose computing device. The components of the computer device 12 may include, but are not limited to: one or more processors or processing units 16, a system memory 28, and a bus 18 that connects various system components (including the system memory 28 and the processing unit 16).
[0122] Bus 18 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor or a local bus using any of a variety of bus architectures. By way of example, these architectures include, but are not limited to, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MAC) bus, an Enhanced ISA bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
[0123] The computer device 12 typically includes a variety of computer system readable media. These media can be any available media that can be accessed by the computer device 12, including volatile and non-volatile media, removable and non-removable media.
[0124] The system memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. The computer device 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, the storage system 34 may be used to read and write non-removable, non-volatile magnetic media ( Figure 3 not shown, usually called a "hard drive"). Although Figure 3 Not shown in the figure, a disk drive for reading and writing to a removable non-volatile disk (e.g., a "floppy disk"), and an optical disk drive for reading and writing to a removable non-volatile optical disk (e.g., a CD-ROM, a DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to the bus 18 via one or more data medium interfaces. The memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to perform the functions of the various embodiments of the present invention.
[0125] A program / utility 40 having a set (at least one) of program modules 42 may be stored, for example, in the memory 28, such program modules 42 including but not limited to an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment. The program modules 42 generally perform the functions and / or methods of the embodiments described herein.
[0126] The computer device 12 may also communicate with one or more external devices 14 (e.g., keyboards, pointing devices, displays 24, etc.), one or more devices that enable a user to interact with the computer device 12, and / or any device that enables the computer device 12 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface 22. In addition, the computer device 12 may also communicate with one or more networks (e.g., a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) via a network adapter 20. As shown, the network adapter 20 communicates with the other modules of the computer device 12 via a bus 18. It should be understood that although Figure 3 Not shown, other hardware and / or software modules may be used in conjunction with computer device 12, including but not limited to microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0127] The processing unit 16 executes various functional applications and data processing by running programs stored in the system memory 28, such as implementing the code submission method provided in the embodiment of the present invention.
[0128] Embodiment 4
[0129] Embodiment 4 of the present invention provides a computer-readable storage medium on which computer-executable instructions are stored. When the instructions are executed by a processor, the code submission method provided in all the embodiments of the invention of this application is implemented.
[0130] Any combination of one or more computer-readable media may be used. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, device, or device.
[0131] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, which carry computer-readable program code. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer-readable signal media may also be any computer-readable medium other than a computer-readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0132] Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0133] Computer program code for performing the operations of the present invention may be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0134] Finally, it should be noted that although the above embodiments have been described in the specification and drawings of this application, this does not limit the scope of patent protection of this application. All technical solutions generated by replacing or modifying equivalent structures or equivalent processes based on the essential concept of this application using the contents recorded in the specification and drawings of this application, as well as directly or indirectly implementing the technical solutions of the above embodiments in other related technical fields, are included in the scope of patent protection of this application.
Claims
1. A code submission method, characterized in that: The method comprises: Use the key to encrypt the ID number corresponding to the newly submitted code to generate a new key; Compile the latest software version and the newly submitted code to obtain a compiled patch build version, and embed the new key into the patch build version; A high priority program is built into the patch build version, and the high priority program is configured to: when the R&D personnel execute each test verification item in the set of test verification items for the patch build version, encrypt the verification result corresponding to each test verification item respectively using the new key, and write it into a special file; Decrypting each verification result in the special file using the new key; Monitoring whether a verification result is missing, or a verification result decryption fails, or at least one verification result after decryption fails; If so, it is determined that the new submitted code is allowed to be merged; If not, it is determined that the new submitted code is not allowed to be merged.
2. The code submission method according to claim 1, characterized in that: Before the step of using the key to encrypt the ID number corresponding to the newly submitted code to generate a new key, the method further includes: A new submission code submitted by a developer is obtained, and a unique ID number is assigned to the new submission code.
3. The code submission method according to claim 1, characterized in that: The test verification item set includes a system power on / off test verification item, an OTA upgrade test verification item, a system sleep / wake-up test verification item, and a multi-application startup test verification item.
4. The code submission method according to claim 1, characterized in that: Before the step of decrypting each verification result in the special file using the new key, the method further comprises: Obtain the special file submitted by the R&D personnel.
5. A code submission system, characterized in that: The system comprises: The ID number encryption module is used to encrypt the ID number corresponding to the newly submitted code using a key to generate a new key; A software compiling module, used for compiling the latest software version and the newly submitted code to obtain a compiled patch build version, and embedding the new key into the patch build version; A program built-in module, used to embed a high-priority program in the patch build version, wherein the high-priority program is configured to: when the R&D personnel execute each test verification item in the set of test verification items for the patch build version, encrypt the verification result corresponding to each test verification item using the new key and write it into a special file; A result decryption module, used for decrypting each verification result in the special file using the new key; The verification monitoring module is used to monitor whether the verification result is missing, or the verification result decryption fails, or at least one verification result after decryption fails; if so, it is determined that the newly submitted code is allowed to be merged; if not, it is determined that the newly submitted code is not allowed to be merged.
6. The code submission system according to claim 5, characterized in that: The system further comprises a first acquisition module, which is used before the step of encrypting the ID number corresponding to the newly submitted code using the key to generate a new key: A new submission code submitted by a developer is obtained, and a unique ID number is assigned to the new submission code.
7. The code submission system according to claim 5, characterized in that: The test verification item set includes a system power on / off test verification item, an OTA upgrade test verification item, a system sleep / wake-up test verification item, and a multi-application startup test verification item.
8. The code submission system according to claim 5, characterized in that: The system further comprises a second acquisition module, which is used, before the step of decrypting each verification result in the special file using the new key: Obtain the special file submitted by the R&D personnel.
9. 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 code submission method according to any one of claims 1 to 4 is implemented.
10. A storage medium containing computer executable instructions, characterized in that: The computer executable instructions are executed by a computer processor to implement the code submission method according to any one of claims 1 to 4.
Citation Information
Cited By
Test method and test system
CN119537251A
A testing method and a testing system
CN119537251B