Thu 08 February 2024

Introducing Web UI QAnvas and new features of Quality Assurance Daemon


Back in April, Codethink announced the Quality Assurance Daemon (QAD) tool: a lightweight Linux daemon designed to aid functional testing of software applications by interacting with the User Interface (UI) of an embedded system. We've recently made some enhancements to the tooling, and will be covering these in this blog post.

We have also added a notable feature in tandem to QAD: the QAnvas Web UI (pronounced 'canvas') designed to assist both in the creation of test scenarios and in facilitating remote access to the system under test. This allows us to easily visualise the remote system's display and monitor software behavior and simulate input injection events into the system, allowing for dynamic interactions with the software under test.

QAnvas web UI

QAnvas web UI

While QAnvas can function independently, its functions are significantly enhanced when paired with QAD. Designed as a complementary software tool, QAnvas augments the QAD testing framework, creating depth and versatility to create a more flexible and user-friendly testing environment.

QAD specialises in automated device testing, but for integration with openQA, needles become essential to identify and verify UI elements. QAnvas steps in as a substitute for crafting and modifying needle files; an integral part of openQA. These files consist of images paired with JSON data, defining expected UI elements. QAnvas simplifies test creation by providing a visual interface to identify and map relevant UI areas, aligning seamlessly with the structural functionality of OpenQA. This makes QAnvas a versatile and translateable tool, facilitating effortless integration with the OpenQA testing framework.


Keyboard API

QAD has been updated to accept keyboard inputs for sending keycodes to the test device. This allows for comprehensive testing via text based input fields, allowing QAD to simulate user interactions based on keypress events. Testers can verify that all keys work as expected, including letters, numbers, special characters, and function keys and evaluate the responsiveness and functionality of UI elements like buttons, menus, and dialogs to its corresponding input event. It can be taken one step further for multilingual and localisation testing across a global market supporting multiple languages and character sets, ensuring that the software is localised correctly.

QAnvas multi-click support

Modern vehicle infotainment systems feature a multi-layered interface which provides for a simpler UI experience but increases the need for comprehensive testing. In order to increase the efficiency of functional testing, the multi-clickpoint support in QAnvas reduces the need to create a new distinct testing parameter for every test sequence.

This feature simplifies the testing process by allowing the use of a single needle for navigation, in cases involving multiple destination screens. Rather than creating multiple individual needles for each screen, the multitouch feature allows testers to generate robust and efficient navigation and test scripts.

This feature becomes essential as the depth/complexity of the UI increases and a clear and efficient test sequence needs to be created.

ILM optimisations

The previous ILM backend captures screenshots, encodes them to a BMP file and then reads from the file to bypass the buffer. The extra save to file process has been deprecated and optimisated to remove the unnecessary file indirection by instead reading the pixels directly from memory-mapped file and then encoding and sending it through the network.

Static linking

QAD compiled with statically linked libraries ensures that all the dependencies required for the proper functioning of the system are included directly in the binary, making it more self-contained. This makes QAD more portable as it doesn't rely on the presence or version of external libraries on the target system and will demonstrate a predictable behavior. This also allows us to isolate the testing environment from the host system's configuration, which can be critical for consistency and repeatability in testing scenarios.


While QAD takes care of interacting with the hardware's UI, the QAnvas tool works as a visual feedback and interactive user interface tool. The two tools working in conjunction provide for a comprehensive testing ecosystem that allows the tester to navigate, observe, and control the device remotely.

The latest updates to QAD enhance its capabilities as a versatile and powerful tool for functional testing and quality assurance of software applications. The addition of a keyboard API, multi-clickpoint support, ILM optimisations, and static linking make QAD more efficient, compatible, and self-contained. These improvements empower testers and developers to conduct comprehensive and realistic testing, ensuring the reliability and performance of their software applications. QAD continues to evolve as a vital resource for maintaining software quality and reliability.

If you would like to learn more about this solution, please reach out to

Other Content

Get in touch to find out how Codethink can help you +44 161 660 9930

Contact us