Logotipo de Parasoft

¡Descubre GoogleTest, con certificación TÜV y la tecnología Agentic AI para pruebas de C/C++!
Obtenga los detalles »

Fondo geométrico con toques de azul y verde.
Imagen de portada del informe técnico "Cómo reducir drásticamente el riesgo en el desarrollo de software de dispositivos médicos"

White Paper

Cómo reducir drásticamente el riesgo en el desarrollo de software de dispositivos médicos

¿Quieres un resumen rápido antes de empezar? Empieza a continuación.

Noticias

El desarrollo de software para dispositivos médicos se enfrenta a una creciente complejidad debido a las cargas regulatorias en torno a las pruebas de cobertura de código. La guía 510(k) de la FDA exige métricas de cobertura de código para dispositivos de Clase II y Clase III, aunque los requisitos varían según la clasificación.

Soluciones de pruebas automatizadas como Parasoft C / C ++test y Parasoft DTP medir la cobertura del código automáticamente e integrarse con los procesos modernos de SDLC, reduciendo el riesgo y aumentando la confianza en la seguridad de los dispositivos. Estas herramientas ayudan a los equipos a cumplir con las recomendaciones de la FDA y facilitan la preparación de la documentación regulatoria. Europa recurre cada vez más a los estándares de la FDA estadounidense a medida que el desarrollo de productos médicos se globaliza.

Introducción

La mayoría de nosotros hemos sido beneficiarios de dispositivos médicos, desde tensiómetros comunes hasta oxímetros de pulso económicos disponibles en farmacias locales, desde escáneres de tomografía computarizada operados por médicos hasta máquinas de resonancia magnética. Todos están sujetos a la regulación del gobierno estadounidense a través de la FDA.

La clasificación de los dispositivos depende del uso previsto y de las indicaciones de uso. Además, la clasificación se basa en el riesgo; es decir, el riesgo que el dispositivo representa para el paciente o el usuario es un factor clave para su clasificación. La Clase I incluye los dispositivos con el menor riesgo, mientras que la Clase III incluye los de mayor riesgo. Como se indicó anteriormente, todas las clases de dispositivos están sujetas a Controles Generales. Los Controles Generales son los requisitos básicos de la Ley de Alimentos, Medicamentos y Cosméticos (FD&C) que se aplican a todos los dispositivos médicos de Clase I, II y III. Equivalencia en la Notificación Previa a la Comercialización 510(k).

La mayoría de los dispositivos médicos requieren una notificación previa a la comercialización 510(k) de la FDA o un registro simple si están exentos. Sin embargo, si un dispositivo se implanta o presenta un riesgo potencial irrazonable de enfermedad o lesión, es probable que sea un dispositivo de Clase III que requiere aprobación previa a la comercialización (PMA). Los dispositivos nuevos e innovadores sin ejemplos previos ("dispositivos predicados") son automáticamente de Clase III, pero podrían calificar para el proceso de novo en lugar de la PMA. Solo el 10% de los dispositivos regulados por la FDA son de Clase III, pero son los que más se asocian con un mayor riesgo.

Por qué es crucial mitigar el riesgo en los dispositivos médicos

La clasificación utilizada por la FDA se basa en gran medida en el riesgo. Todos los dispositivos eléctricos siguen el estándar IEC-60601 de seguridad eléctrica, pero cada vez más los dispositivos médicos contienen un software importante.

El estándar de software más asociado con el proceso de la FDA es IEC 62304. Describe el ciclo de vida del desarrollo de software para dispositivos médicos, detallando las actividades y tareas necesarias para un diseño y mantenimiento seguros. El software puede ser una parte integrada o integral del dispositivo, o bien, el software en sí mismo puede ser un dispositivo médico.

La norma IEC 62304 especifica los requisitos del software como un subconjunto de los requisitos para un sistema médico eléctrico programable (PEMS). El software es claramente una parte del proceso de verificación de la FDA, desde la especificación de los requisitos del software hasta la integración de elementos de software en un sistema de software.

