2. MARCO TEÓRICO Y ESTADO DEL ARTE
3.3. Restricciones de la Técnica ttSPL
En la sección 3.4: Fragmentos de métodos para la construcción de la técnica ttSPL, presenta los fragmentos considerados para ensamblar la técnica ttSPL.
En la sección 3.5: Técnica ttSPL: específica los elementos que definen la técnica ttSPL, como roles y actividades que componen tanto el procedimiento ttSPL en ingeniería de dominio como el procedimiento ttSPL en ingeniería de aplicación.
3.1. Construcción de la Técnica ttSPL
Es necesario, indicar el proceso seguido para la construcción de la técnica ttSPL propuesta en esta tesis. En la figura 14, se presenta el proceso de ensamble de bloques que Fazal- baqaie, Luckey y Engels [17] propone como guía general para construir una técnica. La técnica ttSPL, es una técnica de refinamiento y derivación que permite relacionar en forma consistente los casos de uso y los casos de prueba, considerando las dos dimensiones de desarrollo de una SPL (Ingeniería de dominio e ingeniería de aplicación) y está dirigida a una pequeña organización de software.
Figura 14. Proceso general para la construcción de una técnica17.
Para caracterizar el proyecto se considera las características y limitaciones típicas que las pequeñas organizaciones tienen para adaptarse a enfoques diferentes y así sostenerse y crecer en el mercado, teniendo en cuenta que las pequeñas empresas son calificadas como una versión reducida de una gran empresa, tanto así que son extremadamente sensibles y flexibles, lo que a su vez es una ventaja competitiva [67].
3.2. Descripción General de la Técnica ttSPL
La técnica ttSPL, plantea una estrategia para que pequeñas organizaciones productoras de software puedan derivar casos de prueba funcionales para un producto a partir de casos de prueba creados en el marco de una línea de productos software, además permite el refinamiento de los productos con nuevos comportamientos funcionales que pertenecen a un producto en particular. La figura 15, muestra una visión general de los procesos de desarrollo SPL utilizados en el método PLUS [72], donde un ingeniero SPL crea elementos reutilizables como modelos de requisitos, modelos de análisis y arquitectura durante la ingeniería SPL y luego los almacena en un repositorio SPL. A continuación, un ingeniero de aplicaciones reutiliza y configura estos modelos para una aplicación derivada del SPL. El proceso es iterativo, lo que significa que cualquier requisito, errores y adaptaciones no satisfechos descubiertos durante la ingeniería de aplicaciones se devuelven al ingeniero de línea de productos, que desarrolla los modelos SPL y actualiza el repositorio SPL.
17 Tomada de [17].
55
Figura 15. Proceso SPL18.
Con base en este proceso SPL (ver figura 15), ttSPL pretende partir de casos de uso ya que al obtener casos de prueba derivados directamente de casos de uso, se tiene la ventaja de contar con una especificación funcional clara necesaria para las pruebas y así garantizar una base sólida que permita verificar la trazabilidad del proceso de diseño de casos de prueba.
El manejo de la variabilidad de la SPL representada a través de un modelo de características de la SPL, permite elaborar un conjunto de casos de prueba que corresponden a un conjunto de productos, es decir el modelo de características de la SPL permite identificar los posibles productos que pueden configurarse y que necesitan unos casos de prueba que son almacenados en un repositorio. Entonces derivar un producto para la técnica ttSPL, es personalizar los productos compartidos dentro de la ingeniería de aplicación, por medio de la toma de decisiones para seleccionar los activos que constituyen un nuevo producto de la SPL y después personalizarlo (agregar y/o eliminar requisitos funcionales) para que cumplan una funcionalidad en particular. En la Figura 16, se puede observar el esquema general de ttSPL que permite observar la técnica bajo el proceso de SPL.
El propósito de ttSPL no es formalizar un reporte de pruebas, por tanto, el usuario no interviene en el proceso de aceptación de los casos de pruebas diseñados. Por esta razón, no se tiene en cuenta la ejecución de los casos de pruebas contenidos en el modelo de pruebas del producto, que constituye el producto/entregable de ttSPL.
18Tomada de [72].
Figura 16. Esquema general de ttSPL, basado en el proceso SPL (ver. figura 15).
La técnica ttSPL permite acoplarse a las pequeñas organizaciones al contar con tareas claramente definidas con el ánimo de hacer fácil la aplicación de la técnica, enfocadas a la reducción del esfuerzo y el tiempo para el proceso de pruebas y permitir el aseguramiento de la calidad del producto software.
Cuando se habla de derivación de pruebas es preciso tener en cuenta un proceso de software definido que facilita el desarrollo y permita que pueda considerarse un plan de pruebas formalmente compuesto (planificación, diseño, configuración, ejecución, evaluación y cierre, seguimiento) [73]. Para ttSPL se toma el modelo en V teniendo en cuenta que es un proceso en cascada que desarrolla en paralelo la fase de construcción lo que facilita verificar la trazabilidad a medida que se avanzan en las pruebas y tiene posibilidades para avanzar hacia la próxima fase o volver a visitar la fase anterior. En la figura 17, la parte sombreada se definen las fases que intervienen del modelo en V para ttSPL,
57
Figura 17. Modelo en V para ttSPL.
3.3. Restricciones de la Técnica ttSPL
ttSPL es una técnica para usar en el desarrollo de líneas de productos, considera la ingeniería de dominio y la ingeniería de productos. Es posible que la técnica ttSPL, pueda ser usada en una línea de productos o en otros enfoques de reutilización, pero sólo ha sido validada en el contexto de la construcción de una línea de productos.
La técnica ttSPL emplea casos de uso como insumo, por lo tanto, no puede usarse cuando el proceso de desarrollo no considere casos de uso, o se debería adaptar el proceso incluyendo este artefacto y las tareas asociadas a su construcción en el contexto de líneas de productos.
La técnica ttSPL emplea el modelo de características para especificar la variabilidad de la línea de productos.
ttSPL se enfoca en pruebas funcionales y no considera otros tipos de pruebas.
La técnica ttSPL podrá ser aplicada con éxito en una pequeña organización de software: (i) si está tiene una SPL definida. Puesto, que ttSPL no indica la forma como se construye una línea de productos, sino que aplica la estrategia de reutilización y derivación de productos de software, para construir los casos de pruebas de los productos que pertenezcan a la
SPL y (ii) si la organización gestiona sus requisitos a través de la especificación de casos de uso, pues ttSPL no contiene pasos definidos para adaptar otro artefacto de especificación de requisitos para aplicar la técnica.