As part of our healthcare software testing practice, we have been testing a medication dispensing system. Medication Dispensing software, part of a Medication Management system, allows pharmacy inventory to be managed from its arrival in the pharmacy to dispensed medications, implementing multiple bar code checks for accuracy. It works throughout the facility and sometimes crosses multiple hospitals. Using this type of application, technicians can quickly and securely pick from the carousel and other devices.
Monitoring and dispensing medications is highly regulated and requires a complex and highly secure system.  Business rules and features are quite complex, so testers need to prioritize the features and priorities. In our testing experience, we found the following top 4 items to prioritize our testing efforts.
1. Routing
To dispense a drug, you need to find the drug first. The “routing” feature is the configuration of the application based on which the system will find the drug’s location. It is a high priority because it is the basis of the rules for dispensing medications. There are many different methods for picking a drug. For example: Manual Pick, Cart Fill, Pre-packaged etc. (Different companies may use different terms.) Different pick types can be set to different priorities, and map to different devices – A-Loc, bulk, packager as well as the devices such as static shelves, and carousels. Also, sometimes you need to pick drugs from several devices at a time. You need to consider all of these situations and create test cases accordingly.
2. Dispensing
This feature is critical because it is used by the operating GUI technician every day. Drug orders are picked in the Dispensing Manager function. The important information of a drug such as the medication name, pick quantity, pick type, QoH (Quantity on hand), location code should be correctly displayed and switch to the next one after scanned. This feature although easy to test is still critical.
3. Scanner
To test scanner related features, you have to have real scanners and connected to your machine’s COM ports; and have the software to generate bar codes at the same time. There are different types of barcodes. Code-128 is the most common supported one. It’s best to generate some sample barcodes, print them, and use for actual testing.
4. User Roles
All the Medication applications have a set of built-in roles which determine which functions will be available to each user. All such applications need to carefully control the high-alert and high DEA classification medications. A defect in permission validation and verification may lead to critical issues. So the User Roles and related permissible functions are regarded as a high priority test areas.

Testing healthcare software definitely requires us to put on another hat and really think from the end user point of view. During our testing, we assign each tester a different role and tell them to really think like a pharmacy technician, nurse, doctor, etc. We also may conduct interviews at local hospitals to really discuss and understand what’s important to them.