2 research outputs found

    Estrategias de pruebas de líneas de producto de sistemas de tiempo real especificados con diagramas de estados jerárquicos

    Full text link
    Las Líneas de Producto Software han aparecido en la ingeniería del software como una técnica cuyo objetivo es el de poder crear diferentes variantes software a partir de una infraestructura común, del mismo modo que se hace en otros sectores industriales. Un aspecto que hasta ahora no se ha investigado con tanta extensión es el de las Pruebas de Línea de Producto Software. La cuestión fundamental es decidir hasta qué punto es posible probar las diferents variantes de forma común. En el caso más optimista, probando una funcionalidad sobre la parte general se podría dar por probada sobre todas las variantes. Por contra, en el caso más pesimista, las pruebas de una Línea de Producto Software serían exactamente iguales que las pruebas de varios productos independientes que se hicieran de forma separada. Como término medio, aunque se pruebe la misma funcionalidad en todas las variantes, se podrian reutilizar por ejemplo la arquitectura de pruebas, los casos de prueba, el entorno de pruebas, etc. Buscando dar una solución al problema de las pruebas de Líneas de producto Software de tiempo real, la Tesis Doctoral propone un método de pruebas basado en los diagramas de estados jerárquicos del lenguaje UML para definir los casos de prueba. Se propone una técnica para asegurar la correspondencia (trazabilidad) de los requisitos con los casos de prueba, estructurándolos de forma semejante a los requisitos y estudiando cómo las variantes de los requisitos impactan sobre los diferentes elementos de prueba. También se define dentro del método un flujo de actividades, cuyo objetivo es la automatización de las pruebas para así poder probar las diferentes variantes de la Línea de Producto Software de forma eficiente. Este método tiene tres fases: el Diseño de Pruebas, donde se agrupan en clases de prueba los requisitos tanto genéricos como específicos de cada variante, y se modela cada clase de prueba mediante diagramas de estados jerárquicos y, si es preciso, escenarios en los cuales se incluyen de forma explícita sus requisitos asociados. En la fase de Implementación de Pruebas, estos diagramas se describen por medio de tablas de estados y eventos, con la información adicional necesaria (los datos de prueba) para generar automáticamente el código con los casos de prueba ejecutables. En la fase final de Ejecución de Pruebas, se realiza el caso de prueba sobre el sistema real y se registra el resultado obtenido. Como aportación final, se propone un metamodelo donde se muestran todos los elementos del método de pruebas y las relaciones que existen entre ellos. Para comprobar que la solución propuesta al problema de las pruebas de Líneas de Producto Software de Tiempo real es satisfactoria, se ha elegido una doble estrategia consistente en la aplicación del método sobre un caso industrial real y en la elaboración de un conjunto de herramientas software prototipo, con las cuales se ha demostrado la validez del método propuesto y se ha delimitado su alcance. El caso industrial real escogido ha sido el de una Línea de Productos Software Tiempo Real de sistemas de control del tráfico ferroviario, en el que el autor desarrolla desde hace diez años su actividad profesional, lo cual da a esta Tesis Doctoral un marcado carácter industrial, tanto por la relevancia práctica del tema elegido como por reflejar una experiencia de aplicación industrial real. Las herramientas software desarrolladas, tanto en el caso de aplicación industrial real, como en el ámbito de la Tesis Doctoral, sirven de soporte a la generación de casos de prueba a partir de los modelos de diagramas de estados, la ejecución automatizada de las pruebas, el análisis de los resultados o veredictos de las pruebas y la medición de cobertura de requisitos alcanzada en las pruebas
    corecore