Únase a nosotros el 30 de abril: Presentación de la prueba CT de Parasoft C/C++ para pruebas continuas y excelencia en el cumplimiento | Regístrese ahora

Tiempo de lectura: 8 minutos.

General

Smiths Medical es un fabricante líder mundial de dispositivos médicos especializados que ofrece soluciones innovadoras y que salvan vidas para los mercados de atención médica del mundo. La compañía se especializa en terapia de infusión, acceso vascular y cuidados vitales. Sus productos se encuentran en entornos hospitalarios, de emergencia, domiciliarios y de atención especializada y se utilizan durante cuidados intensivos y críticos, cirugía, cuidados posoperatorios y como apoyo en el manejo de enfermedades crónicas.

Es imperativo ofrecer software seguro y de alta calidad para sus dispositivos médicos. Por esa razón, Smiths Medical construye sus dispositivos médicos críticos para la seguridad con un riguroso proceso de ingeniería en el que las pruebas de software desempeñan un papel fundamental para la verificación y validación.

Vea una vista previa de la presentación de Smiths Medical en la Cumbre de cumplimiento y pruebas de software integrado 2021. Descubra cómo evolucionaron sus pruebas de software a un desarrollo basado en pruebas para lograr una cobertura de código superior al 70%.

PRESENTACIÓN COMPLETA DISPONIBLE AQUÍ >>

Los desafios

El desarrollo de software para dispositivos médicos es difícil debido a los requisitos de seguridad y protección. La verificación y validación del software juega un papel importante a la hora de demostrar que se ha implementado la funcionalidad deseada y que se ha incorporado la seguridad y la protección a los productos.

La automatización de pruebas es una base importante del enfoque de pruebas de Smiths Medical. Los intentos anteriores de adoptar herramientas no fueron completamente exitosos. El equipo de desarrollo estaba buscando una solución para respaldar todo su esfuerzo de prueba con un nuevo enfoque y mentalidad de desarrollo impulsado por pruebas (TDD).

La pirámide de automatización de pruebas.
La pirámide de pruebas

Estos son algunos de los desafíos que enfrentó el equipo.

Fallo previo de las herramientas de automatización de pruebas. El equipo de desarrollo de software probó otras herramientas de automatización de pruebas en el pasado. Fracasaron por varias razones. La automatización de pruebas fue fundamental para pasar al desarrollo impulsado por pruebas. El equipo buscó una solución para satisfacer sus necesidades con un extenso proceso de evaluación.

Encontrar la solución adecuada para sus necesidades y procesos. El equipo de desarrollo llevó a cabo una evaluación exhaustiva de las soluciones comerciales y de código abierto para garantizar que su próximo intento de automatización de pruebas tuviera éxito. Necesitaban herramientas para cumplir con sus requisitos técnicos y una solución que se adaptara a su proceso. El equipo quería soluciones con una presencia sustancial en el mercado y una curva de aprendizaje razonable, pero evitó la dependencia del proveedor.

Transición del equipo de software a nuevas herramientas y TDD. Smiths Medical estableció el objetivo de trasladar a todo el equipo de software a TDD para que las pruebas sean parte integral de su proceso de desarrollo y su canalización de software. Para lograr esto, necesitaban más que herramientas y automatización de pruebas. Necesitaban una mentalidad diferente. La empresa buscaba un cambio en su cultura de desarrollo que aumentaría la calidad, la seguridad y la protección de sus productos a través de pruebas mejores y más completas sin afectar los calendarios de entrega y los presupuestos.

El enfoque

La búsqueda exhaustiva de una solución de prueba integrada para cumplir con los requisitos de Smiths Medical incluyó evaluaciones de opciones comerciales y de código abierto.

Búsqueda de una solución de automatización de pruebas

La evaluación de herramientas incluyó a siete proveedores comerciales y una selección de herramientas de código abierto. Los requisitos de Smiths Medical incluían el apoyo a las pruebas de abajo hacia arriba de la pirámide de pruebas:

Comparación de proveedores de Smiths Medical

FeatureCompetidor AparasoftOpen Source
Test ManagerYYY
Prueba unitariaYYY
Prueba stub / simulacroYYY
Examen de integraciónYYY
Cobertura de códigoYY-
Análisis estáticoYY-
CCMYY-
La generación del informeYY-
Integración CIYYY
Integración IDE-YY
Ejecutar en el objetivoYY-
Soporte Linux-YY
Kit de calificación-Y-

Parasoft cumplió con estos requisitos y fue seleccionado como proveedor para ayudar al equipo a lograr sus objetivos de prueba.

“Una de las grandes áreas que supuso un desafío en el pasado fue la curva de aprendizaje del producto. Las herramientas que habíamos usado en el pasado eran demasiado complicadas para satisfacer las necesidades del equipo ”, dijo Bill Schiller, arquitecto principal de software senior de Smiths Medical.

