The health care industry is becoming increasingly digitally enabled. Health systems and clinicians are being supported by and rely on digital health systems. So how do we ensure these systems are deployed correctly and safely? One approach is to employ automated testing. Why is this necessary? Digital health is increasingly being used to capture and view clinical records, write orders electronically and track their status, view diagnostic tests, utilize clinical decision support, and many other functions. Health organizations are relying on them to improve transitions of care, chronic disease management, care coordination, and improvements to the patient experience.
In addition to digital health systems, there is a proliferation of connected medical devices. These devices are prevalent in health care delivery organizations. Devices are connected to each other, and digital health systems, such as a hospital information system (HIS). They are also becoming more ubiquitous in virtual care settings, particularly in the home, allowing clinicians to remotely monitor health and provide care.
Finally, connected devices referred to as the Internet of Things (IoT) are being deployed to monitor, control and manage everything in the health care environment from the bed to sensors on and in the human body, or the physical building environment. These too are interconnected to each other and to the various digital health systems.
The Digital Health Care Ecosystem
So why automated testing? The digital health care ecosystem is becoming more complex and interconnected given the breadth and depth of the aforementioned elements. These systems are contributing to a better experience for patients and clinicians, better outcomes, increased productivity and lower costs associated with the delivery of high-quality health care. At the same time, like any technology and a business’ reliance on it, there are introduced risks. Each additional digital element added to the systems must be 100% reliable and interact with all of the other systems. Therefore, each application or device increases the risk to the delivery of high-quality and safe health care. Do health care organizations have the programs and tools in place to mitigate risks in the deployment and operation of this ecosystem? Automated testing is crucial in ensuring the safety of digital health applications and medical devices (also referred to as eSafety).
Below is a representation of a typical digital ecosystem in an acute care environment. The visual illustrates the various digital health systems, medical devices, and IoT commonly found today in virtually every acute care setting. The connecting lines represent the instances where there is interoperability between systems. This is often managed and monitored through an enterprise service bus and integration broker.
The biggest inherent risks in this ecosystem are with interoperability and user interface testing. These areas are where there is the greatest configuration, customization, and systems integration.
Best Type of Tests to Automate in Health Care
Unfortunately, when it comes to interoperability health care systems are not as “plug and play” as we would like. It is often highly configured and customized to the systems deployed and to the environment. So, what is the most effective way to verify all of these system elements are functioning correctly, in other words with eSafety? One of the most effective tools we have at hand, but are underutilizing in health care, is automated testing. Test automation is the use of software, under a setting of test preconditions, to execute tests and then determine whether the actual outcomes and the predicted outcomes are the same. Automated testing can be used to validate that the messages sent and received between systems are as expected for a specific test scenario.
Automated testing can be used for user interface validation. The user interface is one area that is often configured to a specific deployment. Therefore, the team deploying must validate that all of the fields are functioning as designed. Are the data captured and validated on the screen as expected? Are combinations and permutations of related data valid? Is the user interface handled correctly across devices and with various browsers? Automated testing of the user interface has a very high return on investment. It offloads a high percentage of manual test scenarios freeing up staff (i.e. clinicians, business analysts and IT staff) from the time-consuming data entry validation and data presentation.
When to use Automated Testing
When is automation the right tool? Use test automation when one can let the software do the repetitive tasks. It is most appropriate when there are repetitive tasks such as user interface testing, data flow between systems, i.e. interoperability, as well as validation of the transformations and permutations of the data. Automation can do it with better breadth and depth of test coverage, testing the interoperability use cases not only with expected data, what we call the “happy path”, but also testing with “bad” data to ensure the systems respond to those exceptions appropriately. Automated testing eliminates the human error which would likely be introduced due to the mundane and repetitive nature of the testing tasks. In some cases, like interoperability of medical devices where there is no computer/human interface to trigger the interoperability use case, automated testing is the only way to ensure the systems are functioning correctly.
With automated testing, we have the luxury of letting the testing staff and clinicians focus on the important things. These include analyzing issues and solving problems. The result is an increase in productivity of the test team. In addition, test scenarios can be run “off hours” such as overnight and on the weekends. An organization can test new releases (i.e. regression testing) as often as necessary, with little incremental cost given the substantial savings in labour costs for test execution.
Test cases that are readable by humans drive the process. Testing staff generates individual test scenarios for each test case. The system generates some variants generated to ensure that test coverage is complete. Then, a test harness uses those test scenarios to exercise the systems under test. For example, the scenario could be populating a screen with data. It could be mimicking an output from or an input to a medical device from another device or from the HIS. It could be the display of a diagnostic test as the result of an HL7 message from a departmental system. Or it could be exercising an application programming interface (API) to a “system in the cloud” (i.e. software as a service) such as a complex clinical decision support algorithm, to name a few.
In summary, test automation is a practical and efficient way to ensure that the user interface and interoperability within a health care digital ecosystem are functioning as designed. It offloads mundane and repetitive tasks from staff, reduces errors, and results in better breadth and depth of test coverage at a lower cost and with reduced timelines.
In our next blog post, we will discuss the return on investment of test automation.