Nadie estaría muy contento si los dispositivos o equipos médicos causaran dolor, sufrimiento o condiciones potencialmente mortales. A veces lo hacen, a pesar de los mejores esfuerzos de diseñadores, ingenieros, programadores, gerentes de producto, responsables de cumplimiento normativo y todos los involucrados en diseños complejos.

Las clasificaciones han cambiado con los años: la telesalud solía ser de Clase II, pero en muchos casos se ha relajado a Clase I. Por otro lado, las directrices de seguridad se han reforzado debido a las amenazas de adquisición por botnets del IoT.

Hay al menos dos razones para querer reducir el riesgo:

  1. Costos financieros Las demandas y la pérdida de negocios futuros por una mala reputación superan con creces el coste de mitigar riesgos. El uso de herramientas de software automatizadas reduce costes al integrarse con Agile DevOps o procesos de compilación en cascada, lo que reduce la necesidad de recursos de prueba adicionales, lo que acorta el tiempo de desarrollo y prueba.
  2. A nivel personalLos ingenieros, desarrolladores, gerentes de producto e ingenieros de trenes de lanzamiento desean que sus productos funcionen correctamente. Ningún ingeniero de verdad quiere defectos no detectados ni posibles desastres. El uso de herramientas de software sofisticadas para realizar análisis de cobertura de código ahorra tiempo y dinero y reduce el riesgo. Tener ingenieros más felices puede no ser un objetivo corporativo importante, pero cuando eso sucede, la empresa ciertamente se beneficia.
Primer plano de un desarrollador con gafas. Se puede ver el código reflejado en ellas.

Por qué es importante la cobertura del código

Cada vez más, el software ofrece más funcionalidades en los dispositivos médicos modernos, desde la conexión a internet hasta el almacenamiento y análisis de datos. El desarrollo de casos de uso de hardware ahora debe incluir casos de uso de software, y en muchos casos, el número de combinaciones y permutaciones es cada vez mayor.

¿Cómo podemos estar seguros de que tenemos casos de prueba para todas las condiciones? Medir qué porcentaje del código de software se prueba realmente es tarea de las herramientas de cobertura de código. Las herramientas de proceso manual de AMFE solo ofrecen resultados limitados. Si un software no se prueba, no se debe confiar en él. Esto podría resultar en dispositivos médicos inseguros.

El proceso 510(k) de la FDA requiere que se implemente la norma IEC 62304, que exige los siguientes procesos: desarrollo de software, mantenimiento de software, resolución de problemas, gestión de riesgos y gestión de configuración.

El papel que desempeña la cobertura del código de software en la guía de la FDA

Frente a la creciente complejidad y a los nuevos lenguajes y tecnologías informáticas, la importancia de automatizar la mayor parte posible del proceso de desarrollo y prueba es clave para mejorar la calidad.

Un factor clave en esto son las pruebas. La dificultad en las pruebas reside en desarrollar casos de prueba que ejerzan no solo rutas comunes, sino también casos extremos. Como se mencionó anteriormente, la FDA considera crucial la verificación.

Las normas para la autorización de comercialización de la FDA Clase II y Clase III son difíciles de descifrar, ya que la FDA no ha actualizado sus directrices en varios años. No establecen el ciclo de vida del desarrollo de software, pero sí la gestión de riesgos. Y se basan en una norma IEC para ello.

Lo que a veces falta es comprender el papel que pueden desempeñar las herramientas de análisis de cobertura de código. El análisis de cobertura de código facilita la generación de datos de prueba, la automatización de análisis y la generación de informes sobre el estado del dispositivo bajo prueba (DUT). También permite garantizar a la FDA, y a ustedes mismos, que se han probado todas las rutas críticas y condiciones límite.

Requisitos de la FDA