“Otro gran criterio para nosotros es la presencia en el mercado. Queremos un socio que se quede con nosotros a largo plazo. Sin embargo, el lado opuesto de esa moneda es un bloqueo de vendedor. Una de las cosas que nos desafían como tomadores de decisiones en nuestra organización es '¿cuáles son las alternativas?' ¿Estaremos atrapados en esta solución para siempre? Sentimos que esto era un problema menor para nosotros con Parasoft ".

Evolucionando a TDD

Smiths Medical reconoció que necesitaban ir más allá de la simple adopción de la automatización de pruebas unitarias. Su plan era mover al equipo a un desarrollo basado en pruebas donde el diseño / refactorización y las pruebas están estrechamente entrelazados. Las pruebas se escriben como una descripción de la funcionalidad esperada de la unidad y el código se escribe y se factoriza para garantizar que las pruebas pasen.

Imagen del ciclo TDD.
El ciclo TDD

Si bien el cambio a TDD puede incurrir en algunos costos iniciales, existen beneficios significativos en términos de tasas de defectos más bajas, que incluyen:

  • Un ciclo de retroalimentación rápido para desarrolladores.
  • Menos tiempo dedicado a depurar.
  • Construyendo código "sólido" con interfaces limpias.

Una parte importante del cambio a TDD fue la automatización de pruebas y las herramientas que respaldan este proceso. Parasoft C / C ++test ayuda a que las pruebas sean más valiosas en términos de su relación y trazabilidad con los requisitos, la cobertura del código, los elementos de trabajo, las compilaciones y otros artefactos. La prueba C / C ++ también facilita el desarrollo de pruebas unitarias con creación y ejecución de pruebas automatizadas y un mantenimiento de pruebas mucho más simple.

Ejecución de pruebas de host, simulador y destino

Debido a la naturaleza de sus productos, Smiths Medical necesitaba una solución de prueba que respaldara su entorno de desarrollo integrado basado en ARM. Pudieron generar y ejecutar pruebas en su entorno host, simulador de destino y un dispositivo de destino real utilizando la prueba Parasoft C / C ++.

Imagen del entorno de pruebas de Smiths Medical con plataformas de host, emulador y destino.
Entorno de pruebas de Smiths Medical con plataformas de host, emulador y destino

Un aspecto crítico de su solución fue la capacidad de integrarse con su entorno de desarrollo y su canal de CI, así como con la cadena de herramientas integradas. Además, su proceso de desarrollo requería la recopilación de resultados de pruebas y métricas, como la cobertura del código, directamente desde el dispositivo de destino.

Recopilación de métricas y cobertura de código

El desarrollo de software crítico para la seguridad, como el realizado en Smiths Medical, debe garantizar pruebas exhaustivas. El código que no se prueba no se puede validar ni confirmar por motivos de seguridad.

Además, los requisitos deben validarse con pruebas y se necesita la trazabilidad entre los requisitos, el código y las pruebas. La recopilación de código y cobertura de prueba (en el host y el destino) fue fundamental para el proceso de desarrollo de software del equipo junto con informes de alto nivel con análisis y tendencias.

Los beneficios de la solución

Después de considerar una variedad de opciones de soporte de herramientas para su evolución a TDD, incluidas las soluciones de código abierto, Smiths Medical eligió la prueba Parasoft C / C ++ por muchas razones.

Soporte integral para requerimientos. Los requisitos técnicos y comerciales son importantes a la hora de evaluar y seleccionar la herramienta adecuada. Para Smiths Medical, una curva de aprendizaje baja, presencia en el mercado de proveedores, costos de adopción reducidos en general y una integración perfecta en su canal de CI estaban en la parte superior de su lista. La prueba de Parasoft C / C ++ marcó todas las casillas.

Costos de mantenimiento reducidos en comparación con las soluciones de código abierto. Si bien fue un firme defensor del código abierto, Smiths Medical se dio cuenta de que adoptar una solución de código abierto completo significaba dedicar recursos para la capacitación, el mantenimiento y el uso de herramientas. Se estima que es al menos el 25% de la carga de trabajo de un desarrollador de tiempo completo de forma continua.

Calificación de herramientas para aplicaciones críticas para la seguridad. Un criterio que a menudo se pasa por alto para las herramientas de desarrollo de software es la calificación y la disponibilidad de kits de calificación. Los kits de calificación de herramientas para la prueba de Parasoft C / C ++ automatizan el proceso de creación de la documentación de respaldo requerida para la calificación de herramientas de análisis estático, pruebas unitarias y requisitos de cobertura. Estos kits reducen el potencial de error humano y reducen la cantidad de tiempo que lleva realizar la calificación de la herramienta.

Automatización de pruebas con soporte flexible para pruebas basadas en host y en destino. La ejecución, el análisis y la capacidad de cobertura de código basados ​​en el host y en el objetivo fueron fundamentales para respaldar el entorno de prueba de Smiths Medical. Debido a la naturaleza del desarrollo de sus productos, necesitaban validar en los sistemas host y de destino y la prueba de Parasoft C / C ++ integrada en su entorno de prueba existente y en la canalización de CI / CD.

