Case Study: Touch Input Automation
Modern vehicles are equipped with complex infotainment systems that rely on Touch Screens for user interaction and control. Testing the functionality of these HIDs is crucial to ensure a seamless user experience. However, manual testing can be time-consuming, error-prone, and limited in test coverage.
Introduction
Modern vehicles are equipped with complex infotainment systems that rely on Touch Screens for user interaction and control. Testing the functionality of these HIDs is crucial to ensure a seamless user experience. However, manual testing can be time-consuming, error-prone, and limited in test coverage.
Problem
The challenge we face is effectively evaluating the functionality within an infotainment system. To address this challenge, we can leverage the following existing test automation tools specifically designed for touch screen testing like Cartesian Robot and Touch Sensor Emulation. While these tools are valuable for touch screen testing, they have their own drawbacks. Cartesian robots are expensive, slow and error prone. Touch Sensor Emulation needs to be customized for each type of display, and is a less generic approach. We propose an alternate approach to testing infotainment systems, through USB HID emulation.
Solution
USB HID is compatible with a wide range of touch-enabled devices, as it relies on the standard USB HID class supported by various general purpose operating systems, which are used in Infotainment Systems. This ensures broader coverage and enables testing on different platforms and hardware configurations.
HID testing enables the simulation of real-world scenarios where users interact with multiple input devices simultaneously. This includes scenarios where touch screen interactions are combined with physical buttons. By automating HID testing, we can accurately replicate these scenarios and validate the system’s ability to handle various user inputs seamlessly.
To enhance the automation capabilities, we leverage the Raspberry Pi, a versatile single-board computer capable of acting as a USB HID device. By utilizing the Raspberry Pi in HID automation, we can simulate HID interactions and generate input events to the Device Under Test (DUT). This approach provides a flexible and efficient solution for testing HID functionality.
The approach to USB HID emulation is show in the following diagram.
Linux running on Raspberry Pi, provides Gadget mode drivers that facilitate the implementation of HID automation. These drivers enable the Raspberry Pi to emulate USB HID devices and interact with the DUT seamlessly.
More details o nenabling Gadget mode drivers on Raspberry Pi and generating input events to the DUT, is available from the following links:
Enabling Gadget mode driver on Raspberry Pi:
Generating input events to the DUT:
By following these resources, you can leverage the Raspberry Pi’s capabilities as a USB HID device and utilize Gadget mode drivers in Linux to create and generate HID events for testing purposes.
The USB HID emulation can be made available to other test automation frameworks like Robot Framework by implementing XML-RPC service within Raspberry Pi. By leveraging the power of existing test automation frameworks and the inherent USB HID capabilities of Linux, Windows, and Android-based systems, you can create robust and comprehensive test automation solutions that efficiently simulate user interactions and evaluate system behavior.
Conclusion
Automating Infotainment System testing through USB HID Emulation allows for the execution of a large number of test cases with precision and consistency. It is also a generic and cost effective approach to testing Infotainment Systems.
By incorporating HID testing either by substituting or implementing alongside with tools such as Cartesian Robots and Touch Screen Sensor Emulation, we can achieve comprehensive and efficient evaluation of the performance, functionality, and usability of HIDs within infotainment systems, leading to higher-quality deliverables.
Contributors
-
Jacob Paul <jacobpaul.p@zilogic.com>
-
Bineesh <bineesh.pc@zilogic.com>
-
Vijay Kumar Bagavath Singh <vijaykumar@zilogic.com>