Integrated software package construction method and device and electronic equipment

By obtaining the code files to be tested and the test version information in the automatic driving software development, identifying and updating the change modules in the historical version integration software package, the problem of low construction efficiency in traditional autonomous driving software development is solved, and faster Package build and test.

CN119292649APending Publication Date: 2025-01-10GUANGZHOU AUTOMOBILE GROUP CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411195187.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-28
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

During the development of traditional autonomous driving software, integration engineers rely heavily on development engineers, resulting in low software package construction efficiency and long construction time, which affects the efficiency of integrated software package construction of autonomous driving software.

Method used

By obtaining the code files to be tested and the test version information of the specified software, we determine that there are joint functional modules with information changes in the historical version integration software package, compile them based on the code files to be tested, replace the modules in the historical version, and update the historical version integration. Software package to minimize the compilation of source code.

Benefits of technology

It reduces the construction time of integrated software packages, improves the construction efficiency, reduces the dependence on developer resources, and improves the testing efficiency of autonomous driving software.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119292649A_ABST
    Figure CN119292649A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses an integrated software package construction method and device and electronic equipment. The method comprises the following steps: acquiring a to-be-tested code file and test version information which are uploaded to a specified file warehouse of specified software; determining at least one joint function module with information change in the historical version integrated software package according to a specified file warehouse; compiling the at least one joint function module with information change based on the to-be-tested code file to obtain at least one specified joint function module; and replacing the at least one joint function module with information change in the historical version integrated software package with the at least one specified joint function module to update the historical version integrated software package of the specified software to obtain a reference integrated software package. According to the method, only the joint function module with information change in the integrated software package of the historical version is compiled and updated, so that the minimum compilation source code is realized, and the construction efficiency of the integrated software package is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and more specifically, to a method and device for constructing an integrated software package, and an electronic device. Background Art

[0002] The frequency of iteration and update in the current autonomous driving industry is increasing, and the testing requirements for vehicle perception, prediction, decision-making planning, control, mapping and other modules are also increasing. In the traditional autonomous driving software development process, for each test requirement, the integration engineer needs to collect the requirements of the development engineer offline, which is highly dependent on manual work and takes a long time to build, which seriously affects the efficiency of building the integrated software package of the autonomous driving software. Summary of the invention

[0003] In view of the above problems, the present application proposes a method, device and electronic device for building an integrated software package to improve the above problems.

[0004] In a first aspect, the present application provides a method for constructing an integrated software package, the method comprising: obtaining a code file to be tested and test version information uploaded to a designated file repository of designated software, the test version information comprising a historical version integrated software package of the designated software, the designated software comprising multiple joint functional modules, each joint functional module consisting of multiple associated functional modules, each file repository being used to store code and documents of a functional module, and each file repository corresponding to at least one joint functional module; determining at least one joint functional module in the historical version integrated software package with information changes according to the designated file repository; compiling the at least one joint functional module in the historical version integrated software package with information changes based on the code file to be tested to obtain at least one designated joint functional module; replacing the at least one joint functional module in the historical version integrated software package with information changes with the at least one designated joint functional module to update the historical version integrated software package of the designated software to obtain a reference integrated software package.

[0005] In a second aspect, the present application provides an integrated software package construction device, the device comprising: a test data acquisition module, used to obtain a code file to be tested and test version information uploaded to a designated file repository of a designated software, the test version information including a historical version integrated software package of the designated software, the designated software including multiple joint function modules, each joint function module consisting of multiple associated function modules, each file repository for storing the code and documents of a function module, and each file repository corresponding to at least one joint function module; a change information determination module, used to determine at least one joint function module in the historical version integrated software package with information changes according to the designated file repository; a compilation module, used to compile the at least one joint function module in the historical version integrated software package with information changes based on the code file to be tested to obtain at least one designated joint function module; an integrated software package construction module, used to replace the at least one joint function module in the historical version integrated software package with information changes with the at least one designated joint function module, so as to update the historical version integrated software package of the designated software and obtain a reference integrated software package.

[0006] In a third aspect, the present application provides an electronic device comprising one or more processors and a memory; one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs are configured to execute the above-mentioned method.

[0007] In a fourth aspect, the present application provides a computer-readable storage medium, in which program code is stored, wherein the above method is executed when the program code is run.

