• No hay sugerencias porque el campo de búsqueda está vacío.

Pruebas automatizadas de software para el mundo GxP

Author Avatar
Michaël Hooreman, Life Science Consultant at QbD Group
Software Solutions & Services
Pharma & Biotech

¿Tienes problemas con la validación de CSV y la automatización de pruebas? ¿Cansado de volver a validar en cada sprint? Descubre consejos de expertos para reducir el tiempo y el presupuesto y aumentar la cobertura de la validación en nuestra última entrada del blog sobre pruebas de software automatizadas para el mundo GxP.

Pruebas automatizadas de software para el mundo GxP - QbD Group
19:06

Las pruebas automatizadas de software son cada vez más cruciales en el mundo de la GxP, donde Pharma 4.0 es el futuro, el MDR de la UE está afirmando su influencia y los sistemas de gestión de la calidad dependen cada vez más de las herramientas electrónicas. Estos avances vienen acompañados de crecientes presiones normativas y de mejores prácticas [An11, GAMP5]. La automatización de las pruebas de software puede ayudar a su empresa a prepararse para el futuro.

 

Considerar la automatización de las pruebas de software, es dar forma a tu empresa para el futuro.

 

Sin embargo, hay varios factores a tener en cuenta a la hora de implantar la automatización de las pruebas de software, como por ejemplo

  • reducir el tiempo y el presupuesto asignados a la validación de sistemas informáticos (CSV) o al aseguramiento de sistemas informáticos (CSA)

  • aumentar la confianza en los sistemas informatizados

  • y garantizar que las inversiones realizadas en automatización aporten un valor significativo.

Además, pueden surgir problemas derivados de la compatibilidad de la revalidación obligatoria con la agenda de la empresa, lo que puede aumentar los riesgos durante las auditorías.

En este artículo, profundizaremos en los diversos aspectos de las pruebas automatizadas de software, proporcionándole una visión global y las consideraciones esenciales para este prometedor viaje, con el objetivo último de alcanzar el éxito.

 

¿Qué es (para qué sirve) la comprobación automatizada de software?

 

¿Qué son las pruebas automatizadas de software y cómo pueden ayudarnos en diversas tareas de validación automática de sistemas? Para responder a esta pregunta, debemos explorar algunas familias de herramientas y sus aplicaciones.

En primer lugar, veamos ejemplos de dónde pueden ser útiles estas herramientas antes de resumirlas en un cuadro general.

Algunas familias de herramientas de pruebas automatizadas de software

1. Herramientas de gestión de pruebas

La agrupación de pruebas para garantizar que se cubren tanto los riesgos como los requisitos y la automatización de la matriz de trazabilidad es un aspecto crucial de las pruebas automatizadas de software. Es necesario rastrear las pruebas ejecutadas, adjuntar pruebas a esas ejecuciones y documentar el entorno utilizado.

Además, es esencial determinar a qué características afectan los errores descubiertos y rastrear las huellas de las ejecuciones fallidas, al tiempo que se miden los progresos mediante KPI, teniendo en cuenta las limitaciones de tiempo y presupuesto.

Una vez corregidos los errores, es necesario volver a ejecutar algunas pruebas para confirmar la corrección y asegurarse de que no se produce ninguna regresión posterior, al tiempo que se rastrean los rastros de la implementación fallida. Tras el lanzamiento, deben conservarse los resultados de la ejecución de las pruebas para archivarlos, y deben seleccionarse pruebas específicas para futuras pruebas de regresión. Es importante demostrar el efecto de la selección de pruebas en la matriz de trazabilidad, y cada ejecución de prueba futura debe guardarse en un archivo independiente.

Todos los datos registrados durante el proceso de pruebas se ajustan a los principios ALCOA+.

 

1. Herramientas de gestión de las pruebas

La agrupación de pruebas para garantizar que tanto los riesgos como los requisitos estén cubiertos, y la automatización de la matriz de trazabilidad, es un aspecto crucial de las pruebas de software automatizadas. Es necesario realizar un seguimiento de las pruebas ejecutadas, adjuntar pruebas a esas ejecuciones y documentar el entorno utilizado.   

Además, es esencial determinar a qué características afectan los errores descubiertos y realizar un seguimiento de los rastros de las implementaciones fallidas, al tiempo que se mide el progreso mediante KPI, teniendo en cuenta las limitaciones de tiempo y presupuesto.