Informes centralizados para monitorear el progreso y el éxito. Medir el éxito es vital en cualquier proyecto y Smiths Medical hizo uso de Parasoft DTP para rastrear su progreso en métricas como la complejidad del código y la cobertura del código. Su filosofía era monitorear la tendencia en la dirección positiva versus el valor de la métrica en sí.

Los resultados

Smiths Medical ha evolucionado sus pruebas hasta un desarrollo impulsado por pruebas y ha obtenido numerosos resultados positivos de su adquisición y adopción de la prueba Parasoft C / C ++ para su desarrollo de software crítico para la seguridad, que incluyen:

Capacitación exitosa del equipo e integración de herramientas. Cambiar la mentalidad de los desarrolladores era parte del objetivo de Smiths Medical. Requería capacitación (incluida la capacitación sobre productos de Parasoft) y superar la curva de aprendizaje tanto para las herramientas como para los nuevos procesos. El equipo adoptó un enfoque por fases. Parasoft brindó capacitación inicial y consultoría para las herramientas y los nuevos procesos. Otra fase de la capacitación se produjo después de que el equipo de desarrollo de Smiths Medical puso las herramientas en uso dentro de su canal de CI y desarrollo diario.

Lograron adoptar TDD e incorporar la automatización de pruebas en su proceso de desarrollo. Tanto el cambio a la automatización como TDD dieron como resultado una mejor eficiencia y resultados de las pruebas.

Estabilidad de prueba mejorada. Las pruebas unitarias son código. Al igual que cualquier código, son propensos a errores y errores y requieren mantenimiento. Smiths Medical estaba luchando con fallas en las pruebas que requerían demasiado tiempo de depuración para determinar si la unidad bajo prueba estaba rota o si era la prueba en sí. Una vez que pasaron a TDD y la automatización con la prueba Parasoft C / C ++, la estabilidad de la prueba aumentó drásticamente. El mantenimiento de las pruebas fue más fácil y las fallas en las pruebas disminuyeron en general.

Mejor cobertura de código y menor complejidad del código. El aumento de la cobertura del código fue fundamental para Smiths Medical debido al aspecto de seguridad de sus productos. Necesitaban mostrar la debida diligencia al probar su software y demostrar que la cobertura de código adecuada es parte de eso. Con este fin, utilizaron la prueba Parasoft C / C ++ para instrumentar el código y capturar su cobertura de código, y Parasoft DTP para rastrear la cobertura del código y las métricas de complejidad del código. En ambos casos, las tendencias han ido mejorando con el tiempo. La cobertura del código ahora supera el 70%. La complejidad del código disminuyó por debajo de 15 según las mediciones de complejidad ciclomática de McCabe. De hecho, ahora era más fácil que nunca aumentar la cobertura gracias a la generación, ejecución y recopilación de resultados de pruebas automatizadas.

La tasa de defectos abiertos a cerrados tiende a cero. Smiths Medical observó que el número de pruebas estaba aumentando debido a los esfuerzos por obtener una mejor cobertura de código, lo que se atribuía directamente a sus nuevos procesos y automatización. Sin embargo, en lugar de aumentar las fallas en las pruebas junto con el aumento de las pruebas, disminuyeron. Además, la proporción de defectos abiertos y cerrados tenía una tendencia a cero. Esto significaba que la calidad de los casos de prueba estaba mejorando en términos de claridad y establecía correctamente los resultados de prueba esperados. Hubo más pruebas y más pruebas aprobadas. También hubo una reducción en el trabajo manual necesario para corregir defectos o las propias pruebas.

Imagen de la tendencia de los resultados de las pruebas de Smiths Medical a lo largo del tiempo. Las pruebas totales están aumentando, pero la proporción de fallas está disminuyendo.
Los resultados de las pruebas de Smiths Medical tienen una tendencia a lo largo del tiempo. Las pruebas totales están aumentando, pero la proporción de fallas está disminuyendo.

Calificación de herramientas optimizada. Los kits de calificación de Parasoft cubren todas las capacidades de la prueba Parasoft C / C ++ para cumplir con los requisitos de análisis estático, pruebas unitarias y cobertura de código para software de seguridad crítica al mismo tiempo. Sin esto, Smiths Medical tendría que calificar individualmente varias herramientas en su cadena de herramientas, lo que resultaría en una importante duplicación de esfuerzos.

Da el siguiente paso

Descubra cómo su organización puede superar los desafíos del desarrollo de software de dispositivos médicos utilizando un enfoque SDLC integrado.

  • Industria: Dispositivos médicos
  • Tamaño de la empresa: 7,500
  • Ubicación: San Clemente, California
  • Solución: Prueba C / C ++