METHOD AND DEVICE FOR TESTING EMBEDDED APPLICATIONS IN ELECTRONIC SYSTEMS
A test device with dual communication interfaces allows real-time testing of embedded applications in electronic systems with I2C, SPI, or UART buses, addressing the speed limitations of standard PCs and facilitating automated testing across development stages.
Patent Information
- Application Number
- FR2024008639
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-05
- Publication Date
- 2026-02-06
AI Technical Summary
Standard personal computers are too slow to perform real-time testing on electronic systems with real-time or low-latency communication buses like I2C, SPI, or UART, necessitating a solution for autonomous and generic testing of embedded applications in these systems.
A test device with separate communication interfaces for interacting with both the electronic system and a test computer, allowing for autonomous data exchange and processing, enabling real-time testing of embedded applications via real-time communication buses.
Enables numerous tests on embedded applications without manual intervention, supporting interactions at any stage of the development cycle, including debugging and prototyping, by facilitating real-time data exchange and analysis.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: METHOD AND DEVICE FOR TESTING EMBEDDED APPLICATIONS IN ELECTRONIC SYSTEMS
[0001] Some embodiments relate to the field of testing electronic systems, in particular testing of embedded applications in electronic systems used in a master or controller type mode, including fast communication buses, and more particularly testing of drivers, using standard computers.
[0002] As programmable electronic systems become increasingly complex and often more generic, they are used in many contexts and undergo regular updates, particularly software updates. These systems are generally equipped with one or more buses to receive and / or transmit data, for example, to obtain data from sensors and / or control actuators.
[0003] This results in a need for testing to verify that the behavior of applications embedded in these electronic systems, enabling their use in new situations or configurations, conforms to expectations. To test such applications, including data transmission or reception, the communication bus(es) of the system under test must be connected to operational communication elements capable of interacting according to the specific characteristics of the bus used, particularly in terms of response time and protocol.
[0004] To test an application embedded in an electronic system, the application is loaded into this electronic system and then executed and a separate system, for example a test management computer, analyzes the behavior of the electronic system being tested, in particular at the level of data exchanges on the communication bus(es).
[0005] However, the presence of real-time or low-latency communication buses in the electronic systems to be tested, for example I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface) or UART (Universal Asynchronous Receiver Transmitter) type buses, does not allow real-time testing to be carried out with a standard personal computer, for example to run a test scenario.
[0006] Indeed, a standard computer running a test scenario is too slow compared to an I2C, SPI or UART type communication bus.
[0007] There is therefore a need for a simple test solution that is easy to implement, generic enough to be used in many contexts, and capable of performing a large number of tests autonomously. This solution must make it possible to test the behavior of an application embedded in an electronic device that receives and / or transmits data via a real-time or low-latency communication bus, for example, of the I2C, SPI, or UART type, particularly according to a "master" or "controller" type communication mode (i.e., in which the electronic device under test initiates the transmission and / or reception of data).
[0008] According to one aspect, a test device is proposed comprising at least a first communication interface for receiving data from an electronic system to be tested and transmitting data to said electronic system, at least a second communication interface, separate from said first communication interface, for transmitting data to a test computer of said electronic system, the test device being configured to receive at least one data from said electronic system and / or transmit at least one data from said electronic system, via a first communication bus connected to said first interface, autonomously, and being configured to transmit, via a second communication bus connected to said second interface, at least one data representative of at least one data received and / or at least one data transmitted via said first communication bus.
[0009] Such a device makes it possible to carry out a large number of tests, without manual intervention, of an application embedded in an electronic device.
[0010] According to some embodiments, said received data is a request, the test device being configured to transmit said at least one data to said electronic system in response to said request.
[0011] According to embodiments, the test device includes a memory for storing said at least one data to be transmitted and a data processing unit for determining said at least one data to be transmitted from.
[0012] According to embodiments, the device further includes a selector for transmitting said at least one received data to said electronic system via said first communication bus.
[0013] According to another aspect, an integrated set is proposed comprising the test device described above and an electronic system to be tested.
[0014] Such a device makes it possible to carry out a large number of tests, without manual intervention, of an application embedded in the electronic device.
[0015] According to yet another aspect, a method for testing an application embedded in an electronic system is proposed, said electronic system being connected, via a first communication bus, to a test device as described Previously, said test device being further connected to a test computer via a second communication bus separate from said first communication bus, the method being implemented in said test device and comprising, - detection of an event to transmit at least one piece of data to said electronic system via said first communication bus and determination of said at least one piece of data to be transmitted, - transmission, electronic system audit, of said at least one piece of data via said first communication bus and - transmission, to said test computer, via said second communication bus, of at least one data representative of at least one data received from said electronic system via said first communication bus and / or of at least one data transmitted to said electronic system via said first communication bus.
[0016] Such a method makes it possible to perform a large number of tests, without manual intervention, on an application embedded in an electronic device. Such a test method can target any interaction at any point in the development cycle of the electronic system (e.g., debugging, prototyping, etc.).
[0017] According to another aspect, a method is proposed for testing an application embedded in an electronic system, said electronic system being connected, via a first communication bus, to a test device as described above, the method being implemented in a test computer connected to said test device via a second communication bus and comprising, - transmission, to the test device, of at least one configuration instruction to transmit at least one piece of data to the electronic system, said at least one instruction including at least one selection indication to select said at least one piece of data to be transmitted to the electronic system via said first communication bus and - transmission, to said test device, of at least one read instruction to receive, via said second communication bus, at least one data representative of at least one data received from said electronic system via said first communication bus and / or of at least one data transmitted to said electronic system via said first communication bus.
[0018] Such a method makes it possible to carry out a large number of tests, without manual intervention, of an application embedded in an electronic device.
[0019] According to embodiments, said transmission of at least one read instruction is repeated according to a test scenario of said embedded application.
[0020] According to some embodiments, said transmission of at least one configuration instruction is carried out before the repeated transmission of read instructions.
[0021] According to embodiments, the method further comprises receiving said at least one data representative of at least one data received from said electronic system via said first communication bus and / or of at least one data transmitted to said electronic system via said first communication bus and comparing said at least one data representative of at least one data received from said electronic system via said first communication bus and / or of at least one data transmitted to said electronic system via said first communication bus with an expected data.
[0022] Other advantages and features will become apparent upon examination of the detailed description of embodiments and implementations, which are by no means limiting, and the accompanying drawings on which:
[0023] [Fig.l];
[0024] [Fig.2];
[0025] [Fig.3] ;
[0026] [Fig.4] ;
[0027] [Fig.5a] ;
[0028] [Fig.5b] ;
[0029] [Fig.6] illustrate embodiments.
[0030] According to some embodiments, a test environment for an application under test, embedded in an electronic system, comprises a test computer configured to execute a test scenario and a test device configured to exchange data with the electronic system, according to the characteristics of a communication bus of the latter. Representative data of data received from the electronic system by the test device, and / or of data transmitted to the electronic system by the test device, are stored in the test device and can be transmitted to the test computer, independently of the data exchanges between the electronic system and the test device. The test computer can thus access the test data without having to interact directly with the communication bus of the electronic system. The test computer is, for example, a PC, a server, an embedded system, etc., which can also be called a controller or orchestrator.
[0031] Fig. 1 schematically illustrates a test environment 100 comprising an electronic system 105 carrying an application to be tested, also called DUT (acronym for Device Under Test), a test computer 110 and a test device 115.
[0032] As illustrated, the electronic system 105 is connected to the test device 115 by a first communication bus 120, for example, an I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface), or UART (Universal Asynchronous Receiver Transmitter) communication bus. The electronic system 105 is in this case a "master" or "controller" type, meaning that it initiates the transmission and / or reception of data on the communication bus 120. The test device 115 is configured to receive and / or transmit data on the communication bus 120, according to the latter's protocol, and to respond to requests from the electronic system 105. The test device thus allows testing of the application embedded in the electronic system 105 when it uses this bus (by verifying that the bus accesses conform to expectations).
[0033] As also illustrated, the test device 115 is further connected to the test computer 110 by a second communication bus 125, separate from the first communication bus, for example, a USB (Universal Serial Bus) type communication bus. The test computer 110 can thus configure the test device 115, for example, to tell it how to respond to requests from the electronic system 105 on the communication bus 120 and to access data stored in the test device 115. The stored data are, for example, representative data received from the electronic system by the test device, and / or data transmitted to the electronic system by the test device.They are stored in the test device and can be transmitted to the test computer, via the second communication bus 125, independently of the transmission and / or reception of this data via the first communication bus 120.
[0034] Finally, according to particular embodiments, the electronic system 105 is connected to the test computer 110 by a third communication bus 130, for example a USB communication bus. The communication bus 130 can notably be used before testing the application embedded in the electronic system 105, for example to load the application and initialize the electronic system 105.
[0035] It is observed here that the electronic system 105 and the test device 115 can be separate elements, can be mounted on the same card or can be integrated into the same circuit, for example in the form of a SoC (acronym for System on a Chip).
[0036] Figure 2 schematically illustrates an example of the architecture of the test device. 115.
[0037] As illustrated, the test device 115 here comprises a first interface 200 to the first communication bus 120, for example of type I2C, SPI, or UART, and a second interface 205 to the second communication bus 125, for example of type USB. These interfaces allow data to be received and / or transmitted according to a specific protocol linked to the type of bus used. The test device 115 also includes a data processing unit 210, for example, to analyze commands received via interface 205, configure the test device according to received commands, select data to be transmitted on the first communication bus and / or on the second communication bus, etc.
[0038] The test device 115 further includes a receive buffer 215 (or a receive buffer area) for storing data received via the first interface 200. In particular embodiments, it also includes a transmit buffer 220 (or a transmit buffer area) for storing data received via the second interface 205, to be transmitted via the first interface 200. By way of illustration, the buffer areas 215 and 220 may belong to the same memory element, for example of type RAM (random memory access), but at different addresses, or to different memory elements. Again, in particular embodiments, the test device 115 includes an agent 225 itself comprising a selector 230 for using the receive buffer 215 or the transmit buffer 220 as the source of data to be transmitted via the first interface 200.Agent 225 also allows the identification of data received via the first interface 200, to be stored in the receive buffer 215. It is configured or implemented here by the data processing unit 210.
[0039] As illustrated, write access to the receive buffer 215 is connected to the first interface 200, via the agent 225, and read access is connected to the data processing unit 210. The latter can thus transfer data received via the first interface and stored in this memory to the second communication bus, via the second interface 205. In particular embodiments, read access to the receive buffer 215 is also connected to the selector 230. In other embodiments, for example in the absence of a transmit buffer 220, read access to the receive buffer 215 is connected directly to the first interface 200, via the agent 225, without using a selector.
[0040] As also illustrated, write access to the transmission buffer 220 is connected to the data processing unit 210 and its read access is connected to the selector 230. According to other embodiments, for example, if read access to the receive buffer 215 is connected only to the data processing unit of Data 210, read access to transmission buffer 220 is directly linked to the first interface 200, via agent 225, without using a selector.
[0041] The test device 115 thus makes it possible to interact in real time with the first communication bus and to transmit, in delayed time, to the second communication bus, data relating to this interaction.
[0042] Fig. 3 schematically illustrates a time diagram of an example of testing an application embedded in the electronic system 105, using a test computer 110, here of the PC (acronym for Personal Computer) type, and a test device 115.
[0043] As illustrated, a first step (step 300) involves the transmission, from the test computer 110 to the test device 115, of a test configuration command 300. This command is transmitted via the second communication bus 125, for example, a USB bus. This step includes, in particular, configuring the behavior of the test device to transmit data on the communication bus connecting it to the test system, for example, to transmit data in response to a request, and initializing this communication bus. The transmitted data can be predetermined data, data previously received from the electronic system, etc.
[0044] In a subsequent step (step 305), the test computer 110 transmits the program to be executed and an initialization instruction to the electronic system 105. After loading, the electronic system 105 executes the application. Some steps do not use the communication bus (e.g., step 310), while other steps involve the transmission or retrieval of data. For example, step 315 is a request to obtain data. This request is transmitted by the electronic system 105 via the first communication bus 120. In response to this request, the test device 115 transmits data to the electronic system 105 via the first communication bus 120 (step 320). In some embodiments, the response must conform to the standard, particularly in terms of format and response time, and to the requirements of the application being tested (which dictates the content of the response and the maximum delay).Its content, linked to the configuration of the test device, can be arbitrary or correspond to a scenario controlled by the test computer. It may notably be predetermined data or data received from the electronic system 105.
[0045] The execution of the application continues (step 325) with or without further data exchange.
[0046] In parallel with the execution of the application in the electronic system under test, the test computer can query the test device (step 330), for example to obtain data exchanged between the test device 115 and the electronic system 105 or representative data of the exchanged data. The exchanged data may be the data transmitted by the test device to the electronic system and the data transmitted by the electronic system to the test device, only the data transmitted by the test device to the electronic system, only the data transmitted by the electronic system to the test device or some of these data.
[0047] In response to the request from the test computer received via the second communication bus, the test device transmits the requested data, stored in internal memory, to the test computer via the same bus (step 335).
[0048] Fig. 4 illustrates an example of steps implemented in the test computer 110 to test an application embedded in the electronic system 105.
[0049] As illustrated, a first step (step 400) involves transmitting a configuration command for a test device. As described previously, this command includes, in particular, the configuration of the communication interface to this communication bus (e.g., interface 200 in [Fig. 2]).
[0050] According to particular embodiments, the configuration command of the test device further indicates to the test device how to interact with the electronic system to which it is connected by a communication bus, for example under what conditions to transmit data and / or how to determine the data to be transmitted.
[0051] In certain particular embodiments, the step of transmitting a configuration command includes a step of transmitting a data write command to store data in the test device, this data potentially being transmitted subsequently, under specific conditions, to the electronic system. In other embodiments, the transmission of data write commands is performed independently of the transmission of configuration commands.
[0052] In a subsequent step (step 405), the test computer sends a read command to the test device to obtain data exchanged between the electronic system and the test device, or data representative of this exchanged data. As described previously, the exchanged data is the data transmitted by the electronic system to the test device and the data transmitted by the test device to the electronic system, only the data transmitted by the electronic system to the test device, only the data transmitted by the test device to the electronic system, or a part of this data.
[0053] In response, the test computer receives the requested data (step 410) which can be compared to expected data (step 415). The received data and, where applicable, the expected data and / or the result of the comparison between the requested and expected data are stored to allow for analysis. a posteriori (step 420). The stored data includes, for example, received data and contextual data, for example related to the test scenario.
[0054] As illustrated, other data can be obtained in the same way and / or the test device can be reconfigured to perform other tests.
[0055] After all tests have been carried out (or as they are carried out), a test report can be generated (step 425).
[0056] Fig. 5a illustrates an example of steps implemented in the test device 115 to test an application embedded in the electronic system 105.
[0057] As illustrated, a first step (step 500) involves receiving a command. This command can be received from a test computer. Following the receipt of a command, a test is performed to determine whether the received command is a configuration command for the test device (step 505), for example, to instruct the test device how to interact with the electronic system to which it is connected via a communication bus. In some embodiments, this command also includes configuring the interface of this communication bus.
[0058] After receiving the command, and if the received command is a configuration command, the test device is configured according to the received command (step 505). For example, in connection with [Fig. 2], the data processing unit 210 configures the first interface 200 and the agent 225.
[0059] If the received command is not a configuration command, a test is performed here to determine whether the received command is a command to read data stored in the test device, i.e., a command to obtain an execution report (step 515). If a command to obtain an execution report is received, the corresponding data is transmitted (step 520). In some embodiments, the data to be transmitted is determined during the configuration of the test device. In other embodiments, the data to be transmitted is specified in the data read or retrieve command. For example, in connection with [Fig. 2], the data processing unit 210 reads the requested data from the receive buffer 215 and transmits it.
[0060] If the received command is neither a configuration command nor a command to obtain an execution report, a test is performed here to determine whether the received command is a data write command, for example, data to be stored for transmission to the electronic system (step 525). If a data write command is received, for example, with the data to be stored, the data is stored (step 530). For example, in connection with [Fig. 2], the data processing unit 210 stores the received data in the transmission buffer 220.
[0061] After configuring the test device, reading data or storing data, or if the received command is, according to this example, neither a configuration command, nor a command to obtain an execution report, nor a command to write data, the algorithm loops around itself to process new commands until it is terminated.
[0062] The steps described in [Fig.5a] are for example implemented in the data processing unit 210 in [Fig.2] to which a memory can be associated for storing instructions to be executed, temporary variables and data to be processed or processed, as described with reference to [Fig.6].
[0063] In parallel and independently of the command processing steps, the test device executes a routine (for example, agent 225 of [Fig. 2]) to determine whether conditions for transmitting data are met or whether a particular event triggering data transmission is detected and, if so, to determine the data to be transmitted to the electronic system via the communication bus connecting the test device to the electronic system. According to particular embodiments and as illustrated in [Fig. 5b], this routine may include the identification of particular conditions or events (step 550), for example, the electronic system receiving a request for data (step 560). If data is to be transmitted, it is transmitted (step 555).As described previously, the data to be transmitted may include predetermined data or data previously received from the electronic system. The conditions for transmitting data and / or the parameters for determining the data to be transmitted may be linked to the configuration of the test device, may be pre-configured in the test device with the possibility of modifying the configuration, or may be defined, without the possibility of modification, in the test device.
[0064] The steps described in [Fig.5b] are implemented, for example, in a dedicated data processing unit or in data processing unit 210 in [Fig.2], as a process independent of the process described with reference to [Fig.5a],
[0065] Figure 6 illustrates an example of a test computer that can implement a method according to particular embodiments of the invention, in particular the methods illustrated in Figures 3 and 4. The 600 computer is, for example, an embedded PC (personal computer) type computer.
[0066] As illustrated, the 600 computer includes one or more internal communication buses, shared or not, to which are connected:
[0067] - a central processing unit or microprocessor 605 (CPU, abbreviation for central Processing unit (in Anglo-Saxon terminology);
[0068] - a random access memory or cache memory 610 (RAM, acronym for random access memory (in Anglo-Saxon terminology) comprising registers adapted to store variables and parameters created and modified during the execution of programs implementing the steps described above;
[0069] - a read-only memory 615 (ROM, acronym for read-only memory in terminology) Anglo-Saxon) which may include an operating system and programs implementing the steps described above;
[0070] - a storage medium 620, fixed or removable, which can in particular be used for to store instructions and / or data to be processed or processed; and
[0071] - a communication interface 625, allowing a connection with a device test.
[0072] The computer 600 further preferably includes a network interface 640 connected to a communication network, for example a wireless communication network and / or a local communication network, the interface being capable of transmitting and receiving data, in particular to or from another server, computers, tablets and / or smartphones. The communication interface 640 is, for example, compliant with one of the Bluetooth, WiFi, 3G, 4G, 5G, 6G, etc. standards.
[0073] The computer 600 may also have a screen 645, in particular a touch display enabling a user to interact with programs implemented by the computer 600, and input means 650 such as a keyboard and / or a mouse enabling a user to interact with programs implemented by the computer 600.
[0074] The internal communication bus enables communication and interoperability between the various elements included in or connected to the computer 600. The representation of the internal communication bus is not exhaustive, and in particular, the central processing unit is capable of communicating instructions to any element of the computer 600 directly or via another element of the computer 600.
[0075] The executable code of the programs enabling the computer 600 to implement, in whole or in part, the method according to the invention, can be stored, for example, in read-only memory 615. According to an alternative, the executable code of the programs can be received via the communication network, through interface 640, to be stored in the same manner as described above. More generally, the program(s) can be loaded into one of the storage means of the computer 600 before being executed.
[0076] The central processing unit 605 will command and direct the execution of the instructions or portions of software code of the program(s) according to the invention, instructions which are stored, for example, in the read-only memory 615 or in the other aforementioned storage elements. Upon power-up, the program(s) stored in non-volatile memory, for example the read-only memory 615, are transferred to the random access memory 610, which then contains the executable code of the program(s), as well as registers for storing the variables and parameters necessary for implementing the method according to the invention.
[0077] Of course, the present invention is not limited to the embodiments described above by way of example. It extends to other variants.
[0078] Depending on the embodiment chosen, certain acts, actions, events, or functions of each of the methods described in this document may be performed or occur in a different order than described, or may be added, merged, or not performed or occur, as the case may be. Furthermore, in some embodiments, certain acts, actions, or events are performed or occur concurrently rather than sequentially.
[0079] Although described through a number of detailed embodiments, the proposed device, system, and method include various variants, modifications, and improvements that will be obvious to those skilled in the art, it being understood that these various variants, modifications, and improvements form part of the scope of the invention, as defined by the following claims. Furthermore, different aspects and features described above may be implemented together, separately, or substituted for one another, and all the different combinations and subcombinations of aspects and features form part of the scope of the invention. In addition, some of the systems and equipment described above may not incorporate all the modules and functions described for the preferred embodiments.
Claims
Demands
1. Test device (115) comprising at least a first communication interface (200) for receiving data from an electronic system (105) under test and transmitting data to said electronic system, at least a second communication interface, separate from said first communication interface, for transmitting data to a test computer (110) of said electronic system, the test device (115) being configured to receive at least one data from said electronic system (105) and / or transmit at least one data from said electronic system (105), via a first communication bus (120) connected to said first interface, autonomously, and being configured to transmit, via a second communication bus (125) connected to said second interface, at least one data representative of at least one data received and / or at least one data transmitted via said first communication bus.
2. Device according to claim 1, wherein said received data is a request, the test device being configured to transmit said at least one data to said electronic system in response to said request.
3. Device according to claim 1 or claim 2, comprising a memory (220) for storing said at least one data to be transmitted and a data processing unit (210) for determining said at least one data to be transmitted.
4. Device according to any one of claims 1 to 3, further comprising a selector (230) for transmitting said at least one received data to said electronic system via said first communication bus.
5. Integrated assembly comprising the test device according to any one of claims 1 to 4 and an electronic system to be tested.
6. A method for testing an application embedded in an electronic system (105), said electronic system being connected, via a first communication bus (120), to a test device (115) according to any one of claims 1 to 4, said test device (115) further being connected to a test computer (110) via a second communication bus (125) separate from said first bus.
7. communication, the process being implemented in said test device and comprising, - detection (550) of an event to transmit at least one piece of data to said electronic system via said first communication bus (120) and determination of said at least one piece of data to be transmitted, - transmission (555), electronic system (105), of said at least one data via said first communication bus (120) and - transmission (520), to said test computer (110), via said second communication bus (125), of at least one data representative of at least one data received from said electronic system via said first communication bus (120) and / or of at least one data transmitted to said electronic system (105) via said first communication bus (120). A method for testing an application embedded in an electronic system (105), said electronic system being connected, via a first communication bus (120), to a test device (115) according to any one of claims 1 to 4, the method being implemented in a test computer (110) connected to said test device (115) via a second communication bus (125) and comprising: - transmission (400), to said test device (115), of at least one configuration instruction to transmit at least one piece of data to said electronic system (105), said at least one instruction comprising at least one selection indication to select said at least one piece of data to be transmitted to said electronic system (105) via said first communication bus (120), and - transmission (405), to said test device (115), of at least one read instruction to receive, via said second communication bus (125),at least one data point representing at least one data point received from said electronic system via said first communication bus (120) and / or at least one data point transmitted to said electronic system (105) via said first communication bus (120).
8. Method according to claim 7, wherein said transmission of at least one read instruction is repeated according to a test scenario of said embedded application.
9. A method according to claim 8, wherein said transmission of at least one configuration instruction is carried out before the repeated transmission of read instructions.
10. A method according to any one of claims 7 to 9, further comprising receiving (410) said at least one data representative of at least one data received from said electronic system via said first communication bus (120) and / or of at least one data transmitted to said electronic system (105) via said first communication bus (120) and comparing (415) said at least one data representative of at least one data received from said electronic system via said first communication bus (120) and / or of at least one data transmitted to said electronic system (105) via said first communication bus (120) with an expected data.
Citation Information
Patent Citations
Generation and application of processor test patterns for tester systems
CN117707864A
Test apparatus and test method
US20200225286A1