La verificación de software es el proceso por el cual un equipo de testing verifica una solución software mediante la revisión de las especificaciones definidas en la etapa documental de un proyecto de desarrollo de software. Esta fase de verificación se realiza en amplios y variados campos de actuación, como la industria farmacéutica y/o biomédica, softwares de control de inventario en almacenes, software de control ferroviario, control aéreo, etc.

En el caso que nos compite, la FDA es la legislación americana en cuanto a la industria farmacéutica, médica y alimenticia. Esta legislación es de imprescindible cumplimiento para cualquier software de gestión y/o control de proceso que se quiera utilizar dentro de empresas y/o instalaciones médicas. Además, esta legislación marca unas pautas a seguir y cumplimentar por parte de los equipos de testing para asegurar unos mínimos de calidad deseados y que han de ser probados para poder hacer uso de estas soluciones.

Estos mínimos exigidos se estipulan mediante las fases que se han de llevar a cabo en los proyectos de diseño. Las fases definidas para un proyecto de diseño son:

-Diseño.

-Documentación de la solución, recogiendo y definiendo los requisitos y especificaciones necesarios para llevar a cabo el desarrollo.

-Desarrollo de la solución software. En esta fase, en paralelo, el equipo software se encargará, a su vez, de definir las pruebas de verificación. Estas pruebas se han de dividir en, al menos, tres tipos de pruebas software a llevar a cabo: pruebas unitarias, pruebas de integración y pruebas de sistema completo. Estas pruebas se pueden cumplimentar con otras técnicas y aproximaciones de prueba, pero al menos estas han de ser de obligado cumplimiento.

-Validación de la solución, realizando pruebas de usuario y subsanando los cambios a nivel interfaz que se requieran para mejorar la usabilidad de la herramienta. La funcionalidad de la misma ha de estar cerrada en la etapa de verificación previa.

Además, la legislación americana determina tres categorías de criticidad para los desarrollos software. Estas categorías van desde el grupo C, donde se han de probar exhaustivamente los componentes software así categorizados, por implicar daño grave y/o muerte para la salud; grupo B donde se puede dañar mediante un fallo en el software pero no gravemente y un tercer grupo A que no implica riesgo. A mayor criticidad, mayor esfuerzo se ha de realizar para verificar las especificaciones y validar los requisitos vinculados y que aportan ésta criticidad.

Por consiguiente, es imprescindible, para afrontar un buen proyecto de verificación, sea bajo la legislación que sea, tener una buena documentación inicial. En este caso, nos apoyaremos en la documentación para categorizar los componentes software y diseñar e implementar las pruebas acordes a las necesidades de cada categoría, definidas mediante especificaciones.

Por último, estas pruebas serán ejecutadas y se recogerán los resultados de los registros de ejecución, agrupándolos por tipo de prueba ejecutada. Con estos resultados, se sacarán las pertinentes conclusiones y se comprobará el software de modo que cumpla todas las especificaciones de sus componentes.

Soy Ingeniero senior en SQS y desarrollo mi actividad como Jefe de Proyectos de Validación de Sistemas Médicos.