Software Testing and Training in Health Care
Software solutions are the backbone of many operations in health care. With patient safety on the line, rigorous testing and training processes are crucial to ensuring these programs work as intended. Getting it right can help you build and implement more successful, effective programs and reduce risk.
What Is Software Testing?
In general, software testing refers to the broad process of evaluating software to ensure it works as intended and meets expectations and requirements. Some tasks can be automated, but others happen manually. The process itself can vary widely from program to program and industry to industry.
Some of the goals of software testing include establishing testing protocol, writing automated scripts and organizing the testing framework. An example of a software testing plan might look something like this:
1. Analysis and Planning
Those in charge of the project, such as a quality assurance manager or test lead, must determine scope and lay the groundwork for testing. These individuals will learn what kind of requirements the software must meet, create clear and measurable metrics and define risks that might affect testing, such as budget or time restraints. Then, they’ll create a schedule and gather the appropriate personnel.
2. Test Design
After the planning stage, test engineers can start to prepare the environment and data. This team will gather tools, such as project management software and communication platforms, and design test cases and scenarios. If appropriate, test engineers will also write automation scripts and configure automation tools.
3. Testing and Reporting
With everything ready, engineers can then run manual tests and automated scripts and generate reports to assess performance on the key performance indicators established earlier. After software engineers address the errors, the test team will reassess and ensure the problems were properly fixed without affecting other functionality.
How Is Software Testing in Health Care Different From Other Settings?
Health care software testing must meet strict demands and appease a range of different parties. While software in other industries is often built for one specific audience, such as employees of a company, software in health care is interconnected with many other users and platforms. An electronic health record (EHR), for instance, must meet demands from providers, hospital administrators, patients, governments, payers and more.
Some of the major considerations for these parties include:
- Patient safety: When software is used in health care, the main goal is usually patient safety. From error-resistant data entry to reliable data security, health care software testing supports the program’s ability to keep patients safe and healthy.
- Security: Data security is important to patients, but it’s also essential for organizations to help reduce risk and abide by strict industry regulations like HIPAA. Software testing assesses and documents the program’s ability to meet these demands. Some examples include penetration and vulnerability testing.
- Functionality: Test engineers also evaluate the software’s ability to keep working even in difficult environments, such as power or internet outages and network interruptions. Testing might also involve assessing the program’s performance during system updates, maintenance or scaling. A telehealth system, for instance, might need functionality testing to achieve steady video streaming even when the network is strained.
- Compatibility and interoperability: Software used in health care must play well with other systems, including devices like computers and tablets and platforms like EHRs and e-prescribing programs. The software must also meet data transfer standards like Fast Healthcare Interoperability Resources and Health Level 7.
- Usability: User experience testing assesses how people with various roles will experience the software. Testers evaluate how the program works for different people, like administrators, providers and patients. They might look at how hard it is to learn or how time-consuming it is to use.
Testing for these unique demands makes health care testing particularly challenging. Testing engineers must have a wide breadth of knowledge on technical requirements, advanced technologies, user experience and regulatory environments. Since it involves such a complex environment, health care application testing should ideally go to experienced, specialized teams.
4 Things to Know About Software User Training
Few software applications depend as much on user training as health care programs. Providers and medical support staff must understand how to use the software effectively to maximize the organization’s investment and help improve patient outcomes as much as possible. Spending ample time on training can help ensure effective, efficient use of the software.
Below are some points to keep in mind when conducting user training for health care software.
1. Plan, Plan, Plan
Failure to plan is a common mistake and an easy one to do because the person training the software knows it inside and out, they do not have a formal plan for training and just try to wing it. No matter how well you know the software, it is easy to leave out important information that can leave the users confused.
Before training, create a set list of objectives. These objectives make up the training plan, and the objectives should be centered on the main needs of the user. Make a list of the training objects that you will be teaching them based on their needs. You would not go over the bookkeeping aspect of software with users that are using customer service aspects of the software. Set objectives specifically for each group of users, so they learn the most relevant aspects of the software for their roles.
Once you have set objectives for what you will be training them to do; you can set an agenda. Objectives are just the basic guideline. You need to now set up an agenda for the sequence of steps that you will be going through with the training. Keep in mind that the trainer may not know upfront how computer-savvy the trainees are, so part of the agenda should always be to get to know the trainees a little bit and find their level of comfort with technology.
When setting your agenda, take into account that you might have to spend more time with some trainees who might not be as computer-savvy as others are. Your agenda should be somewhat fluid, and when you are setting up the steps, always include pauses where you ask to make sure everybody understands.
Never rush through training. As you set the agenda with a sequence of steps, include time to make sure that everybody understands concepts. It is better to do this after each objective rather than at the end of the training session because it is easy for the trainees to forget about questions that they have for one objective if the trainer has gone on to another objective.
2. Remember the Basics
It seems too rudimentary to have to list, but many trainers tend to skip the basics because they assume the concepts are common knowledge and going over them would be a waste of time. Start with the easiest objectives first, and then work towards the more advanced ones. The sequence of the objectives should be the logical sequence that the users themselves would be following when they are using the program.
When you train using a logical sequence of objectives, the software will make sense. Skipping around — which is very easy to do without a clear agenda — will only confuse the trainees. When they go to use the software later on, they will not know to get to point C if you skipped around points A and B. Think of training like a stacking puzzle. Unless the pieces are in the correct sequence, it will not make sense.
Start with the easiest, the base of the puzzle, which is the most general aspects of the software, and then work up to the more detailed and specific aspects of the software.
Remember, most trainees will have questions at some point or another after training which is why one of the objects should always be to show them how to access and use any help features included in the software or through the software’s website. The last objective should always be to show them how to find answers for themselves once they start using it.
Once the trainer has gone through the objectives, remember to take the time to ensure that the trainees are following along and have no questions. Always go through and review all of the objectives. Then, schedule time to go through any additional questions.
You can train users on new software easily and without mishaps if you follow a set plan. Unless there are defined objectives and a training agenda, no training session will be successful, no matter how well-versed the trainer is with the software.
3. Connect With Your Audience
Successful training takes into account who the users are and what their needs are. It’s very important to know their roles, what they actually do and how the new software will help them in their specific jobs. If possible, try to design the training schedule and the length of time for training appropriately based on that role.
One size doesn’t fit all. If you have a room full of people with different roles, you will disengage people in your audience when the things being taught don’t apply to them. It’s not good practice and wastes everyone’s time. When training, it should be just enough to get them through 80% of their day. Don’t spend time on esoteric features that they may never use. If users want more specialized training, schedule more time later for those people.
Standing at the front of the room and just pointing out all the features of the new software is not training. We sometimes call it “button-ology” training or “The Car User Manual” training. It happens when users are taught all the functions of the buttons, knobs and widgets in the car but aren’t actually taught how to drive.
4. Teach by Example
The best way for people to learn how to use new software is by doing. Instead of just showing users how to use the software, trainers should walk them through the steps as the users do each step themselves at the same time. In medical school and residency training, a popular phrase is, “See one, do one, teach one.” It is good to be able to see what the steps are, but users also need to be doing it for themselves too.
Sitting them down and then just telling them what to do is vastly different from having them sit down and do it for themselves. When it comes to software, learning by doing is the best way. The classroom should be used to explain overall concepts of how something should be done, and then over-the-shoulder training needs to occur.
Ideally, this over-the-shoulder training does not happen on a training system if there are templates and user settings that need to be set once. If it is done on a training system, the users forget by the time they are at their workstations how those initial settings and templates are loaded. It is best to have the users log in with their user accounts so users can set things up during the training session with the trainer.
If this oversight can’t be done in the training room, the trainer should make a point to sit with the users at their workplaces and observe and correct habits that are inefficient from the very beginning.
Best Practices for Software Testing
Keep these software testing best practices in mind during the process:
1. Use Entry and Exit Criteria
Entry and exit criteria provide a set of conditions that must be met to launch and close out a specific project phase. They help define various stages of the development process and ensure a product must meet specific criteria before it can move on to the next stage.
Entry and exit criteria provide additional control by demonstrating that a product meets certain standards before moving along in production. They can help elevate your quality standards for a more effective health care product.
2. Test on Multiple Platforms
Multi-platform testing is essential for today’s diverse technical environment, ensuring interoperability among platforms and devices. Testing on these different environments allows you to make changes and create a functional application across use cases. Consider the many platforms involved in health care, like desktops, laptops, tablets, EHRs, lab and imaging systems and patient portals.
3. Establish an Inspection and Review Process
Inspection and review processes involve well-defined procedures and expert assessments to improve the chances of finding errors. Then, after they’re corrected, the software is re-inspected. This process helps to improve quality and is an important part of creating an effective, error-free product.
4. Automate Testing
Manual testing can be time-consuming and inefficient. Where applicable, automated testing is a great way to save time, so the team can focus on elements of testing that require human input or address new features. Health care technology is always evolving, and automated testing can help offload repetitive tasks.
5. Put Functional Specifications Front and Center
Functional specifications offer a straightforward guideline for development. They describe the capabilities, design, user interactions, operations, activities and other aspects the program should offer. Use these to your advantage and test against the functional specifications, which serve as documented business requirements. They clarify your goals and guide you toward a product that meets carefully assessed requirements.
6. Conduct Usability Testing
Usability testing can help you collect data about the user’s experience by having a representative user accomplish a task with the program. It assesses how easy the program is to use and whether the user has an overall positive experience. This step is particularly important in health care, where burnout is such a significant concern.
Lean on the Health IT Experts
Software testing is complex in any industry. Add in the highly regulated, complicated, fast-paced world of health care, and testing becomes an unwieldy task. At MicroHealth, health care IT is our specialty. Our knowledgeable team can build applications from scratch to meet strict, unique demands in the health space, complete with quality-focused testing and training.
Learn more about our software development and integration services, or reach out to an expert and see how we can help you master testing and training for your next project.
My wife is an ER nurse and anytime the hospital software is updated they have a rigorous amount of training that they go through to ensure that everyone knows how to use it and why it is being changed. I think that make it much more effective in the end.
It does! Any type of change requires a huge adjustment, but it is worth it in the end.
You can never go wrong when you have a list! I would go nuts without a set agenda at work so I think trainees should also be trained with very clear objectives in mind and following certain rules. And I also think the basics or the relatively easiest things are the most important in the end.
Oh, don’t even get me started on this! My boss has a huge problems when it comes to organizing – he never does a good job at explaining what we should be doing, when it needs to get done and who is responsible is something goes amiss. We need to figure out what everyone should be doing ourselves and this is not the way things should be done in a hospital. PS: I’m a nurse.
Organization is a key tool is making sure things go as planned and entailing a smooth and seamless day. When it comes to a healthcare work environment, organization is a must!