[0008] The present application provides a method, device and vehicle for building an integrated software package, which obtains a code file to be tested and test version information uploaded to a designated file warehouse of designated software, wherein the test version information includes a historical version integrated software package of the designated software, wherein the designated software includes multiple joint function modules, each joint function module is composed of multiple associated function modules, each file warehouse is used to store the code and documents of a function module, and each file warehouse has a corresponding relationship with at least one joint function module; at least one joint function module with information change in the historical version integrated software package is determined according to the designated file warehouse; at least one joint function module with information change is compiled based on the code file to be tested to obtain at least one designated joint function module; at least one joint function module with information change in the historical version integrated software package is replaced with the at least one designated joint function module to update the historical version integrated software package of the designated software, and obtain a reference integrated software package. Thus, on the basis of the existing historical version integrated software package, only the joint function modules with information change in the historical version integrated software package are compiled and updated to realize the updating of the historical version integrated software package of the designated software, thereby minimizing the compilation of source code, thereby reducing the construction time of the integrated software package, and thus improving the construction efficiency of the integrated software package. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For those skilled in the art, other drawings can be obtained based on these drawings without creative work.

[0010] Figure 1 A flow chart of a method for constructing an integrated software package proposed in an embodiment of the present application is shown.

[0011] Figure 2 An example of a structural block diagram of some joint functional modules provided in an embodiment of the present application is shown.

[0012] Figure 3 A flowchart of a method for constructing an integrated software package proposed in another embodiment of the present application is shown.

[0013] Figure 4 A flowchart of a method for constructing an integrated software package proposed in yet another embodiment of the present application is shown.

[0014] Figure 5 A structural block diagram of an autonomous driving software development system provided in an embodiment of the present application is shown.

[0015] Figure 6An example diagram of the operation steps that Jenkins needs to perform when a compilation check request is triggered is shown in an embodiment of the present application.

[0016] Figure 7 The following illustrates the operation steps that Jenkins needs to perform when triggering an integrated compilation request for testing requirements according to an embodiment of the present application.

[0017] Figure 8 A method flow chart of an autonomous driving software development system provided in an embodiment of the present application is shown.

[0018] Fig. 9 A structural block diagram of an integrated software package construction device proposed in an embodiment of the present application is shown.

[0019] Fig.10 A structural block diagram of an electronic device proposed in this application is shown. DETAILED DESCRIPTION

[0020] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0021] In an embodiment of the present application, the inventor proposes a method, device and electronic device for building an integrated software package, by obtaining a code file to be tested and test version information uploaded to a designated file warehouse of a designated software, the test version information includes a historical version integrated software package of the designated software, the designated software includes multiple joint function modules, each joint function module is composed of multiple associated function modules, each file warehouse is used to store the code and documents of a function module, and each file warehouse has a corresponding relationship with at least one joint function module; according to the designated file warehouse, at least one joint function module with information change in the historical version integrated software package is determined; based on the code file to be tested, at least one joint function module with information change is compiled to obtain at least one designated joint function module; at least one joint function module with information change in the historical version integrated software package is replaced with the at least one designated joint function module to update the historical version integrated software package of the designated software, and obtain a reference integrated software package. Therefore, on the basis of the existing historical version integrated software package, by only compiling and updating the joint function modules with information change in the historical version integrated software package, the historical version integrated software package of the designated software is updated, and the compilation of source code is minimized, thereby reducing the construction time of the integrated software package, and thus improving the construction efficiency of the integrated software package.

[0022] See also Figure 1 , is a method for building an integrated software package provided in an embodiment of the present application. The method for building an integrated software package can be applied to an autonomous driving function test scenario, and can be specifically used to build a software package for one or more functional modules that need to be tested in the autonomous driving industry software, thereby quickly generating an integrated software package and performing a test. The method includes:

[0023] Step S110: Obtain the code file to be tested and the test version information uploaded to the designated file repository of the designated software, wherein the test version information includes the historical version integrated software package of the designated software, wherein the designated software includes multiple joint functional modules, each joint functional module is composed of multiple associated functional modules, each file repository is used to store the code and documents of a functional module, and each file repository has a corresponding relationship with at least one joint functional module.

[0024] The designated software may be software related to the autonomous driving industry or the autonomous driving function, or may be understood as software used to control the autonomous driving function. The number of designated software may be one or more, and the specific number may not be limited. The implementation method of this application is described by taking the number of designated software as one as an example.

[0025] In this embodiment, in order to reduce other compilation problems caused by submitting test source code to the file warehouse to the upstream and downstream related warehouses, the algorithm modules of the specified software can be classified according to their functions to obtain multiple joint functional modules, each of which includes at least one functional module (that is, each joint functional module is composed of multiple related functional modules), and the test code and related configuration files of each functional module are stored in a file warehouse (that is, each file warehouse is used to store the code and documents of a functional module), and different functional modules correspond to different file warehouses. Accordingly, each joint functional module includes multiple file warehouses. Each file warehouse has a corresponding relationship with at least one joint functional module, that is, a file warehouse can exist in only one joint functional module, or it can exist in multiple different joint functional modules at the same time, that is, different joint functional modules can include the same functional module.