Después de corregir los errores, es necesario volver a ejecutar algunas pruebas para confirmar la corrección y asegurarse de que no se produzca ninguna regresión posterior mientras se realiza un seguimiento de los rastros de la implementación fallida. Después del lanzamiento, los resultados de la ejecución de las pruebas deben conservarse con fines de archivado y se deben seleccionar pruebas específicas para futuras pruebas de regresión. Es importante demostrar el efecto de la selección de pruebas en la matriz de trazabilidad, y cada ejecución futura de pruebas debe mantenerse en un archivo separado.

Todos los datos registrados durante el proceso de prueba se adhieren a los principios de ALCOA+.

Una herramienta de gestión de pruebas es una herramienta que apoya la planificación, programación, estimación, seguimiento, presentación de informes, control y finalización de las actividades de pruebas. [ISTQBGlo]

2. Herramientas de deducción de casos de prueba

Imagina una situación en la que hay diez parámetros, cada uno con cinco valores, que deben probarse en función de la evaluación de riesgos. Describir cada combinación de parámetros llevaría mucho tiempo.

También estamos reemplazando un sistema existente con un nuevo software y necesitamos asegurarnos de que el nuevo software proporcione las mismas respuestas que el anterior. Afortunadamente, el software antiguo sigue los principios de ALCOA+ y tenemos una base de datos de todas las decisiones y registros anteriores.

Para automatizar el proceso de creación de casos de prueba, creamos scripts, hojas de cálculo y extractos de bases de datos, entre otras herramientas.

3. Oráculos de prueba

Data exchange with authorities requires following a specific standard. The standard involves exchanging data via a comma-separated values file where the first and last lines include specifications such as file format, number of records, and timestamp, while each line in the middle represents a record with a fingerprint-based on complex mathematics.

As we replace our existing system with new software, we use test case deduction to test all different cases in the old database. To facilitate this process, we create two test oracles.

The first test oracle compares the decisions made by the new system with the decisions made by the old system stored in the old database. The second test oracle compares the output file with the authorities’ standard by checking each line, including fingerprint comparisons with its own calculations.

 

Un oráculo de pruebas es una fuente para determinar un resultado esperado para compararlo con el resultado real del sistema bajo prueba. [ISTQBGlo]

4. Códigos auxiliares (stubs) y controladores (drivers)

Como el sistema aún está en desarrollo, algunos componentes se pueden probar, pero es posible que ciertos componentes de entrada o salida aún no estén disponibles. Para superar este problema, creamos códigos auxiliares y controladores que reemplazan estos componentes con fines de prueba.

Una vez que el sistema esté disponible, requerirá un costoso dispositivo GC-MS para su operación. Como no tenemos el presupuesto para comprar uno para probar, lo reemplazamos con un trozo que replica el estado del dispositivo con un simple conjunto de luces.

Para asegurarnos de que nuestro plan de recuperación ante desastres funcione contra los fallos de GC-MS, debemos probar el software sin romper nuestro dispositivo GC-MS real. Para ello, utilizamos un código auxiliar para simular el evento de error.

Un controlador es un componente o herramienta temporal que sustituye a otro componente y controla o llama a un elemento de prueba de forma aislada. [ISTQBGlo] Un stub es una implementación esquelética o de propósito especial de un componente de software, utilizado para desarrollar o probar un componente que lo llama o depende de él. Sustituye a un componente llamado.[ISTQBGlo] A menudo, la palabra "driver" se utiliza tanto para stub como para driver.

5. Análisis de código estático

Para mejorar la capacidad de mantenimiento del código fuente por parte de los miembros del equipo, hemos implementado pautas específicas para el formato y la organización del código, que se describen en una instrucción de trabajo. Además, nos adherimos a las mejores prácticas para el lenguaje de programación, que incluyen el formato de código adecuado y evitar las características del lenguaje que se consideran malas prácticas.

Estas directrices se verifican automáticamente a través del análisis de código estático y se genera un informe durante la noche para garantizar el cumplimiento de las convenciones establecidas. Además, la herramienta se despliega en las máquinas de los desarrolladores para detectar e informar de cualquier infracción en tiempo real a medida que realizan cambios en el código.

 

