A leading pharmaceutical company in US, wanted to review their Electroporation device firmware code and develop unit tests for the firmware modules.
The Solution consists of:
- Reviewing firmware code
- Windows based Unit test application for 2 different models of Electroporation device firmware
- Automated build environment for CI and unit test execution
- Gadgeon brought in an additional value add by bringing in a Unit Level test code generation tool. The tool generates a uniform test case outline based on header files and only variable content needs to be filled in developer
Outcome and Benefits Delivered
- Reviews were done and improvements incorporated
- Implemented unit tests for all firmware modules and verified
- Unit test reports were generated with automated build environment and reports submitted to FDA
- Reduced the overall effort and schedule
The company is developing an Electroporation device for delivering plasmid DNA into muscle or skin effectively. Electroporation is the method of applying short-duration high-voltage pulses, on delivering medicine. Pulse sequence and parameters are defined in OP Block (Operation Block), which will be programmed into the device.
Device software is developed on the Cortex M processor(s) in the C++ language. There are two MCUs in the system. One of them using RTX RTOS and other MCU is running on bare metal. The software is developed as a Class C medical device following IEC 62304:2015 and ISO 14971 Risk management standards.
- Gadgeon collaborated with the client in reviewing the firmware code and providing suggestion on improvements
- Created a tool to generate unit test cases based on the input source code. This reduced ~30-40 % overall effort and schedule. Based on header file of each unit, a well structured test case Skelton is generated and only variable content needs to be filled in by unit tester.
- Developed unit tests for the firmware modules
- Done integration with static code analysis and code coverage analysis tools
- Created a Jenkins automated build environment that generates reports for the tests.