[0026] For example, see Figure 2 , shows an example of a structural block diagram of some joint functional modules provided in an embodiment of the present application. Figure 2As shown, after classifying the algorithm modules of the specified software according to their functions, a driving joint function module, a perception joint function module and a prediction joint function module can be obtained. Among them, the perception joint function module and the prediction joint function module can both include a map navigation function, and the test code corresponding to the map navigation function can be stored in a map file warehouse, so the perception joint function module and the prediction joint function module both include a map file warehouse. The map file warehouse exists in both the perception joint function module and the prediction joint function module. The driving joint function module, the perception joint function module and the prediction joint function module all include multiple functional modules, for example, the driving joint function module includes a radar driving module (the corresponding file warehouse is a radar driving warehouse), a millimeter wave radar driving module (the corresponding file warehouse is a millimeter wave radar driving warehouse) and a laser radar driving module (the corresponding file warehouse is) a laser radar driving warehouse and other functional modules, optionally, the driving joint function module can also include a custom module (the corresponding file warehouse is a public custom library file).

[0027] The specified file repository can be any file repository of a certain joint function module of the specified software. For example, the specified file repository can be Figure 2 The "map file warehouse" of the perception joint functional module is shown. The designated file warehouse can be understood as the file warehouse corresponding to the functional modules with test requirements. When developers have test requirements, they can upload the test source code to the file warehouse corresponding to the functional modules with test requirements. However, each designated software needs to test a large number of functional modules, and each functional module may need to be tested more than once, or different functional modules may need to be tested jointly. In this case, if the test source code is tested one by one according to the submission order, the test time will increase, affecting the test efficiency; and if more servers are introduced for parallel testing, more server resources will be consumed, increasing the dependence of developers on server resources and increasing the test cost.

[0028] In order to improve the above-mentioned problem, when it is detected that there is a test source code uploaded to the designated file warehouse of the designated software, the code file to be tested and the test version information uploaded to the designated file warehouse of the designated software are obtained, and the test version information includes the historical version integrated software package of the designated software. Optionally, the historical version of the designated software may include one or more, and there is no specific limitation. The test version information can be stored in advance, for example, it can be pre-stored in the tool jenkins on the CI (Continuous Integration) server, so that the test version information of the designated software can be directly obtained from the jenkins server, and no longer depends on the storage platform such as the FTP (File Transfer Protocol Server) server or Artifactory (binary storage management tool), which can avoid the problem of insufficient remaining storage space of the storage platform.

[0029] Step S120: determining, according to the designated file repository, at least one joint function module in the historical version integrated software package having information changes.

[0030] As a way to quickly build an integrated software package (i.e., a new software version), at least one joint function module in which information has been changed in the historical version integrated software package of the specified software can be directly determined based on the specified file repository. The joint function module is determined based on the implementation function of the specified file repository. For example, if the specified file repository is the above Figure 2 The map file warehouse shown can determine all the joint function modules that can realize the map navigation function as the at least one joint function module whose information is changed.

[0031] In this implementation, the test version information may also include a historical version file warehouse, which is a storage warehouse for code files corresponding to the historical version integrated software package. The historical version file warehouse includes multiple file warehouses, each of which has a corresponding name.

[0032] Therefore, as an implementation method, in the process of determining at least one joint function module with information changes in the historical version integrated software package, the name of the designated file warehouse can be compared with the name of the historical version file warehouse, and then the module where the file warehouse with the same name as the designated file warehouse in the historical version file warehouse is located is determined as the joint function module. Each file warehouse can exist in one or more joint function modules at the same time, so at least one joint function module can be obtained.

[0033] For example, Figure 2As shown, if the designated file warehouse is a map file warehouse, then the joint function modules with information changes in the historical version integrated software package may include a perception joint function module and a prediction joint function module, and the function modules corresponding to the map file warehouse at this time can realize both the perception joint function and the prediction joint function; if the designated file warehouse is a lidar driver warehouse, then the joint function modules with information changes in the historical version integrated software package may include a drive joint function module, and the function modules corresponding to the lidar driver warehouse at this time can realize the drive joint function; if the designated file warehouse is a public message definition warehouse, then the joint function modules with information changes in the historical version integrated software package may include a drive joint function module, a perception joint function module and a prediction joint function module, and the public message definition warehouse at this time can realize the drive joint function, the perception joint function and the prediction joint function.

[0034] Step S130: compile the at least one joint function module with information change based on the code file to be tested to obtain at least one designated joint function module.

[0035] As a method, in order to update the version information of the specified software, at least one joint functional module with information changes can be compiled based on the uploaded code file to be tested (source code to be tested) to obtain at least one specified joint functional module (i.e., the joint functional module after the information is updated).

[0036] It should be noted that each code file to be tested is used to update the joint function module corresponding to the storage file warehouse of the code file, and different code files to be tested may be used to update different joint function modules. For example, the code file to be tested uploaded to the A file warehouse is used to update the joint function module corresponding to the A file warehouse, and the code file to be tested uploaded to the B file warehouse is used to update the joint function module corresponding to the B file warehouse. At this time, the joint function module corresponding to the A file warehouse is different from the joint function module corresponding to the B file warehouse.

