Whether it’s a new medical device or an improvement in the operation of an existing one, the software is an essential part of it. Software isn’t like a piece of metal that we can put through a strain gauge to test if it’s strong enough to last.
Whether it’s a new medical device or an improvement in the operation of an existing one, the software is an essential part of it. Software isn’t like a piece of metal that we can put through a strain gauge to test if it’s strong enough to last. It’s impossible to tell if it’s about to fail until it does.
Medical device problems are continuously monitored and reported by the Food and Drug Administration (FDA). A patient may suffer from catastrophic damage or even death because of software failure. As a result, the medical device manufacturer is responsible for ensuring their software is safe.
Failure to incorporate software design controls and build adequate software verification and validation methods can result in software abnormalities, jeopardizing patient safety, the company’s reputation, and legal concerns. We will focus on software verification methods in this blog.
What is Medical Device Software Verification?
Medical Device Software Verification offers unbiased proof that the design outputs of a certain stage of the software development life cycle comply with all of the requirements set forth for that stage. Program verification checks the consistency, accuracy, and completeness of the software and the documentation that supports it as it is being developed. This process supports the assertion that the software has been validated.
Medical Device software testing is one of many processes used to verify that the output of software development satisfies the requirements of its input. Other activities that involve verification include a variety of static and dynamic analyses, code and document inspections, walkthroughs, and other methods.
Some of the Verification Techniques for the Medical Device Software
Peer Code Review: Code reviews are systematic evaluations of the code intended to find defects, improve code quality, and aid engineers in learning the source code that serves as quality assurance for the code base. To receive a second perspective on the code implementation and detect errors, logic issues, or uncover edge cases, this can be done by another developer or technical team lead.
Static and Dynamic Software Code Analysis: Static code analysis is a technique for debugging and reviewing computer programs by looking at the code but not running the program. The process provides insight into the code structure and helps ensure that the code complies with industry standards.
Static analysis tools reveal several kinds of problems in the code by putting the source code through a set of specified criteria known as checkers. Different types of faults in the code are revealed by static analysis techniques. Static analysis tools can examine the most widely used languages, C and C++, and operate independently of compilers, linkers, and hardware.
This will aid in identifying any early-stage problems that may be fixed while the project is still in development, enabling programmers to create a solid code base.
Unit Testing: Unit testing separates individual units from each module and the entire software system and then runs several tests on each group. The unit’s external calls are blocked by mock functionality. Since you want to test the particular unit separately from the rest of the module, any shared parameters should also be mocked out. Because they are located outside the module’s scope, mocks or stubs are specifically produced functions that take the place of the actual function calls from the unit under test.
The test developer now has the freedom to add or alter the stub functionality to impart the required stress to a particular test scenario or behavior. This makes it possible to eliminate hardware needs or dependencies for testing.
What Should You Select to Verify the Software for Medical Devices?
The foundation for continuous improvement is established by establishing a robust code review procedure and using version control to stop unstable code from reaching clients. Bitbucket is a Git Code Management Solution built for Teams and is used for effective and traceable code review and version control.
How does peer code review work? Authors write code and update their code in Bitbucket. The author then identifies the code that needs to be reviewed and submit a request to a peer reviewer. Peer reviewers examine the code, and if any modifications are required, they submit their suggestions to Bitbucket. If the reviewers find no changes, they approve their permission, and the author pushes the code into the repository.
PC-Lint is used for static code analysis. PC-Lint runs on static C or C++ code to assure code quality checks for compliance with coding standards like MISRA C or MISRA C++ and ensures there are no errors, hiccups, inconsistencies, or non-portable constructs, or redundant code.
The VectorCAST embedded software test platform supports the creation and administration of test cases to demonstrate that the low-level software requirements have been examined. The VectorCAST tools also enable the recording and reporting of structural code coverage at all levels advised by IEC 62304.
Successful compliance with FDA software quality requirements is being shown by VectorCAST tools. Whether your device is Class I, II, or III, the VectorCAST tools offer a trustworthy and repeatable testing method for your medical device software verification.
Our teams at VOLANSYS are experts in all the areas mentioned above, ensuring that the software verification process is carried out according to IEC 62304 and ISO 13485 for FDA software quality requirements. We also reduce the risk of medical device recalls by ensuring that the software verification process is followed at every stage of development and produces high-quality, risk-free software for medical devices. Read our success story to know about our healthcare offerings.
About the Author: Sandip Nandwana
Sandip Nandwana is working with VOLANSYS as an Associate Project Manager. He has 16+ years of experience with IoT and embedded Product Engineering companies. Strong in project management, Agile, and SDLC execution. He has expertise in architecting, designing, and developing solutions focused on different IoT technology and expertise in software standard compliance for medical and IoT products. Domain experience in Street Light Controller, Smart City, and Smart energy meter products.