El análisis estático es el proceso de evaluar un componente o sistema sin ejecutarlo, basándose en su forma, estructura, contenido o documentación. [ISTQBGlo]

6. Pruebas unitarias y de integración

El código fuente sigue una estructura clara que utiliza diferentes niveles de abstracción, y utiliza objetos y funciones para representar conceptos y acciones, respectivamente.

El comportamiento del software es predecible, lo que nos permite crear pruebas para cada función y objeto, así como para sus interacciones. Estas pruebas se ejecutan automáticamente para asegurarse de que el software se comporta como se espera y los resultados se asocian con el software compilado.

Además de comprobar el comportamiento del software, también utilizamos pruebas a nivel de código para medir el porcentaje de declaraciones y decisiones que se ejecutan durante esas pruebas.

Un enfoque para desarrollar el software es utilizar la metodología ágil de desarrollo basado en pruebas, que implica crear primero pruebas unitarias y de integración y desarrollar el código hasta que todas las pruebas se superen con éxito.

 

La prueba unitaria, o prueba de componentes, es un nivel de prueba que se centra en componentes individuales (hardware o) de software. [ISTQBGlo]

La prueba de integración es un nivel de prueba que se centra en las interacciones entre componentes o sistemas. [ISTQBGlo]

La prueba de integración de componentes es una prueba en la que los elementos de prueba son interfaces e interacciones entre componentes integrados. [ISTQBGlo]

7. Integración continua

Una vez que el desarrollador completa su trabajo, el código se agrega a un repositorio central de código fuente. Cada noche, utilizamos este repositorio central para construir el software y realizar pruebas unitarias y análisis de código estático. A continuación, conectamos los informes generados al software y los ponemos a disposición en un sitio web de intranet.

También creamos un informe que describe los cambios realizados desde la última compilación. Esto permite al equipo de QA acceder a la versión más actualizada del software con cierto grado de confianza y comprender qué modificaciones se han realizado.

 

La integración continua es un procedimiento automatizado de desarrollo de software que fusiona, integra y prueba todos los cambios tan pronto como son confirmados. [ISTQBGlo]

8. Automatizaciones de ejecución de pruebas de caja negra

Los scripts de prueba se han desarrollado para verificar las funciones del software con respecto a sus requisitos durante las cualificaciones de funcionamiento y de ejecución del proceso (OQ/PQ), lo que incluye la prueba de la interfaz de usuario.

Sin embargo, repetir estas pruebas con diferentes combinaciones de variables y realizar actividades de revalidación y regresión puede llevar mucho tiempo y desmotivar a los evaluadores.

Para hacer frente a esto, se ha implementado la automatización de pruebas de caja negra para automatizar la ejecución de estas pruebas.

Las pruebas de caja negra no necesitan conocer el código ni su organización; el software se ve como una caja negra. Lo contrario, donde encontramos por ejemplo el análisis estático de código y las pruebas unitarias, se denomina caja blanca.

Las técnicas de prueba de caja negra se basan en el análisis de la especificación de un componente o sistema. [ISTQBGlo]

Algunas actividades de prueba pueden basarse en el descubrimiento y adivinación de código, son técnicas de caja gris. Las pruebas de rendimiento y seguridad son algunos ejemplos.

Las técnicas de prueba de caja blanca se basan en la estructura interna de un componente o sistema. [ISTQBGlo]

Obsérvese que un controlador puede considerarse caja blanca cuando lo creamos (por ejemplo, llamamos a trozos de código), pero se utiliza la mayoría de las veces en un contexto de caja negra, en el que los probadores no pueden llamar directamente a trozos de código. Por otro lado, los oráculos pueden necesitar desarrollo para su creación, pero como no implican el código del software sometido a prueba, ese desarrollo es una actividad de caja negra.

La automatización de la ejecución de pruebas es el uso de software [...] para controlar la ejecución de las pruebas, la comparación de los resultados reales con los resultados esperados, el establecimiento de condiciones previas a las pruebas y otras funciones de control e información de las pruebas.

9. Herramientas de pruebas de rendimiento

Para garantizar que el sistema pueda manejar 100 conexiones simultáneas y terabytes de datos, empleamos una herramienta que genera 100 conexiones paralelas y envía datos continuamente hasta que se hayan procesado 100 terabytes. Las acciones de las conexiones pueden ser continuas o pausadas, y la herramienta proporciona informes sobre la capacidad de respuesta del sistema en todo el escenario. Esto nos permite verificar que el sistema puede manejar la carga requerida y proporciona información sobre posibles problemas de rendimiento.

