As software is progressively becoming both an integral part of many medical devices and a standalone service in the healthcare industry, manufacturers are faced with the challenge of maintaining the quality of all software functionalities throughout the software lifecycle. The IEC 62304 concept of software development life cycle (SDLC) is the backbone for software validation. It is important for your company to understand that compliance with this standard and any other supporting standards will most likely be required by your regulatory body.
Software testing plays an important role during the development of each phase in the SDLC. A typical testing program includes the following steps:
Examination of code/program during the development process to discover any bugs
Verification that complete software requirements are correctly implemented according to the defined user or system requirements
Demonstration that application functionality is properly working and the defined performance requirements are met
Verification of proper integration and interaction of each component in the system
Creation of a traceability matrix and gap analysis to demonstrate and evaluate the linkages among requirements
Creation of feedback to developers from various stakeholders
Keep in mind that comprehensive software testing is not a trivial task. However, performing all of these testing activities will greatly benefit the manufacturer by saving time on the backend. First step of the software testing results in immediate benefits from identifying any bugs found during software development. Skipping this step and identifying bugs at later stages could be costly and negatively impact software stability. The development team will also benefit from early identification of these bugs by being able to implement controls into the software, so these bugs are not repeated during later stages or future projects.
The incorporation of either independent testing teams or user acceptance testing during software development can reveal additional software problems from a new point of view. For instance, quality attributes of non-functional requirements, such as reliability, efficiency, and integrity, can be tested by those outside of the development team to identify areas for improvement when using the software and verify that software functions as intended.
Verification testing is crucial especially for medical software to ensure that modified code (e.g. bug fix or functionality change) does not break the existing functionality of the application and works well within the requirements of the system. Manufacturers should incorporate a reliable software testing strategy that includes various levels of testing into their device design and development plan. Unit Tests can act as a sanity-check on software devices to ensure each unit is capable of correctly managing known inputs and outputs, Integration Tests help verify that all software units work cohesively, and Function or System Tests can verify end-to-end scenarios that simulate end-user behavior.
The choice of testing tools and processes is also critical to a successful testing program. A dependable test management tool should be one developers and testers are familiar with, and integration with an issue tracker is often considered a benefit. Development testing processes, such as drafting and executing test cases; documenting, reporting, and fixing bugs; and performing regression testing, should be agreed upon by both the developers and the testing team to ensure software programs are verified effectively.
The Rook QS team has extensive experience with testing embedded software, standalone software, and connected software on various platforms, and we are ready to help your team develop safe and effective medical devices. We will work closely with your team and support you at every step along the way to ensure all verification and validation activities are properly performed. Please revisit our blog soon to read case-studies that are based on scenarios that we have encountered.
About the Author
Andrew Wu, Software Consultant at Rook Quality Systems.
"Working at the intersection of project and quality management, I believe better practice in software development and computer system validation can greatly benefit companies who are trying to put their novel medical technology in the hands of providers or patients".