[0037] Alternatively, different code files to be tested may be used to update the same joint function module. In this case, at least one joint function module will be updated separately based on different code files to be tested. For example, code file 1 to be tested uploaded to file warehouse A is used to update the joint function module corresponding to file warehouse A, and code file 2 to be tested uploaded to file warehouse A is also used to update the joint function module corresponding to file warehouse A, but these are two different update processes.

[0038] Optionally, for specified software, the code files to be tested can be uploaded to multiple file repositories of the specified software at the same time. The code files to be tested uploaded to different file repositories are different. In this way, the joint functional modules corresponding to each file repository can be compiled separately according to the code files to be tested, that is, the compilation process of the joint functional modules corresponding to each file repository is independent, and the corresponding module software package is generated.

[0039] Step S140: replacing at least one joint function module with information change in the historical version integrated software package with the at least one designated joint function module to update the historical version integrated software package of the designated software and obtain a reference integrated software package.

[0040] When the compilation of the joint function modules with information changes is completed, at least one joint function module with information changes in the historical version integrated software package can be replaced with the at least one specified joint function module to update the historical version integrated software package of the specified software and obtain a reference integrated software package.

[0041] As an implementation mode, the replacing of at least one joint function module in which information in a historical version integrated software package has been changed with the at least one designated joint function module to update the historical version integrated software package of a designated software and obtain a reference integrated software package may include: replacing at least one joint function module in which information in a historical version integrated software package has been changed with the at least one designated joint function module to update the historical version integrated software package of the designated software; and calling an integrated compilation script to compile the historical version integrated software package after the joint function module has been replaced to obtain a reference integrated software package.

[0042] Optionally, when there are multiple joint function modules with information changes in the historical version integrated software package, the multiple joint function modules can be compiled separately to obtain multiple module software packages, and the original joint function modules with information changes in the historical version integrated software package can be replaced by the multiple module software packages, while other joint function modules with no information changes can be ignored.

[0043] This implementation reduces the time required to build an integrated test software package by compiling the joint functional modules. There is no need to pull historical versions from the software version storage platform. Instead, locally pre-stored integrated software packages can be used, which enables rapid construction of software versions and can meet the daily development and testing needs of developers.

[0044] The present embodiment provides a method for building an integrated software package, which obtains a code file to be tested and test version information uploaded to a designated file warehouse of designated software, wherein the test version information includes a historical version integrated software package of the designated software, wherein the designated software includes multiple joint function modules, each joint function module is composed of multiple associated function modules, each file warehouse is used to store the code and documents of a function module, and each file warehouse has a corresponding relationship with at least one joint function module; at least one joint function module with information change in the historical version integrated software package is determined according to the designated file warehouse; at least one joint function module with information change is compiled based on the code file to be tested to obtain at least one designated joint function module; at least one joint function module with information change in the historical version integrated software package is replaced with the at least one designated joint function module to update the historical version integrated software package of the designated software, and obtain a reference integrated software package. Thus, on the basis of the existing historical version integrated software package, only the joint function modules with information change in the historical version integrated software package are compiled and updated to realize the updating of the historical version integrated software package of the designated software, thereby minimizing the compilation of source code, thereby reducing the construction time of the integrated software package, and further improving the construction efficiency of the integrated software package.

[0045] See also Figure 3 , is a method for constructing an integrated software package provided in another embodiment of the present application, the method comprising:

[0046] Step S210: Obtain the code file to be tested and the test version information uploaded to the designated file repository of the designated software, wherein the test version information includes the historical version integrated software package of the designated software, wherein the designated software includes multiple joint functional modules, each joint functional module is composed of multiple associated functional modules, each file repository is used to store the code and documents of a functional module, and each file repository has a corresponding relationship with at least one joint functional module.

[0047] The specific implementation of step S210 may refer to the relevant description of step S110 in the aforementioned embodiment, which will not be repeated here.

[0048] Step S220: determining, according to the designated file repository, at least one joint function module in the historical version integrated software package having information changes.

[0049] The specific implementation of step S220 may refer to the relevant description of step S120 in the aforementioned embodiment, which will not be repeated here.

[0050] Step S230: Compile the at least one joint function module with information changes based on the code file to be tested. During the process of compiling the at least one joint function module based on the code file to be tested, if a new code file to be tested uploaded to the designated file repository of the designated software is received, the compilation process is paused, and the at least one joint function module is recompiled based on the newly uploaded code file to be tested to obtain at least one designated joint function module.

[0051] As an implementation mode, in the process of compiling at least one joint functional module belonging to a designated file repository based on a code file to be tested, if multiple code files to be tested uploaded to the designated file repository are received, or if a new code file to be tested uploaded to a designated file repository of a designated software is received, the current compilation process can be paused, and then at least one joint functional module with information changes can be recompiled based on the latest uploaded code file to be tested to obtain at least one designated joint functional module.