Una herramienta de pruebas de rendimiento genera carga para un elemento de prueba designado y mide y registra su rendimiento durante la ejecución de la prueba. [ISTQBGlo]

10. Herramientas de pruebas de seguridad

Utilizamos una herramienta que realiza pruebas de seguridad mediante la aplicación de varios patrones de piratas informáticos para intentar violar la seguridad del software o hacer que no esté disponible. Se informan los resultados de cada prueba, indicando si el intento fue exitoso o fallido.

Panorama general: abordar algunos retos de las pruebas mediante la automatización

Resumamos estos ejemplos e intentemos definir estas familias. La imagen siguiente ofrece una visión general, en relación con las actividades del modelo V de GAMP5.

Figura 1 - Visión general de las herramientas de pruebas automatizadas de software

Pero también...

Las tareas de prueba también pueden beneficiar a automatizaciones que no son en sí mismas automatizaciones de pruebas. Por ejemplo:

  • Las condiciones previas del entorno de pruebas pueden conseguirse automáticamente mediante el uso de scripts de automatización. Esto es crucial, por ejemplo, después de ejecutar pruebas destructivas (en cuyo caso podemos restaurar el entorno a partir de una copia de seguridad), o cuando se ejecutan pruebas en un entorno que debe imitar al de producción (exportar desde producción e importar a prueba cada noche, por ejemplo).
  • Marcos de validación de datos que pueden probar datos contra especificaciones o descubrir especificaciones de datos a través de la exploración automatizada; esto no es tan poderoso como un oráculo, pero puede ser un gran componente de oráculo.
  • La inteligencia artificial y los algoritmos de aprendizaje automático también pueden producir grandes oráculos... una vez validados. Obsérvese que la sensibilidad, especificidad, precisión y recuerdo, utilizados para evaluar esos algoritmos, son de hecho una comparación entre los resultados reales y los esperados. Como los conjuntos de datos son enormes, esas comparaciones se hacen utilizando oráculos basados en conjuntos de datos de validación especiales.


¿Por dónde empezar con las pruebas automatizadas de software?

Para empezar con las pruebas de software automatizadas, es esencial tener conocimientos técnicos en teoría de pruebas de automatización y programación. Estos conocimientos son necesarios para que las personas se formen en pruebas de software automatizadas. Los desarrolladores pueden crear y ejecutar pruebas unitarias y realizar análisis estáticos de código, pero comprender el panorama completo lleva tiempo. Las herramientas especializadas, como las de seguridad y rendimiento, requieren conocimientos específicos.

El primer paso es considerar qué aspectos de las pruebas de software desea automatizar, por qué quiere hacerlo y qué espera conseguir. Para responder a estas preguntas, puede leer artículos y recursos sobre el tema, como los programas de estudios ISTQB.

Un buen punto de partida para las pruebas de software automatizadas es empezar por los aspectos más sencillos, como las pruebas unitarias y el análisis estático del código. A continuación, puede crear una suite de regresión fiable y automatizarla para beneficiarse de las iteraciones. También se pueden tener en cuenta los modelos de madurez y otros consejos para mejorar la fiabilidad y la eficacia de las pruebas de software automatizadas.

 

Beneficios, costes, riesgos y limitaciones

Antes de decidirse por la automatización de las pruebas de software, hay que tener en cuenta algunas cosas [ATMBook, CATL-TM § 6.2]. Aunque algunos de ellos son obvios, la lectura del resto de este artículo puede darte una buena perspectiva sobre los demás puntos. En cualquier caso, puedes confiar en los expertos de QbD para que te ayuden...

El tema de las pruebas automatizadas de software puede ser bastante complejo, y las decisiones que se tomen pueden tener un gran impacto en el éxito o el fracaso de un proyecto. Sin embargo, con la orientación y el conocimiento adecuados, las pruebas automatizadas pueden ayudar a hacer realidad los sueños de un equipo. En QbD, nos esforzamos por proporcionar el apoyo y la experiencia necesarios para garantizar que los proyectos de nuestros clientes tengan éxito y que se alcancen sus objetivos.

 