Se podría pensar que la FDA emitiría normas claras sobre los tipos de análisis y, en especial, la cobertura de código necesarios para los dispositivos de Clase II y Clase III, pero lamentablemente no lo hace. Ofrecen unos "Principios Generales de Validación de Software" bastante antiguos, que describen los principios para validar el software de dispositivos médicos, así como el software utilizado para diseñar, desarrollar o fabricar dispositivos médicos. Si usted fabrica un dispositivo o equipo médico, debe cumplir con los requisitos y directrices de este documento. Los productos clasificados como Clase II o Clase III también deben contar con rigurosos controles de diseño, desarrollo, pruebas, gestión de cambios y análisis de riesgos.

Si su software se utiliza (se incorpora) en un producto, debe validarse. Si el software constituye el producto completo, por supuesto, debe indicar en su solicitud 510(k) cómo se validó. Sorprendentemente, el software utilizado en su creación también debe validarse, por lo que es importante seleccionar cadenas de herramientas de compilación y herramientas adyacentes certificadas para su uso en el desarrollo de sistemas críticos para la seguridad. Los productos Parasoft C/C++test y C/C++test CT cuentan con la certificación TÜV SÜD.

Desarrolladora femenina que trabaja en un entorno médico

Las mejores prácticas según lo explica la FDA incluyen:

  • Cobertura de estados de cuenta. ¿Se ha ejecutado cada instrucción del programa? Esto debería formar parte de cualquier dispositivo FDA 510(k) Clase II y III.
  • Cobertura de sucursales. ¿Se ha ejecutado cada rama (también llamada ruta DD) de cada estructura de control? Por ejemplo, dada una sentencia if, ¿se han ejecutado tanto la rama verdadera como la falsa? (Esto es un subconjunto de la cobertura de aristas). Esto debería formar parte de cualquier dispositivo FDA 510(k) Clase II y III.
  • Cobertura de condición/decisión modificada (MC/DC). Cada punto de entrada y salida del programa se ha invocado al menos una vez, cada condición de una decisión ha tomado todos los resultados posibles al menos una vez, y se ha demostrado que cada condición afecta el resultado de la decisión de forma independiente. Por lo tanto, el criterio MC/DC es mucho más sólido que la cobertura de condición/decisión. Según la experiencia, la cobertura de código MC/DC ha sido ampliamente adoptada por empresas que fabrican productos de Clase III de la FDA.

Beneficios adicionales de la cobertura del código

No solo hay ventajas obvias al aumentar la confianza en los dispositivos médicos, sino que también hay otros beneficios. Por ejemplo, durante el desarrollo, la herramienta de cobertura de código puede supervisar qué fragmentos de código se introdujeron pero no se probaron. Monitorear los cambios en la base de código a lo largo del tiempo aumenta la visibilidad del producto.

No solo le dará confianza a la FDA en su producto, aumentando así la probabilidad de autorización de comercialización o aprobación, sino que también reduce la carga en desarrollo, calidad, cumplimiento y otras funciones. Esto es lo correcto: una decisión de "sí, deberíamos hacerlo para mejorar la eficiencia y reducir costos".

Automatización de pruebas de software

No hay sustituto para Adopción de soluciones de pruebas de software automatizadas que ya se han utilizado en el ámbito de la seguridad crítica. Aquí es donde entra Parasoft. El software integrado en una gran cantidad de dispositivos médicos, equipos médicos y otras aplicaciones que requieren seguridad ha sido probado por Parasoft C/C++test. Solución de pruebas totalmente integrada para el desarrollo de software C/C++ y Parasoft DTP cuentan con la certificación de TÜV SÜD, lo que garantiza que estos productos han sido probados según la norma IEC 62304 para aplicaciones de destino, tanto basadas en host como integradas. Por lo tanto, cumplen con los requisitos de las normativas nacionales, regionales e internacionales de seguridad funcional.