[0052] Optionally, this embodiment can use docker to manage the compilation environment image. As a specific implementation method, in the process of compiling at least one joint function module based on the code file to be tested, the container execution task can be checked to confirm that the current server has one and only one container to execute the same joint function module compilation task. Specifically, the container that is performing the compilation task on Jenkins can be detected. If a container that matches the currently submitted task is found, Jenkins terminates the current compilation task of the container (the container can be deleted at this time), and then re-pulls the latest submitted code file to be tested and starts (re-creates) the container to start compilation.

[0053] Exemplarily, file repository 1 exists in joint function module A. Currently, the compilation process of the joint function module triggered by the code file to be tested submitted by file repository 1 is being processed. Container build_fuction_A is running. If file repository 1 receives another submission at this time, container build_fuction_A will be deleted, and then the latest submission of file repository 1 will be obtained, container build_fuction_A will be restarted (or created), and then the compilation of the joint function module will be started.

[0054] Step S240: replacing at least one joint function module with information change in the historical version integrated software package with the at least one designated joint function module to update the historical version integrated software package of the designated software and obtain a reference integrated software package.

[0055] The specific implementation of step S240 may refer to the relevant description of step S140 in the aforementioned embodiment, which will not be repeated here.

[0056] The present embodiment provides a method for constructing an integrated software package, which includes obtaining a code file to be tested and test version information uploaded to a designated file repository of designated software, wherein the test version information includes a historical version integrated software package of the designated software, wherein the designated software includes multiple joint function modules, each joint function module is composed of multiple associated function modules, each file repository is used to store code and documents of a function module, and each file repository has a corresponding relationship with at least one joint function module; determining at least one joint function module with information change in the historical version integrated software package according to the designated file repository; compiling the at least one joint function module with information change based on the code file to be tested, and in the process of compiling the at least one joint function module with information change based on the code file to be tested, if a new code file to be tested uploaded to the designated file repository of the designated software is received, pausing the compilation process, and recompiling the at least one joint function module based on the newly uploaded code file to be tested, to obtain at least one designated joint function module; replacing the at least one joint function module with information change in the historical version integrated software package with the at least one designated joint function module, so as to update the historical version integrated software package of the designated software, and obtain a reference integrated software package. Therefore, on the basis of the existing historical version integrated software package, the historical version integrated software package of the specified software is updated by compiling and updating only the joint functional modules with information changes in the historical version integrated software package, thereby minimizing the compilation of source code, thereby reducing the construction time of the integrated software package, and thus improving the construction efficiency of the integrated software package.

[0057] At the same time, by compiling and checking multiple submissions within the same time range in the same file repository, it can be ensured that a container executes the latest submission task, saving server resources and reducing the waiting time for compilation caused by multiple submissions, thereby further improving the building efficiency of the integrated software package.

[0058] See also Figure 4 , is a method for constructing an integrated software package provided in another embodiment of the present application, the method comprising:

[0059] Step S310: Obtain the code file to be tested and the test version information uploaded to the designated file repository of the designated software, wherein the test version information includes the historical version integrated software package of the designated software, wherein the designated software includes multiple joint functional modules, each joint functional module is composed of multiple associated functional modules, each file repository is used to store the code and documents of a functional module, and each file repository has a corresponding relationship with at least one joint functional module.

[0060] The specific implementation of step S310 may refer to the relevant description of step S110 in the aforementioned embodiment, which will not be repeated here.

[0061] Step S320: determining, according to the designated file repository, at least one joint function module in the historical version integrated software package having information changes.

[0062] The specific implementation of step S320 may refer to the relevant description of step S120 in the aforementioned embodiment, which will not be repeated here.

[0063] Step S330: compile the at least one joint function module with information change based on the code file to be tested to obtain at least one designated joint function module.

[0064] The specific implementation of step S330 may refer to the relevant description of step S130 and step S230 in the aforementioned embodiment, which will not be repeated here.

[0065] Step S340: Replace at least one joint function module with information change in the historical version integrated software package with the at least one designated joint function module to update the historical version integrated software package of the designated software and obtain a reference integrated software package.

[0066] The specific implementation of step S340 may refer to the relevant description of step S140 in the aforementioned embodiment, which will not be repeated here.

[0067] Step S350: calling the test software package integration script to compile the reference integrated software package to obtain a test integrated software package.

[0068] In this embodiment, the reference integrated software package is an executable software package. Before updating the reference integrated software package to the simulation platform and starting real vehicle testing, in order to ensure the validity of the reference integrated software package build version, the test software package integration script can be called to compile the reference integrated software package to obtain a test integrated software package, and then the validity of the reference integrated software package build can be checked based on the test integrated software package.