Figura 2 - Ventajas, costes, riesgos y limitaciones de las pruebas automatizadas de software (haga clic para ampliar)

Beneficios de las pruebas de software automatizadas

Las pruebas de software automatizadas proporcionan numerosos beneficios, el más evidente de los cuales es el ahorro de tiempo y costos. También reduce la variabilidad en la planificación, aumenta la trazabilidad y produce resultados más consistentes a través de la evaluación sistemática. Las pruebas automatizadas también permiten probar elementos inaccesibles que no pueden ser evaluados por humanos, y reduce la carga de las pruebas, haciéndolas menos tediosas y más atractivas para los evaluadores.

Costos de las pruebas de software automatizadas

La introducción de una herramienta de prueba automatizada implica costos iniciales y continuos.
 
Adquirir conocimientos sobre la herramienta es un paso inicial necesario. Además, hay tareas como seleccionar y adquirir la herramienta, e integrarla en el ecosistema de la empresa y otras herramientas. Estas tareas requieren recursos y tiempo.
 
De forma continua, hay que tener en cuenta los costes de propiedad de las herramientas de  IT tradicionales, así como el mantenimiento y la adaptación de las pruebas a otras plataformas. El uso de la herramienta debe evaluarse y mejorarse constantemente para garantizar que siga siendo eficaz. Cualquier falta de disponibilidad de la herramienta podría afectar potencialmente a la estrategia empresarial.

Riesgos de las pruebas de software automatizadas

Además de los riesgos habituales de las nuevas tecnologías (gestión del cambio, malas expectativas, evaluación del mantenimiento, mala evaluación del retorno de la inversión, etc.), las personas podrían utilizar la herramienta de forma demasiado sistemática, lo que llevaría a una reducción de la eficiencia (automatización de pruebas no recurrentes o difíciles de automatizar), los probadores podrían reducir su experiencia en las pruebas manuales y su compromiso, lo que llevaría a una menor cobertura de las pruebas.
 
Y, por supuesto, estamos en la industria GxP, donde hay muchas regulaciones...

Limitaciones de las pruebas de software automatizadas

Una herramienta automatizada no puede ser tan creativa como los humanos y se limita a lo que se pregunta: los humanos tienen los ojos en todas partes cuando realizan una prueba, lo que una máquina no puede hacer, lo que lleva a encontrar menos errores. ¿Y cómo puede una máquina juzgar la usabilidad y la apariencia del software? Por último, pulsar el botón de parada de emergencia de un dispositivo y ver las imágenes son ejemplos de cosas que aún deben ser realizadas por un ser humano.
 
Por otro lado, las herramientas de prueba no pueden crear informes de errores para humanos. Cualquier ejecución de prueba fallida dará lugar a una interpretación manual del error antes de documentar el error.

 

¿Dónde tienen sentido las pruebas automatizadas de software?

Dado que un autómata no puede sentir como un humano, será un esfuerzo enorme y quizá imposible automatizar pruebas que impliquen sentidos y opiniones. Así que debemos olvidarnos del aspecto, la intuitividad de la interfaz de usuario, la calidad de las imágenes, la calidad del sonido, etc. Además, los programas informáticos no pueden (todavía) abrir puertas, cambiar tornillos o pulsar botones físicos...

Un autómata no es un ser humano. Hay que implicar a las personas allí donde dan lo mejor de sí,
donde es mejor....

Además, automatizar lleva tiempo. Más tiempo que una ejecución única a mano. Por tanto, cuanto más compleja sea la automatización, más reejecuciones habrá que realizar para rentabilizar la inversión. Esto significa que, si quieres tener un retorno de la inversión, sólo puedes automatizar cosas complejas si la ejecución va a ser recurrente.

Por otra parte, tener una comprobación sistemática exhaustiva (mirar el código, pasar por todas las sentencias y decisiones, etc.) y realizar un gran volumen de pruebas utilizando combinaciones masivas, conexiones, conjuntos de datos, etc. es muy difícil de forma manual.

Los ordenadores sólo pueden mirar ... datos. Si sus resultados esperados son SMART, está en el buen camino para las automatizaciones. Así que hay que saber exactamente lo que se busca y aceptar que esto es lo único que se comprueba; los humanos son mejores para el resto. Los ordenadores pueden comprobar fácilmente grandes cantidades de datos (por ejemplo, comprobar las restricciones de una hoja de cálculo), mientras que los humanos pueden comprobar fácilmente datos complejos (por ejemplo, una fotografía).

