Plataformas de testing en entornos segurosEscrito por Iñaki García Brito el 14/09/2024 a las 19:25:161193
(Responsable del departamento de safety critical software en Orbital Critical Systems) Escrito por Iñaki García Brito, responsable del departamento de safety critical software en Orbital Critical Systems
En el día a día nos rodean miles de sistemas seguros. Cuando hablamos de sistemas seguros, no nos referimos sólo a la ciberseguridad, sino también a sistemas críticos, que son aquellos en los que un fallo puede conllevar a pérdida de vidas humanas o daños importantes en el entorno o de las propiedades. Y, aunque no nos demos cuenta interactuamos con ellos básicamente cada vez que nos desplazamos, ejemplos de ellos son los medios de transporte, ascensores, escaleras mecánicas, etc.
Detrás de estos sistemas críticos debemos asegurar su disponibilidad, así como de lo seguro que es su uso. Es por ello, que una de las actividades más importantes de esta clase de sistemas es el testing. En las normativas específicas de cada sector se menciona esta actividad con unos objetivos concretos y consejos para alcanzar una certificación en un sistema crítico.
Pero aparece una pregunta en esta actividad, ¿cómo podemos asegurarnos que las herramientas que estamos utilizando son seguras y confiables? ¿Cómo podemos asegurar que las herramientas no introduzcan errores que pudieran comprometer la seguridad del sistema final?
Es por ello, que existen normativas centradas en la calificación de herramientas software en el desarrollo de sistemas críticos. La calificación de una herramienta supone demostrar que la misma funciona de manera correcta y no introduce errores sobre el software / hardware desarrollado.
El testing en los sistemas críticos es un proceso riguroso y exhaustivo que busca identificar y corregir errores previos al despliegue del software/hardware. Las normativas mencionadas previamente, proporcionan un marco para la calificación de herramientas usadas en el testing. Ejemplos de herramientas pudieran ser de análisis estático del código, compiladores, herramientas de generación de código, WCET, herramientas para ejecución de pruebas automáticas, etc.
En el contexto de un programa en el que se incluyen sistemas críticos, la normativa menciona la generación de planes de distinta índole dependiendo del grado de criticidad y acciones que lleva a cabo el sistema en cuestión. Uno de estos planes, hace referencia específicamente a la estrategia de verificación/validación que se va a realizar. En la definición de esta estrategia, se deciden las herramientas y métodos, así como la disponibilidad de herramientas calificadas (COTS – ‘Commercial Off The Shelve’) o la necesidad de crear una ad-hoc al proyecto con su posterior calificación.
El propósito de la calificación de una herramienta es obtener el suficiente grado de confianza en la herramienta y su funcionalidad. Los esfuerzos se centran están basados en el impacto potencial que un error fatal pudiera tener en la criticidad del sistema y el uso de la herramienta en el ciclo de vida del sistema. Cuanto mayor sea la criticidad del sistema y la posibilidad de introducir un error fatal en el mismo, el rigor necesario sobre la herramienta será mayor. Este proceso, puede ser aplicado a una o varias funcionalidades de la herramienta o herramientas.
Las necesidades que determinar al comenzar con el proceso de calificación son las siguientes: determinar e identificar las herramientas a ser utilizadas en el sistema, descripción y uso de la herramienta, definir la necesidad de la herramienta, definir el grado de rigurosidad necesarias, acordar los roles de cada participante en las actividades y finalmente, el entorno operacional en el que se llevará a cabo.
Del mismo modo que existen planes en la definición de un sistema crítico, existen planes que definen y delimitan las actividades que deben ser satisfechas para considerar una herramienta como calificada. Estos planes son los siguientes: Plan de Calificación de la Herramienta, Plan de Desarrollo de la Herramienta, Plan de Verificación de la Herramienta, Plan de Aseguramiento de la Calidad de la Herramienta y Plan de Gestión de Configuración de la Herramienta.
El ciclo de vida de la calificación de una herramienta fluye de manera general en tres puntos clave: el proceso de definición de requisitos operacionales de la herramienta, el proceso de desarrollo y el proceso de integración operacional.
De estos procesos, experiencias y normativas, entre otras muchas cosas más, hablaremos en las conferencias que se llevan a cabo en QA&TEST en Bilbao. El QA&TEST es una conferencia internacional sobre pruebas de software que se llevan a cabo en el mundo embebido. Ponentes de diferentes organizaciones internacionales hacen presentaciones con diferentes niveles de profundidad, algunas técnicas/científicas y otras centradas en la aplicabilidad práctica. Esto significa que tanto testers como desarrolladores experimentados como aquellos que comienzan su camino en este sector pueden aprender mucho en QA&TEST.
La variedad de ponencias y el nivel de las conferencias es una de las razones por las que QA&TEST es una cita que no puedes perderte. Esta conferencia siempre tiene un excelente programa, ponentes brillantes y, por último, pero no menos importante, un ambiente muy relajado. |