[0069] Step S360: Perform a smoke test on the test integrated software package to verify the validity of the reference integrated software package.

[0070] As an implementation method, before performing simulation testing and actual vehicle testing on the test integrated software package, a smoke test can be performed on the test integrated software package to preliminarily check the validity of the reference integrated software package to avoid software coredumps, node anomalies, map loading anomalies, etc. during the test process.

[0071] As an implementation mode, the integrated software package that passes the smoke test may be subjected to simulation testing. The simulation testing in this implementation mode may include model-in-the-loop testing, software-in-the-loop testing, hardware-in-the-loop testing, and real vehicle testing.

[0072] Optionally, for the integrated software package that fails the smoke test or the simulation test, a test report that fails the smoke test or the simulation test may be generated, so as to adjust the code file to be tested based on the test report.

[0073] In a specific application scenario, see Figure 5 , shows a structural block diagram of the autonomous driving software development system provided by the embodiment of the present application. Figure 5 As shown, the autonomous driving software development system may include a code management server, a CI server, and a CD server. As an implementation method, the development engineer may submit the source code. Optionally, the development engineer may submit the source code in Gerrit. The code management server may manage and review the submitted code. Specifically, the code server may perform warehouse management, code merge management, and warehouse permission management on the submitted code. The continuous integration server (CI server) may trigger a series of automated operations based on the submitted information, including static checking of the submitted code, unit testing, and selective compilation based on the submitted information. When a compilation check request is triggered, Jenkins needs to perform the following steps, such as Figure 6 As shown, it includes judging the joint function module to which the submitted warehouse belongs, checking the container that the joint function module is running, and compiling the module; when the integrated compilation request for testing requirements is triggered, the operation steps that Jenkins needs to perform are as follows Figure 7 As shown, it includes the recovery of historical version source code software package, backup of the latest version executable software package, acquisition of changed functional module information, compilation of changed functional modules, packaging and uploading of test software packages, and recovery of the latest version source code software package and executable software package. The CI server can push the generated integrated software package (executable software package) to the continuous deployment server (CD server); the CD server can manage the software version. Specifically, the continuous deployment server can archive the executable software package, archive the executable software package version information, and publish the software package version that has passed the smoke test of the simulation platform to the actual vehicle and further simulation testing; the simulation test mainly includes smoke testing before the actual vehicle release of the software, model-in-the-loop, software-in-the-loop and hardware-in-the-loop testing; actual vehicle testing: after the actual vehicle pulls the software package, the new vehicle is configured according to the vehicle information, and then routine testing is carried out.

[0074] Optional, with Figure 5 The corresponding flow chart can be referred to Figure 8It should be noted that when the historical version is the latest integrated version, no processing is required (according to daily development and testing experience, this situation is more common); when the historical version is the previous integrated version, the module information record file ReleaseNote of the latest version and the historical version is obtained respectively, and then all module differences between the two are compared, and the functional modules involved in the changed modules are recorded and added to the changed functional module list ModuleChangeList. Therefore, even if the difference between the latest version and the historical version is different from the difference between the current version to be tested and the latest version, the integrated software package can be accurately built.

[0075] Optionally, after the test version (i.e., the test integrated software package) is built, in order to ensure that when the next test version build task is triggered normally, the current software package version is still the latest integrated software package. Considering that it takes a long time to compile the latest integrated software package based on the new version software source code, the present invention can store the test version in the form of a backup.

[0076] Optionally, the changed functional module list ModuleChangeList may include two types of change information, namely, functional modules involved in the integrated software package change and functional modules involved in the test module.

[0077] The present embodiment provides a method for building an integrated software package, which includes obtaining a code file to be tested and test version information uploaded to a designated file repository of designated software, wherein the test version information includes a historical version integrated software package of the designated software, the designated software includes multiple joint function modules, each joint function module is composed of multiple associated function modules, each file repository is used to store code and documents of a function module, and each file repository has a corresponding relationship with at least one joint function module; determining at least one joint function module with information change in the historical version integrated software package according to the designated file repository; compiling the at least one joint function module with information change based on the code file to be tested to obtain at least one designated joint function module; replacing the at least one joint function module with information change in the historical version integrated software package with the at least one designated joint function module to update the historical version integrated software package of the designated software to obtain a reference integrated software package; calling a test software package integration script to compile the reference integrated software package to obtain a test integrated software package; and performing a smoke test on the test integrated software package to verify the validity of the reference integrated software package. Therefore, on the basis of the existing historical version integrated software package, the historical version integrated software package of the specified software is updated by compiling and updating only the joint functional modules with information changes in the historical version integrated software package, thereby minimizing the compilation of source code, thereby reducing the construction time of the integrated software package, and thus improving the construction efficiency of the integrated software package.