Concluyamos con algunos ejemplos relacionados con la ejecución de pruebas:

 

Figura 3 - Ejemplos de pruebas de software automatizadas relacionados con la ejecución de pruebas

 

Mejorar las cosas

Es posible evitar algunos escollos y facilitar la automatización:

  • La automatización implica una redacción técnica que puede no ser comprensible para los no programadores. Es crucial que cada caso de prueba previo a la automatización se documente en lenguaje humano.
  • Hemos visto que el uso de una interfaz de usuario final complica las cosas. Existen algunos principios de arquitectura de software que pueden ayudar a ejercitar los componentes sin utilizar dichas interfaces, lo que permite una mayor cobertura de las pruebas automatizadas:
    • Microservicios, donde los componentes están altamente restringidos y "hablan entre sí" y ... pueden hablar con las pruebas.
    • Interfaces de programación de aplicaciones, que permiten llamar a piezas de código fuera del código interno del software.
  • La automatización tiene un gran valor en las tareas de pruebas recurrentes, especialmente en las pruebas de regresión. Significa que:
    • Las pruebas de regresión pueden ejecutarse si las pruebas de regresión ya están definidas.
    • La regresión está sometida a la paradoja del pesticida:
      • El sistema se resiste cada vez más a esas pruebas, en lugar de ofrecer el comportamiento esperado.
      • Para evitarlo, las pruebas de regresión deben modificarse con regularidad.
      • Ese riesgo aumenta con la regresión automatizada.

Un sistema víctima de la paradoja del pesticida es como si un responsable de control de calidad cerrara todos los CAPA a la revisión de la dirección, independientemente de si son buenos o no. Ejecutar pruebas automatizadas muy a menudo y no cambiarlas nunca es como hacer que la dirección revise todos los días y sólo mire el número de CAPAs abiertos...

  • La programación automatizada se beneficia de la abstracción: cuanto más aislemos la implementación del sistema de la lógica de las pruebas, más fácil será su mantenimiento. Esto se concreta en tres niveles de madurez:
    • Captura y reproducción: Capturamos y reproducimos acciones creadas manualmente por los probadores.
      • ¿Diferentes valores? Pruebas diferentes.
      • ¿Cambios en el sistema? Necesidad de reescribir las pruebas.
      • ¿Escribir pruebas? Conocimiento experto.
    • Basadas en datos: Aislamos los datos en un conjunto separado (hoja de cálculo, etc.), los datos son leídos automáticamente por la prueba.
      • ¿Valores diferentes? Misma prueba.
      • ¿Cambios en el sistema? Necesidad de reescribir las pruebas.
      • ¿Escribir pruebas? Esperar conocimientos.
    • Basado en palabras clave: Definimos un lenguaje para las pruebas que habla de "acciones de negocio", que se implementa utilizando bibliotecas de software.
      • ¿Valores diferentes? Las mismas pruebas que también se basan en datos.
      • ¿Cambios en el sistema? Sólo hay que cambiar las bibliotecas.
      • ¿Escribir pruebas? Conocimiento del negocio + documentación del "lenguaje".

Captura y repetición, basado en datos y basado en palabras clave. Desde el honesto y humilde principiante hasta el superhéroe de la automatización de pruebas, hay un camino, ¡ningún secreto! La eficacia de las pruebas basadas en datos y palabras clave es imprescindible cuando la codificación interna puede cambiar mucho, de lo contrario las pruebas se romperán.

  • Hay un gran valor en "hacer el pegamento" entre las herramientas de automatización y otras garantías de calidad. Por ejemplo, la validación automatizada debe actualizar el estado de los casos de prueba, que, si se documenta mediante una herramienta de gestión de pruebas, puede actualizar inmediatamente la matriz de trazabilidad y proporcionar parte del informe de validación.

¿Y si pasas semanas convirtiendo los resultados de la automatización en mejores prácticas de documentación
y trazabilidad documentada?

 

Facilitar la agilidad

Los métodos modernos de desarrollo de software, como scrum, implican ciclos de desarrollo cortos y frecuentes. Del mismo modo, el desarrollo basado en pruebas depende en gran medida de la eficacia de las pruebas.