Al implementar una potente solución automatizada de pruebas e informes analíticos, los desarrolladores de software en pruebas (SDET) evitan recurrir a métodos manuales laboriosos y propensos a errores. En su lugar, pueden centrarse en sus actividades principales de desarrollo y aumentar la profundidad y el alcance de sus pruebas para ofrecer software de alta calidad. Una solución como C/C++test, que cumple con los requisitos de la FDA y es fácil de usar, emplea pruebas estáticas y dinámicas, mientras que DTP gestiona el progreso hacia el cumplimiento mediante un panel central de informes y análisis.

Métricas de cobertura de código procesables

Automatizar la generación de casos de prueba unitarios Es ideal para pruebas de dispositivos médicos cuando se utiliza una metodología ágil como Scrum y DevOps, ya que uno de los requisitos es que los ingenieros de desarrollo escriban casos de prueba unitaria. Como parte del proceso de compilación y antes de que se registre el código, C/C++test ejecuta automáticamente casos de prueba unitaria para garantizar que el código esté libre de regresiones y otros errores. Además, con un conjunto desplegable de opciones configurables, Parasoft recopila las métricas de cobertura de código necesarias.

Los equipos también pueden ejecutar las soluciones de Parasoft tanto desde entornos de desarrollo integrados (IDE) como desde la línea de comandos o el shell. Encuentre la información completa. Lista de cadenas de herramientas compatibles aquí.

Captura de pantalla de la prueba C/C++ con el código resaltado en verde

Cobertura de código resaltada en verde y opciones de cobertura de código en C/C++test.

Los equipos pueden ver análisis prácticos en cualquier navegador. DTP consolida los resultados de las pruebas en paneles inteligentes e informes detallados.

Captura de pantalla del panel de cobertura de DTP.

Panel de cobertura de código completo de Parasoft DTP.

Integración de la cobertura de código en CI/CD para el cumplimiento en dispositivos médicos

Las herramientas de cobertura de código, como las de Parasoft, pueden integrarse en un flujo de trabajo de integración/entrega continua, de modo que la solución se encargue de la mayor parte del trabajo pesado. Dado que los dispositivos médicos son cada vez más blanco de ataques, la presión sobre los equipos de desarrollo e ingeniería, que intentan incorporarse a DevOps y ahora se les exige que también consideren DevSecOps, es enorme.

Afortunadamente, la capacidad de Parasoft de ejecutarse en cualquier cantidad de IDE y/o desde la línea de comandos significa que la integración ya está proporcionada y requiere poca o ninguna configuración.

Las soluciones de Parasoft pueden probar aplicaciones que se ejecutan en los siguientes sistemas:

  1. Hardware de destino, normalmente una placa integrada
  2. PC anfitrión
  3. PC host que utiliza un simulador

Si su dispositivo médico es de Clase III según la FDA, aunque requiere mayor esfuerzo, se recomienda realizar pruebas en el hardware de destino, ya que los estándares son mucho más estrictos para la Clase III. Se puede argumentar que la Clase II es aceptable para ejecutarse en el host.

Recomendaciones finales

A continuación se presentan cinco pasos para abordar la implementación.

  1. Defina qué herramientas de cobertura de código utilizar.
  2. Comuníquese con su regulador de la FDA, si puede, y analice su estrategia de mitigación de riesgos.
  3. Integrar la herramienta para recolectar datos.
  4. Comience a definir una estrategia sobre dónde recopilar datos de cobertura de código y asigne esto a su estrategia de prueba general.
    • ¿Es posible y factible recopilar una cobertura de código del 100% a nivel de prueba unitaria?
    • Ejecute la cobertura de la aplicación para ver lo que tiene y lo que necesita completarse.
  1. Póngase en contacto con Parasoft y discuta su proyecto con uno de los expertos, quien puede ayudarle a guiarlo.
    aún más.
Equipo de desarrolladores

¿Listo para sumergirte más profundamente?

Obtenga el documento técnico completo