[0078] By performing a smoke test on the test integrated software package before conducting simulation tests and actual vehicle tests on it, the validity of the reference integrated software package can be preliminarily checked to avoid software coredumps, node anomalies, map loading anomalies, etc. during the test process, thereby improving the test efficiency of the integrated software package.

[0079] See also Fig. 9 The present application provides an integrated software package construction device 400, the device 400 comprising:

[0080] The test data acquisition module 410 is used to obtain the code files to be tested and the test version information uploaded to the designated file repository of the designated software, wherein the test version information includes the historical version integrated software package of the designated software, wherein the designated software includes multiple joint functional modules, each joint functional module is composed of multiple related functional modules, each file repository is used to store the code and documents of a functional module, and each file repository has a corresponding relationship with at least one joint functional module.

[0081] The change information determination module 420 is used to determine at least one joint function module in the historical version integrated software package having information changes according to the designated file repository.

[0082] The compiling module 430 is used to compile the at least one joint functional module with information change based on the code file to be tested to obtain at least one designated joint functional module.

[0083] As an embodiment, the compilation module 430 can also be used to pause the compilation process and recompile the at least one joint functional module based on the newly uploaded code file to be tested if a new code file to be tested is uploaded to a specified file repository of a specified software during the process of compiling the at least one joint functional module with information changes based on the code file to be tested.

[0084] The integrated software package construction module 440 is used to replace at least one joint function module with information change in the historical version integrated software package with the at least one specified joint function module to update the historical version integrated software package of the specified software and obtain a reference integrated software package.

[0085] As an implementation method, the integrated software package construction module 440 can be specifically used to replace at least one joint functional module with information changes in the historical version integrated software package with the at least one specified joint functional module to update the historical version integrated software package of the specified software; call the integrated compilation script to compile the historical version integrated software package after the joint functional module is replaced to obtain a reference integrated software package.

[0086] In the implementation manner of the present application, the integrated software package construction module 440 may also be used to call a test software package integration script to compile the reference integrated software package to obtain a test integrated software package.

[0087] Optionally, the apparatus 400 may further include a testing module for performing a smoke test on the test integrated software package to verify the validity of the reference integrated software package.

[0088] As an implementation mode, the test module can also be used to perform simulation test on the integrated software package that passes the smoke test, and the simulation test includes model-in-the-loop test, software-in-the-loop test, hardware-in-the-loop test and real vehicle test.

[0089] Optionally, the apparatus 400 may further include an adjustment module, configured to generate a test report that fails the smoke test or the simulation test, so as to adjust the code file to be tested based on the test report.

[0090] The following will be combined Fig.10An electronic device provided by the present application is described.

[0091] See also Fig.10 Based on the above-mentioned integrated software package construction method and device, the embodiment of the present application also provides another electronic device 100 that can execute the above-mentioned integrated software package construction method. The electronic device 100 includes one or more (only one is shown in the figure) processors 102, a memory 104, and a data acquisition module 106 that are coupled to each other. Among them, the memory 104 stores a program that can execute the content of the above-mentioned embodiment, and the processor 102 can execute the program stored in the memory 104.

[0092] Among them, the processor 102 may include one or more processing cores. The processor 102 uses various interfaces and lines to connect various parts within the entire electronic device 100, and executes various functions and processes data of the electronic device 100 by running or executing instructions, programs, code sets or instruction sets stored in the memory 104, and calling data stored in the memory 104. Optionally, the processor 102 can be implemented in at least one hardware form of a network processor (Neural network Processing Unit, NPU), a digital signal processing (Digital Signal Processing, DSP), a field programmable gate array (Field-Programmable Gate Array, FPGA), and a programmable logic array (Programmable Logic Array, PLA). The processor 102 can integrate one or a combination of a central processing unit (Central Processing Unit, CPU), a graphics processor (Graphics Processing Unit, GPU), a network processor (Neural network Processing Unit, NPU) and a modem. Among them, the CPU mainly processes the operating system, user interface and application programs; the GPU is responsible for rendering and drawing display content; the NPU is responsible for processing multimedia data such as video and images; and the modem is used to process wireless communications. It is understandable that the above-mentioned modem may not be integrated into the processor 102, but may be implemented separately through a communication chip.

[0093] The memory 104 may include a random access memory (RAM) or a read-only memory (ROM). The memory 104 may be used to store instructions, programs, codes, code sets or instruction sets. The memory 104 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for implementing at least one function (such as a touch function, a sound playback function, an image playback function, etc.), instructions for implementing the following various method embodiments, etc. The data storage area may also store data (such as a phone book, audio and video data, chat record data) created by the electronic device 100 during use.

[0094] The data acquisition module 106 can be used to obtain the driving status information of the electronic device 100. The data acquisition module 106 can be a laser radar, a camera, a sensor, a GPS (Global Positioning System) navigation, etc.

[0095] An embodiment of the present application provides a computer-readable storage medium in which a program code is stored, and the program code can be called by a processor to execute the method described in the above method embodiment.