Por ello, la automatización de las pruebas es fundamental para el éxito de estos proyectos. La norma GAMP5 hace hincapié en este punto: "Las herramientas desempeñan un papel esencial a la hora de demostrar que el sistema es adecuado para el uso previsto, que la funcionalidad puede rastrearse hasta los requisitos y que se han completado las pruebas".

Por ejemplo, añadir pruebas unitarias automatizadas y análisis estáticos de código a los proyectos ágiles es una práctica habitual. El código se crea automáticamente cada noche, se ejecutan las pruebas unitarias y los resultados se añaden a la "lista de materiales de creación nocturna" para que cada desarrollador reciba un informe de calidad cada mañana.

GAMP5 también es un buen ejemplo de DevOps, una extensión de la metodología ágil, que utiliza el control del código fuente y las pruebas automatizadas como parte del proceso de integración continua para evitar la publicación de código defectuoso.

La Guía de Buenas Prácticas sobre innovación de la ISPE ofrece más orientación, al afirmar que "la integración continua y el despliegue continuo son una extensión de DevOps en la que hay un mayor uso/dependencia de herramientas automatizadas de análisis de pruebas de software."

 

Conclusión

Si tenemos en cuenta las ventajas, los costes, los riesgos, las limitaciones y la enorme variedad de acciones de pruebas de software automatizables, podemos construir una gran historia.

A modo de resumen:

  • Cuanto más cerca se esté del código (pruebas unitarias, análisis estático del código, etc.), más fácil será automatizarlo.
  • Por el contrario, las pruebas de la interfaz de usuario final son complejas de automatizar. Sólo tiene sentido automatizarlas cuando vuelven: pruebas de regresión, pruebas recurrentes en metodología scrum, desarrollo dirigido por pruebas, ...
  • La automatización de pruebas tiene costes iniciales y recurrentes y requiere personal formado.
    La automatización de pruebas no se limita a practicar la interfaz de usuario final. Tiene muchos aspectos que pueden ayudarle.
  • Automatice lo que los ordenadores hacen mejor (sistemático, recurrente, etc.) y mantenga las pruebas manuales para lo que los humanos hacen mejor (interacción, visualización, etc.).
  • Tanto las pruebas automatizadas como las manuales tienen sus ventajas e inconvenientes, una estrategia mixta aumentará su CSV

Descubre las últimas tendencias en Life Sciences

Mantenerte al día con lo último en la industria de life sciences puede ser todo un desafío, pero no te preocupes. Esta newsletter te mantendrá informado con las noticias, blogs y webinars más recientes para que siempre estés un paso por delante.

Circles-banner-short

Descubre más contenido especializado

preview_image
Webinar

De los requisitos al código: un ciclo de desarrollo unificado para software de dispositivos médicos

Aprende sobre el desarrollo de software para dispositivos médicos, incluidos los estándares IEC, ciberseguridad, integración de IA y expectativas de la FDA en este webinar.
preview_image
Whitepaper

El auge de la salud móvil: explorando el marco regulatorio para reembolsos

Este whitepaper te ayudará a navegar por el complejo entorno regulatorio de DTx, destacando varios países y regulaciones clave.
preview_image
Whitepaper

Validación de software GAMP 5 para normativas GMP, GCP y GLP

Aprende a cumplir con las normativas GMP, GCP y GLP utilizando el enfoque de validación de software GAMP 5. Descárgalo ahora.
preview_image
Webinar

Primeros pasos: superando obstáculos iniciales en el desarrollo de software para dispositivos médicos

Supera los obstáculos iniciales en el desarrollo de software para dispositivos médicos y en el cumplimiento con MDR, IA Act y mejores prácticas. Visualiza ahora nuestro webinar.
preview_image
Blog

What Makes Usability Testing Crucial for Near-Patient and Self-Testing Devices under IVDR?

It shouldn’t be a surprise that today, “Near-Patient Testing (NPT)” and...
preview_image
Blog

When does Annex XIV apply in Performance Studies, and what key documentation is needed for compliance?

In the European regulatory landscape, conducting performance studies for in...
preview_image
Blog

How to define your Clinical Performance Strategy?

1. Start with a clear intended purpose A strong clinical...
preview_image
Blog

The Holy Grail: Achieving Inspection Readiness

In a previous blog post, we talked about the various activities...