The Ultimate Swiss Army Knife of UI Software Testing, Accelerating Workflow-Based Automation for Medical Imaging Systems
Creators: name: Shi, Hui
Publisher: name: Zenodo
Year: 2025
Subjects: Software Testing
UI Testing
Python UI Testing
Medical Imaging System

description: Verifying performance and safety is critical but has been a bottleneck in the medical software release process. UI software testing, being the most complex and integrated component, has traditionally been tested manually. Because the UI software is constantly updated, building UI testing automated solutions (TAS) for continuous testing and verification offers great benefits in reducing manual labor and human errors, increasing routine testing that allows early detection of software errors, and improving the robustness of the software development lifecycle. It ensures consistency in test execution, reduces the time required for regression testing, and frees up human resources for more complex testing tasks. Here, I am presenting a unique, readable, and maintainable test automation method applied in medical imaging that leverages Python libraries to achieve testing needs such as interacting with the UI software with emulated user behaviors, sending and receiving data with external web APIs, performing test data validation, recording test evidence, and creating test reports.

At Adaptix, we are developing new types of compact, low-dose, 3D X-ray imaging systems to enable 3D imaging at the point of care. The device emits X-rays at different angles and reconstructs the images into high-resolution 3D images to facilitate medical diagnosis. The client side of the software product is a software UI designed with a workflow in mind to streamline the user experience. We follow a traditional V&V model to verify it against a set of verification specifications that follow a set of procedures. Using Pytest as the testing framework and integrating various Python libraries such as PyWinAuto and PyAutoGUI, I have developed an automated testing solution (TAS) to automate tests that emulate the user’s behaviors to interact with the UI software and perform regular verification testing. Some examples of the TAS features include opening and closing applications, clicking, dragging, rotating, taking screenshots and screencasts of the test procedures, selecting options from dropdowns, typing into textboxes, verifying the metadata of the artifacts against the input data into the UI, and modifying and transferring files between computers. I have applied an earlier prototype of the TAS with the Internet of Things (IoT) to stress test the product and have successfully power cycled the device hundreds of times and acquired thousands of 2D and 3D tomosynthesis images to ensure that the device can be functional throughout its estimated lifetime. This method of developing TAS can be easily integrated into various continuous development processes, thereby enhancing software compliance, safety, and performance robustness of the UI software.

In summary, I will present this scripted framework that can fit into various UI testing needs to enhance the efficiency and accuracy of the continuous software development process. I will discuss my strategy for improving the maintainability and readability of the TAS. Practical examples and case studies will be shared in the talk to demonstrate the broader relevance of these methods in various software testing scenarios. By the end of the session, participants will have actionable insights and strategies to implement UI testing and verification in their daily work, leading to improved software quality and development lifecycle robustness.