[0096] The computer readable storage medium may be an electronic memory such as a flash memory, an EEPROM (electrically erasable programmable read-only memory), an EPROM, a hard disk, or a ROM. Optionally, the computer readable storage medium includes a non-transitory computer-readable storage medium. The computer readable storage medium has storage space for program codes that execute any of the method steps in the above method. These program codes can be read from or written to one or more computer program products. The program code can be compressed, for example, in an appropriate form.

[0097] In summary, the present application provides a method, device and electronic device for building an integrated software package, by obtaining the code file to be tested and the test version information uploaded to the designated file warehouse of the designated software, the test version information includes the historical version integrated software package of the designated software, the designated software includes multiple joint function modules, each joint function module is composed of multiple associated function modules, each file warehouse is used to store the code and documents of a function module, and each file warehouse has a corresponding relationship with at least one joint function module; according to the designated file warehouse, at least one joint function module with information change in the historical version integrated software package is determined; based on the code file to be tested, at least one joint function module with information change is compiled to obtain at least one designated joint function module; at least one joint function module with information change in the historical version integrated software package is replaced with the at least one designated joint function module to update the historical version integrated software package of the designated software, and obtain a reference integrated software package. Therefore, on the basis of the existing historical version integrated software package, by only compiling and updating the joint function modules with information change in the historical version integrated software package, the historical version integrated software package of the designated software is updated, and the compilation of source code is minimized, thereby reducing the construction time of the integrated software package, and thus improving the construction efficiency of the integrated software package.

[0098] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for constructing an integrated software package, characterized in that: The method comprises: Obtaining the code file to be tested and the test version information uploaded to the designated file repository of the designated software, wherein the test version information includes the historical version integrated software package of the designated software, wherein the designated software includes a plurality of joint function modules, each joint function module is composed of a plurality of associated function modules, each file repository is used to store the code and documents of a function module, and each file repository has a corresponding relationship with at least one joint function module; Determine at least one joint function module in which information has been changed in the historical version integrated software package according to the designated file repository; Compile the at least one joint function module with information change based on the code file to be tested to obtain at least one designated joint function module; At least one joint function module with information change in the historical version integrated software package is replaced with the at least one designated joint function module to update the historical version integrated software package of the designated software and obtain a reference integrated software package.

2. The method according to claim 1, characterized in that The method further comprises: During the process of compiling at least one joint functional module with information changes based on the code file to be tested, if a new code file to be tested uploaded to the designated file repository of the designated software is received, the compilation process is paused and the at least one joint functional module is recompiled based on the newly uploaded code file to be tested.

3. The method according to claim 1, characterized in that The step of replacing at least one joint function module in the historical version integrated software package with information changes with the at least one designated joint function module to update the historical version integrated software package of the designated software to obtain a reference integrated software package includes: Replacing at least one joint function module in which information in the historical version integrated software package has been changed with the at least one designated joint function module to update the historical version integrated software package of the designated software; The integrated compilation script is called to compile the historical version integrated software package after the joint function module is replaced to obtain a reference integrated software package.

4. The method according to claim 3, characterized in that The method further comprises: The test software package integration script is called to compile the reference integrated software package to obtain a test integrated software package.

5. The method according to claim 4, characterized in that The method further comprises: A smoke test is performed on the test integrated software package to verify the validity of the reference integrated software package.

6. The method according to claim 5, characterized in that The method further comprises: The integrated software package of the smoke test will be used to perform simulation tests, which include model-in-the-loop testing, software-in-the-loop testing, hardware-in-the-loop testing, and real vehicle testing.

7. The method according to claim 6, characterized in that The method further comprises: A test report that fails the smoke test or the simulation test is generated, so as to adjust the code file to be tested based on the test report.

8. An integrated software package construction device, characterized in that: The device comprises: A test data acquisition module is used to acquire the code files to be tested and the test version information uploaded to the designated file warehouse of the designated software, wherein the test version information includes the historical version integrated software package of the designated software, wherein the designated software includes a plurality of joint function modules, each joint function module is composed of a plurality of associated function modules, each file warehouse is used to store the code and documents of a function module, and each file warehouse has a corresponding relationship with at least one joint function module; A change information determination module, used to determine at least one joint function module in which information change exists in the historical version integrated software package according to the specified file repository; A compiling module, used for compiling the at least one joint function module with information change based on the code file to be tested, to obtain at least one designated joint function module; The integrated software package construction module is used to replace at least one joint function module with information change in the historical version integrated software package with the at least one designated joint function module to update the historical version integrated software package of the designated software and obtain a reference integrated software package.

9. An electronic device, characterized in that: including one or more processors and memory; One or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs are configured to execute the method according to any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores program code, wherein when the program code is executed by a processor, the method according to any one of claims 1 to 7 is executed.