A continuous integration and continuous deployment system and a method thereof
Patent Information
- Application Number
- PCT/US2025/025025
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-04-16
- Publication Date
- 2026-10-22
Smart Images

Figure US2025025025_22102026_PF_FP_ABST
Abstract
Description
[0001] PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0002] Attorney Ref. No: 045456.00009
[0003] A CONTINUOUS INTEGRATION AND CONTINUOUS DEPLOYMENT SYSTEM AND A METHOD THEREOF
[0004] FIELD OF THE INVENTION
[0005] This disclosure relates to the technical field of continuous integration and continuous 5 deployment CI / CD, and more specifically to a continuous integration and continuous deployment system and a method for continuous integration and continuous deployment.
[0006] BACKGROUND OF THE INVENTION
[0007] During the software development life cycle, it is common to apply CI / CD process to automate the system software build, integration, testing / validation, and delivery.
[0008] The technology of continuous integration (CI) and continuous deployment (CD) are those used in software development that streamline the process of building, testing, and deploying applications, enhancing speed, reliability, and collaboration.
[0009] Continuous integration (CI) is the technology' of automatically integrating code changes from multiple developers into a shared repository, for example, several times a day. Each 15 integration triggers an automated build and testing process to ensure that the new code doesn't break the existing codebase. With the CI technology, an application or executable program can automatically be compiled and assembled after code changes. An automated testing, such as unit tests, integration tests, and other tests to validate the new code can be run on the application. The CI can encourage developers to commit their changes often, thereby reducing merge conflicts. With the CI technology, bugs in the program can be detected at an early stage so that it is easier and cheaper to fix them. Furthermore, the CI technology will adopt a version control mechanism, which can ensure a consistently working codebase.
[0010] Continuous Deployment (CD) is the technology of automatically releasing every change that passes the CI process to production. It ensures that the application is always in a deployable 25 state. With the CD technology, new code can be deployed to production without manual intervention. The CD technology can improve developer productivity' by removing bottlenecks in 1
[0011] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0012] Attorney Ref. No: 045456.00009
[0013] the deployment process.
[0014] The CI technology and the CD technology can be combined to a CI / CD system to improve the overall developer productivity. The CI / CD system can automate the entire process, including code integration, testing, and deployment. Developers commit codes to a version control sub5 system such as a shared repository (for example, GitHub, GitLab). Then, the codes are compiled and dependencies are resolved. After that, automated tests are executed on the compiled program to validate functionality. Finally, the programs or applications are automatically deployed to production.
[0015] The article of “Continuous Integration for embedded systems” by PROTOS Software GmbH (https: / / www.protos.de / en / knowledge-base / contmuous-integration-for-embedded-systems / ) explains a CI / CD system with source code management and CI server, which is hereby incorporated herein as reference.
[0016] However, the current CI / CD system is a software driven system, which connects a DUT (Device Under Test) with computers and it is challenging to expand the test coverage, especially, 15 to a product that requires user interaction such as VR / MR / AR devices.
[0017] SUMMARY OF THE INVENTION
[0018] One object of this disclosure is to provide a new technical solution for continuous integration and continuous deployment.
[0019] According to a first aspect of the present disclosure, there is provided a continuous integration and continuous deployment system, including: a version control sub-system, which receives program codes submitted by at least one developer and maintains the program codes; a build sub-system, which receives the program codes and builds the program codes into an executable program; a simulation testing sub-system, which tests the executable program by using a simulator; and a deployment sub-system, which deploys the tested executable program into 25 production. The simulation testing sub-system includes: an upload unit which is able to upload the executable program and a DUT script to a device under test DUT; the simulator, which receives a simulation script; and a computing unit, wherein when the DUT is set on the simulator, the DUT and the simulator are used to interact with each other under the control of the DUT script and the 2
[0020] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0021] Attorney Ref. No: 045456.00009
[0022] simulation script, and the computing unit generates a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.
[0023] According to a second aspect of the present disclosure, there is provided A continuous integration and continuous deployment system, including: a version control sub-system, which 5 receives program codes submitted by at least one developer and maintains the program codes; a build sub-system, which receives the program codes and builds the program codes into an executable program; a simulation testing sub-system, which tests the executable program by using a simulator; and a deployment sub-system, which deploys the tested executable program into production. The simulation testing sub-system includes: a device under test DUT; an upload unit 10 which is able to upload the executable program and a DUT script to the device under test DUT;
[0024] the simulator, which receives a simulation script; and a computing unit, wherein the DUT is used to be set on the simulator, and the DUT and the simulator are used to interact with each other under the control of the DUT script and the simulation script, and the computing unit generates a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.
[0025] According to a third aspect of the present disclosure, there is provided a method for continuous integration and continuous deployment, including: receiving, by a version control subsystem, program codes submitted by at least one developer and maintains the program codes; receiving, by a build sub-system, the program codes; building, by the build sub-system, the program codes into an executable program; testing, by a simulation testing sub-system, the executable program by using a simulator; and deploying, by a deployment sub-system, the tested executable program into production. The step of testing, by a simulation testing sub-system, the executable program by using a simulator further includes: uploading the executable program onto a device under test DUT; uploading a DUT script to the DUT; receiving, by the simulator, a 25 simulation script; setting the DUT on the simulator; interacting between the DUT and the simulator under the control of the DUT script and the simulation script; and generating, by a computing unit, a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.
[0026] According to an embodiment of this disclosure, it is easier to adapt a continuous 3
[0027] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0028] Attorney Ref. No: 045456.00009
[0029] integration and continuous deployment system to a product that requires user interaction.
[0030] Further features of the present disclosure and advantages thereof will become apparent from the following detailed description of exemplary embodiments according to the present disclosure with reference to the attached drawings.
[0031] 5 BRIEF DESCRIPTION OF THE DRAWINGS
[0032] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the disclosure and, together with the description thereof, serve to explain the principles of the invention.
[0033] FIG. 1 is a block diagram showing an example of a hardware configuration of a computing system which can be used to implement embodiments of the present invention.
[0034] FIG. 2 is a schematic block diagram of a continuous integration and continuous deployment system according to an embodiment of this disclosure.
[0035] FIG. 3 is a schematic diagram of a simulation testing sub-system according to an embodiment of this disclosure.
[0036] 15 FIG. 4 is a schematic flow chart of a method for continuous integration and continuous deployment according to an embodiment of this disclosure.
[0037] FIG. 5 is a schematic flow chart of a process of testing an executable program by using a simulator according to an embodiment of this disclosure.
[0038] DETAILED DESCRIPTION OF THE EMBODIMENTS
[0039] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the drawings. It should be noted that the relative arrangement of the components and steps, the numerical expressions, and numerical values set forth in these embodiments do not limit the scope of the present disclosure unless it is specifically stated otherwise.
[0040] The following description of at least one exemplary embodiment is merely illustrative in 25 nature and is in no way intended to limit the invention, its application, or uses.
[0041] Techniques, methods and apparatus as known by one of ordinary skill in the relevant art may not be discussed in detail but are intended to be part of the specification where appropriate.
[0042] 4
[0043] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0044] Attorney Ref. No: 045456.00009
[0045] In all of the examples illustrated and discussed herein, any specific values should be interpreted to be illustrative only and non-limiting. Thus, other examples of the exemplary embodiments could have different values.
[0046] Notice that similar reference numerals and letters refer to similar items in the following 5 figures, and thus once an item is defined in one figure, it is possible that it need not be further discussed for following figures.
[0047] Fig.l is a block diagram showing an example of a hardware configuration of a computing system 1000 which can be used to implement the embodiments of the present invention.
[0048] As shown in Fig. 1, the computing system comprises a computing device 1110. The 10 computing device 1110 comprises aprocessing unit 1120, a system memory 1130, non-removable non-volatile memory interface 1140, removable non-volatile memory interface 1150, user input interface 1160, network interface 1170, video interface 1190 and output peripheral interface 1195, which are connected via a system bus 1121.
[0049] The system memory 1130 comprises ROM (read-only memory) 1131 and RAM (random access memory) 1132. A BIOS (basic input output system) 1133 resides in the ROM 1131. An operating system 1134, application programs 1135, other program modules 1136 and some program data 1137 reside in the RAM 1132.
[0050] Anon-removable non-volatile memory 1141, such as a hard disk, is connected to the nonremovable non-volatile memory interface 1140. The non-removable non-volatile memory 1141 can store an operating system 1144, application programs 1145, other program modules 1146 and some program data 1147, for example.
[0051] Removable non-volatile memories, such as afloppy drive 1151 and a CD-ROM drive 1155, is connected to the removable non-volatile memory interface 1150. For example, a floppy disk can be inserted into the floppy drive 1151, and a CD (compact disk) can be inserted into the CD-ROM drive 1155.
[0052] Input devices, such a mouse 1161 and a keyboard 1162, are connected to the user input interface 1160.
[0053] The computing device 1110 can be connected to a remote computing device 1180 by the network interface 1170. For example, the network interface 1170 can be connected to the remote 5
[0054] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0055] Attorney Ref. No: 045456.00009
[0056] computing device 1180 via a local area network 1171. Alternatively, the network interface 1170 can be connected to a modem (modulator-demodulator) 1172, and the modem 1172 is connected to the remote computing device 1180 via a wide area network 1173.
[0057] In some embodiments, computing devices can act as node devices and be configured in a 5 hierarchy setup. There may be a plurality of node devices. One the node devices can act as a master device which can communicate with multiple slave node devices. The master device can trigger an event, collect all the information from slave node devices including build / test / result / test time / etc., and create dashboard and so on.
[0058] In some embodiments, multiple computing devices can be deployed in distributed setup.
[0059] 10 The computing devices can act as nodes devices and work together to achieve a common goal, such as processing data, storing information, or providing services. In a distributed system, multiple devices communicate and coordinate with each other. These node devices can be physical devices such as servers, sensors, or computers or virtual units such as virtual machines or containers. In a distributed setup, the node devices work together to achieve scalability, fault tolerance, and efficiency. Each node device plays a specific role, such as client, server, or peer, and communicates with others to perform tasks.
[0060] The remote computing device 1180 may comprise a memory 1181, such as a hard disk, which stores remote application programs 1185.
[0061] The video interface 1190 is connected to amonitor 1191.
[0062] The output peripheral interface 1195 is connected to a printer 1196 and speakers 1197. The computing system shown in Fig.l is merely illustrative and is in no way intended to limit the invention, its application, or uses.
[0063] FIG. 2 is a schematic block diagram of a continuous integration and continuous deployment system according to an embodiment of this disclosure.
[0064] The continuous integration and continuous deployment system includes: a version control sub-system 1, a build sub-system 2, a unit testing sub-system 3, a simulation testing sub-system 4 and a deployment sub-system 5.
[0065] The version control sub-system 1 receives program codes submitted by at least one developer and maintains the program codes. The build sub-system 2 receives the program codes 6
[0066] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0067] Attorney Ref. No: 045456.00009
[0068] and builds the program codes into an executable program. The unit testing sub-system 3 performs at least one of unit test, sanity test, performance test and stress test on the executable program and outputs a report of pass or failure. The simulation testing sub-system 4 tests the executable program by using a simulator. The deployment sub-system 5 deploys the tested executable program into 5 production. That is, the tested executable program is deployed in real application scenarios.
[0069] The executable program may include software, firmware and so on.
[0070] The unit tests are a type of software testing that focuses on verifying the smallest testable parts of a program, typically individual functions, methods, or classes. The goal is to ensure that these "units" work as expected in isolation. Each unit test focuses on a single component, avoiding 10 dependencies on external systems like databases or APIs. Unit tests are typically automated, allowing developers to run them frequently and consistently. They help catch bugs early in the development process, reducing downstream issues. If the unit tests are failed, the developer may be notified to re-design or adjust the codes and re-upload them onto the version control sub-system 1.
[0071] Although FIG. 2 only shows the block of unit testing sub-system 3, the continuous integration and continuous deployment system may further include other testing sub-systems, such as sub-systems for sanity testing, performance testing, stress testing and so on.
[0072] FIG. 3 is a schematic diagram of a simulation testing sub-system according to an embodiment of this disclosure. FIG. 3 shows an illustrative example of the simulation testing subsystem. As shown in FIG. 3, the simulation testing sub-system may include: a device under test DUT 41, a simulator 42, a computing unit 43 and an upload unit 44. Although the computing unit 43 and / or the upload unit 44 is shown as separate units in FIG. 3, they can be incorporated in the simulator 42. The computing unit 43 can communicate with the device under test DUT 41 and / or the simulator 42 wiredly or wirelessly. For example, the communication can be enabled by using 25 Ethernet cable, optical fiber, coaxial cable, USB cable, serial communication, WIFI, Bluetooth connections and so on.
[0073] The device under test DUT 41 is uploaded with the executable program and a DUT script by the upload unit 44. The simulator 42 receives a simulation script. The DUT 41 is used to be set on the simulator 42 as shown in FIG. 3. The DUT 41 and the simulator 42 are used to interact with 7
[0074] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0075] Attorney Ref. No: 045456.00009
[0076] each other under the control of the DUT script and the simulation script. The computing unit 43 generates a test result based on an output from at least one of the DUT 41 or the simulator 42 under at least one of the DUT script and the simulation script.
[0077] For example, the simulator 4 may include a human simulator, which is able to simulate at 5 least one of a human head, a human face and a human eye or a combination of them.. The continuous integration and continuous deployment system in this embodiment can automate some of the software build, integration, test / validation, delivery of the existing CI / CD process by using such a simulator.
[0078] Ahuman head simulator is a device or system designed to replicate the anatomical, acoustic, 10 or physiological characteristics of the human head for various applications, such as research, testing, or training. It is commonly used in fields like acoustics, medical research, communication technology, and virtual reality. For example, the human head simulator can be used to simulate human head acoustics for high-fidelity recording or testing audio devices like headphones or hearing aids; and to replicate how sound interacts with the head, ears, and torso, including directional cues. It can also be used to simulate human head movements and field of vision to test and improve VR / AR experiences, including modeling the interaction of head movements with virtual environments. In an example, the human head simulator mimics the shape and structure of the human head, including bone, soft tissue, skin layers and realistic ears (pinna) so that it can be used for audio application tests. It can include sensors to measure impact sound forces or acoustic responses.
[0079] Ahuman face simulator is a system or model designed to replicate the structure, appearance, or movements of the human face. It is used in various fields such as animation, robotics, medical training, and technology testing to study or mimic facial anatomy, expressions, and behaviors. It can simulate a wide range of emotions, such as happiness, sadness, anger, and surprise and enables real-time facial movement replication using motion capture or Al. As such, the human face simulator can interact with the DUT to test its functions.
[0080] Ahuman eye simulator is a system, software, or device designed to replicate the structure, function, and behavior of the human eye. It can serve various purposes, including education, research, testing, and medical training. The eye simulator may mimic anatomical, optical, or 8
[0081] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0082] Attorney Ref. No: 045456.00009
[0083] physiological aspects of the human eye. It can simulate the eye's response to lenses, corrective surgeries, or optical devices and can simulate the human visual experience for VR / AR headsets, ensuring comfort and accurate rendering for users.
[0084] The DUT 41 may be a VR, MR or AR device. The executable program may include a 5 firmware to be uploaded into the DUT. The DUT 41 is set on the simulator 42 which can be human head or human face or human eye simulator or a combination of them.
[0085] The DUT or device under test refers to any piece of hardware, software, or system being tested to ensure its functionality, performance, reliability, or compliance with specified requirements. The DUT may be used for electronics testing, software testing, quality assurance test, 10 communication capability test, robotics and automation test.
[0086] The VR, MR, and AR devices are technologies that enable users to experience immersive or enhanced environments. The VR, MR, and AR devices can let a user to interact with the virtual and physical worlds.
[0087] The VR (Virtual Reality) devices can fully immerse a user in a digital environment, blocking out the physical world. Normally, it includes a headset or goggles to create a simulated environment that users can explore and interact with. It may require a head and motion tracking and hand controllers for interaction.
[0088] The AR (Augmented Reality) devices can enhance the real world by overlaying digital content, such as images, sounds, or information, onto the physical environment. It may use transparent glasses or smartphone apps to superimpose digital elements over real-world views. It may interact with a user through gestures, voice, or external controllers.
[0089] The MR (Mixed Reality) devices combines the features of VR and AR, allowing users to interact with both the physical and digital worlds simultaneously. MR provides a seamless blending of real and virtual environments. It may use advanced sensors and cameras to anchor virtual objects in the real world and make them interactable.
[0090] Normally, the VR devices are often used in gaming, virtual travel, medical training, and simulations. The AR devices are often used in retail (virtual try-ons), education, navigation, and marketing. The MR devices are often used in collaborative design, engineering, industrial training, and interactive content.
[0091] 9
[0092] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0093] Attorney Ref. No: 045456.00009
[0094] For example, the continuous integration and continuous deployment system equipped with such a simulator can build source code for VR / MR / AR system. When a new software / firmware is released, the continuous integration and continuous deployment system can upload the release firmware and test script to both DUT 41 and the simulator 42. The continuous integration and 5 continuous deployment system can automatically start the tests like unit test, sanity test, performance test, stress test, and so on after the software is uploaded.
[0095] The simulation script is used to control the simulator to check at least one of the performance and quality of display image and optical lenses, head tracking or face tracking or eye tracking, audio and voice. Finally, the test script can output the report with pass and failure that can 10 let developer know the possible bugs in the newly released software / firmware.
[0096] In an embodiment, the simulator 42 includes an eye simulator and the DUT is a VR, MR or AR device. The eye simulator 42 capture a video displayed by the DUT and sends it to the computing device 43. The computing device 43 generates a first test result based on the video. The continuous integration and continuous deployment system further includes an automatic code optimization unit 6. The automatic code optimization unit 6 optimizes the program codes and uploads the optimized program codes to the version control sub-system 1 and the build sub-system 2 directly or indirectly. For example, the automatic code optimization unit 6 can directly upload the optimized program codes to the version control sub-system 1 and the build sub-system 2 simultaneously, as shown in FIG. 3. Alternatively, the automatic code optimization unit 6 can first 20 upload the optimized program codes to the version control sub-system 1 and then the version control sub-system 1 forwards the codes to the build sub-system 2.
[0097] The build sub-system 2 builds the optimized program codes into an optimized executable program and send the optimized executable program to the unit testing sub-system 3 and the simulation testing sub-system 4 for further test.
[0098] In an embodiment, the eye simulator 42 capture a further video displayed by the DUT 41 uploaded with the optimized executable program and sends it to the computing device 43. The computing device 43 generates a second test result and compare the second test result with the first test result to generate a third test result which is based on the first test result and the second test result. The automatic code optimization unit 6 further optimizes the optimized program codes and 10
[0099] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0100] Attorney Ref. No: 045456.00009
[0101] uploads the further optimized program codes to the version control sub-system and the build subsystem directly or indirectly.
[0102] Because the simulator can simulate the real situation of a human head, face and eye, the automatic code optimization unit can precisely identify the problems in the current code. In some 5 situation, especially when parameters for the VR, MR or AR device is being optimized, it can automatically optimize the code without further intervention by a developer. Otherwise, the developer shall have to read the generated bug / issue report, adjust the parameters and upload the codes, which is time and cost consuming. This system will improve the overall efficiency of the development and deployment of the software and / or firmware.
[0103] 10 In an embodiment, the continuous integration and continuous deployment system adopts such an automatic evolution setup. For example, the simulator includes a human eye simulator and the human eye simulator has an eye camera. The eye camera can be set at the pupil position. The eye camera captures at least one image displayed by the DTU such as a VR / AR / MR glasses. The captured image will be sent to the computing unit. The human eye simulator further sends the position / posture data to the computing unit. For example, the human eye simulator may obtain the position / posture data by using a sensor. The computing unit processes the captured image and the position / posture data to get at least one parameter for configuring the DUT or for adjusting the DUT. The computing unit may process one captured image to get the parameter or process two or more captured imaged to get an optimized parameter. For example, the automatic code optimization unit 6 in Fig. 2 may use the parameter to optimize the program codes.
[0104] In another embodiment, the simulator includes a human head simulator. The human head simulator includes at least one microphone at an ear position of the human head simulator. The microphone captures the sound generated by a DUT and generates sound data based on the captured sound. The captured sound data is sent to the computing unit. The computing unit processes the captured sound data to get at least one parameter for configuring the DUT or for adjusting the DUT. The human head simulator includes at least two microphones at an ear position, which can sense the direction of sound generated by the DUT. The human head simulator may further include a sensor to sense the position of the DUT. The computing unit may use the direction, the sound data and the position to o get at least one parameter. The automatic code optimization unit 6 may use 11
[0105] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0106] Attorney Ref. No: 045456.00009
[0107] the parameter to optimize the program codes.
[0108] In various embodiment, the adoption of the simulator in the continuous integration and continuous deployment system can make it easier for the developer to evolve or purify their programs for the DUT in a more accurate and efficient manner.
[0109] 5 As shown in FIG. 3, the DUT is an AR / VR / MR glasses with two lenses. In this regards, the simulator is dual-eyes simulator having two eyes. By using this configuration, the continuous integration and continuous deployment system can perform the test on the DUT simultaneously. Preferably, the system can also test the coordination of the images displayed on the two lenses at once.
[0110] 10 FIG. 4 is a schematic flow chart of a method for continuous integration and continuous deployment according to an embodiment of this disclosure.
[0111] In step SI, a version control sub-system receives program codes submitted by at least one developer and maintains the program codes.
[0112] In step S2, a build sub-system receives the program codes.
[0113] In step S3, the build sub-system builds the program codes into an executable program. Here, a unit testing sub-system can test units of the executable program.
[0114] In step S4, a simulation testing sub-system tests the executable program by using a simulator. In step S5, a deployment sub-system deploys the tested executable program into production. FIG. 5 is a schematic flow chart of a process of testing an executable program by using a 20 simulator according to an embodiment of this disclosure.
[0115] In step S51, the executable program is uploaded onto a device under test DUT. In step S52, a DUT script is upload to the DUT.
[0116] In step S53, the simulator receives a simulation script.
[0117] In some embodiments, the scnpts / executable program will be uploaded to a build server.
[0118] 25 Then, they will be sent to a computing device or node device or be uploaded to the computing device. When the system is triggered, the scripts / executable program are built.
[0119] In step S54, the DUT is set on the simulator.
[0120] For example, the DUT is set on the simulator in advance so that a developer and / or a SW test engineer can just focus on the code / test development remotely or on-site as needed.
[0121] 12
[0122] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0123] Attorney Ref. No: 045456.00009
[0124] In step S55, the DUT and the simulator are interacting with each other under the control of the DUT script and the simulation script.
[0125] In step S56. a computing unit generates a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.
[0126] 5 The processes in this embodiment may include further steps corresponding to those already described with the system embodiment and thus their detailed explanation will be omitted here.
[0127] The present invention may be a system, a method, and / or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the 10 present invention.
[0128] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing 25 through a fiber-optic cable), or electrical signals transmitted through a wire.
[0129] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission 13
[0130] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0131] Attorney Ref. No: 045456.00009
[0132] cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage 5 medium within the respective computing / processing device.
[0133] Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, 10 including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any ty pe of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
[0134] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0135] 14
[0136] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0137] Attorney Ref. No: 045456.00009
[0138] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts 5 specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified 10 in the flowchart and / or block diagram block or blocks.
[0139] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0140] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the 20 flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, 25 depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
[0141] 15
[0142] AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)
[0143] Attorney Ref. No: 045456.00009
[0144] The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used 5 herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
[0145] 16
[0146] AFSDOCS:302251811.1
Claims
PCT / US25 / 25025 16 April 2025 (16.04.2025)Attorney Ref. No: 045456.00009CLAIMSWhat is claimed is:
1. A continuous integration and continuous deployment system, including:a version control sub-system, which receives program codes submitted by at least one 5 developer and maintains the program codes;a build sub-system, which receives the program codes and builds the program codes into an executable program;a simulation testing sub-system, which tests the executable program by using a simulator; anda deployment sub-system, which deploys the tested executable program into production, wherein the simulation testing sub-system includes:an upload unit which is able to upload the executable program and a DUT script to a device under test DUT;the simulator, which receives a simulation script; and15 a computing unit,wherein when the DUT is set on the simulator, the DUT and the simulator are used to interact with each other under the control of the DUT script and the simulation script, and the computing unit generates a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.
2. The continuous integration and continuous deployment system according to Claim 1, further comprising:a unit testing sub-system, which performs at least one of unit test, sanity test, performance test and stress test on the executable program and outputs a report of pass or failure.
253. The continuous integration and continuous deployment system according to Claim 1, wherein the DUT is a VR, MR or AR device, and the executable program includes a firmware or software to be uploaded into the DUT.17AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)Attorney Ref. No: 045456.000094. The continuous integration and continuous deployment system according to Claim 1, wherein the simulation script is used to control the simulator to check at least one of the performance and quality of display image and optical lenses, head tracking or face tracking or eye 5 tracking, audio and voice.
5. The continuous integration and continuous deployment system according to Claim 1, wherein the simulator includes a human simulator, which is able to simulate at least one of a human head, a human face and a human eye.
106. The continuous integration and continuous deployment system according to Claim 1, wherein the simulator includes an eye simulator,wherein the eye simulator captures a video displayed by the DUT and sends it to the computing device, and the computing device generates a first test result based on the video, and wherein the continuous integration and continuous deployment system further includes: an automatic code optimization unit, which optimizes the program codes and uploads the optimized program codes to the version control sub-system and the build sub-system directly or indirectly.
7. The continuous integration and continuous deployment system according to Claim 6, 20 wherein the build sub-system builds the optimized program codes into an optimized executable program and send the optimized executable program to the unit testing sub-system and the simulation testing sub-system for further test.
8. The continuous integration and continuous deployment system according to Claim 7, wherein the eye simulator captures a further video displayed by the DUT uploaded with the optimized executable program and sends it to the computing device, and the computing device generates a second test result and compare the second test result with the first test result to generate a third test result which is based on the first test result and the second test result, and wherein the automatic code optimization unit further optimizes the optimized program 18AFSDOCS:302251811.1PCT / US25 / 25025 16 April 2025 (16.04.2025)Attorney Ref. No: 045456.00009codes and uploads the further optimized program codes to the version control sub-system and the build sub-system directly or indirectly.
9. A continuous integration and continuous deployment system, including:5 a version control sub-system, which receives program codes submitted by at least one developer and maintains the program codes;a build sub-system, which receives the program codes and builds the program codes into an executable program;a simulation testing sub-system, which tests the executable program by using a simulator; 10 anda deployment sub-system, which deploys the tested executable program into production, wherein the simulation testing sub-system includes:a device under test DUT;an upload unit which is able to upload the executable program and a DUT script to the device under test DUT;the simulator, which receives a simulation script; anda computing unit,wherein the DUT is used to be set on the simulator, and the DUT and the simulator are used to interact with each other under the control of the DUT script and the simulation script, and the computing unit generates a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.
10. A method for continuous integration and continuous deployment, including: receiving, by a version control sub-system, program codes submitted by at least one 25 developer and maintains the program codes;receiving, by a build sub-system, the program codes;building, by the build sub-system, the program codes into an executable program; testing, by a simulation testing sub-system, the executable program by using a simulator; and19AFSDOCS:302251811.1PCT / US25 / 25O25 16 April 2025 (16.04.2025)Attorney Ref. No: 045456.00009deploying, by a deployment sub-system, the tested executable program into production, wherein the step of testing, by a simulation testing sub-system, the executable program by using a simulator further includes:uploading the executable program onto a device under test DUT;5 uploading a DUT script to the DUT;receiving, by the simulator, a simulation script;setting the DUT on the simulator;interacting between the DUT and the simulator under the control of the DUT script and the simulation script; and10 generating, by a computing unit, a test result based on an output from at least one of the DUT or the simulator under at least one of the DUT script and the simulation script.20AFSDOCS:302251811.1